using Microsoft.VisualStudio.TestTools.UnitTesting; using Microsoft.Extensions.Logging; using System.Threading.Tasks; using BirdsiteLive.Twitter; using BirdsiteLive.Twitter.Tools; using BirdsiteLive.Statistics.Domain; using Moq; using BirdsiteLive.DAL.Contracts; using BirdsiteLive.DAL.Models; namespace BirdsiteLive.ActivityPub.Tests { [TestClass] public class TimelineTests { private ITwitterTweetsService _tweetService; [TestInitialize] public async Task TestInit() { var logger1 = new Mock>(MockBehavior.Strict); var logger2 = new Mock>(MockBehavior.Strict); var logger3 = new Mock>(); var stats = new Mock(); var settings = new Mock(); var twitterDal = new Mock(); twitterDal .Setup(x => x.GetTwitterUserAsync( It.Is(y => true) )) .ReturnsAsync(new SyncTwitterUser { TwitterUserId = default }); ITwitterAuthenticationInitializer auth = new TwitterAuthenticationInitializer(logger1.Object); ITwitterUserService user = new TwitterUserService(auth, stats.Object, logger2.Object); ICachedTwitterUserService user2 = new CachedTwitterUserService(user, settings.Object); _tweetService = new TwitterTweetsService(auth, stats.Object, user2, twitterDal.Object, logger3.Object); } [TestMethod] public async Task TimelineKobe() { var tweets = await _tweetService.GetTimelineAsync("kobebryant", 1218020971346444288); Assert.AreEqual(tweets[0].MessageContent, "Continuing to move the game forward @KingJames. Much respect my brother 💪🏾 #33644"); Assert.AreEqual(tweets.Length, 8); } [TestMethod] public async Task TimelineGrant() { var tweets = await _tweetService.GetTimelineAsync("grantimahara", default); Assert.IsTrue(tweets[0].IsReply); Assert.AreEqual(tweets.Length, 40); } } }