From 98d5b2183bb311d243466d3165215c173b2f4d2a Mon Sep 17 00:00:00 2001 From: Nicolas Constant Date: Wed, 12 Aug 2020 21:05:25 -0400 Subject: [PATCH] added RetrieveFollowersProcessor tests --- .../RetrieveFollowersProcessorTests.cs | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 src/Tests/BirdsiteLive.Pipeline.Tests/Processors/RetrieveFollowersProcessorTests.cs diff --git a/src/Tests/BirdsiteLive.Pipeline.Tests/Processors/RetrieveFollowersProcessorTests.cs b/src/Tests/BirdsiteLive.Pipeline.Tests/Processors/RetrieveFollowersProcessorTests.cs new file mode 100644 index 0000000..98a86bf --- /dev/null +++ b/src/Tests/BirdsiteLive.Pipeline.Tests/Processors/RetrieveFollowersProcessorTests.cs @@ -0,0 +1,79 @@ +using System.Collections.Generic; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; +using BirdsiteLive.DAL.Contracts; +using BirdsiteLive.DAL.Models; +using BirdsiteLive.Pipeline.Models; +using BirdsiteLive.Pipeline.Processors; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using Moq; + +namespace BirdsiteLive.Pipeline.Tests.Processors +{ + [TestClass] + public class RetrieveFollowersProcessorTests + { + [TestMethod] + public async Task ProcessAsync_Test() + { + #region Stubs + var userId1 = 1; + var userId2 = 2; + + var users = new List + { + new UserWithTweetsToSync + { + User = new SyncTwitterUser + { + Id = userId1 + } + }, + new UserWithTweetsToSync + { + User = new SyncTwitterUser + { + Id = userId2 + } + } + }; + + var followersUser1 = new List + { + new Follower(), + new Follower(), + }; + var followersUser2 = new List + { + new Follower(), + new Follower(), + new Follower(), + }; + #endregion + + #region Mocks + var followersDalMock = new Mock(MockBehavior.Strict); + followersDalMock + .Setup(x => x.GetFollowersAsync(It.Is(y => y == userId1))) + .ReturnsAsync(followersUser1.ToArray()); + + followersDalMock + .Setup(x => x.GetFollowersAsync(It.Is(y => y == userId2))) + .ReturnsAsync(followersUser2.ToArray()); + #endregion + + var processor = new RetrieveFollowersProcessor(followersDalMock.Object); + var result = (await processor.ProcessAsync(users.ToArray(), CancellationToken.None)).ToList(); + + #region Validations + Assert.IsNotNull(result); + Assert.AreEqual(2, result.Count); + Assert.AreEqual(2, result.First(x => x.User.Id == userId1).Followers.Length); + Assert.AreEqual(3, result.First(x => x.User.Id == userId2).Followers.Length); + + followersDalMock.VerifyAll(); + #endregion + } + } +} \ No newline at end of file