From a2597b72a9852cd29d4e329ae4b3ffea81e384da Mon Sep 17 00:00:00 2001 From: Nicolas Constant Date: Sat, 13 Feb 2021 20:59:01 -0500 Subject: [PATCH] added pipeline test --- .../StatusPublicationPipelineTests.cs | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 src/Tests/BirdsiteLive.Pipeline.Tests/StatusPublicationPipelineTests.cs diff --git a/src/Tests/BirdsiteLive.Pipeline.Tests/StatusPublicationPipelineTests.cs b/src/Tests/BirdsiteLive.Pipeline.Tests/StatusPublicationPipelineTests.cs new file mode 100644 index 0000000..2a47b95 --- /dev/null +++ b/src/Tests/BirdsiteLive.Pipeline.Tests/StatusPublicationPipelineTests.cs @@ -0,0 +1,50 @@ +using System.Threading; +using System.Threading.Tasks; +using System.Threading.Tasks.Dataflow; +using BirdsiteLive.DAL.Models; +using BirdsiteLive.Pipeline.Contracts; +using Microsoft.Extensions.Logging; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using Moq; + +namespace BirdsiteLive.Pipeline.Tests +{ + [TestClass] + public class StatusPublicationPipelineTests + { + [TestMethod] + public async Task ExecuteAsync_Test() + { + #region Stubs + var ct = new CancellationTokenSource(10); + #endregion + + #region Mocks + var retrieveTwitterUsersProcessor = new Mock(MockBehavior.Strict); + retrieveTwitterUsersProcessor + .Setup(x => x.GetTwitterUsersAsync( + It.IsAny>(), + It.IsAny())) + .Returns(Task.Delay(0)); + + var retrieveTweetsProcessor = new Mock(MockBehavior.Strict); + var retrieveFollowersProcessor = new Mock(MockBehavior.Strict); + var sendTweetsToFollowersProcessor = new Mock(MockBehavior.Strict); + var saveProgressionProcessor = new Mock(MockBehavior.Strict); + var logger = new Mock>(); + #endregion + + var pipeline = new StatusPublicationPipeline(retrieveTweetsProcessor.Object, retrieveTwitterUsersProcessor.Object, retrieveFollowersProcessor.Object, sendTweetsToFollowersProcessor.Object, saveProgressionProcessor.Object, logger.Object); + await pipeline.ExecuteAsync(ct.Token); + + #region Validations + retrieveTwitterUsersProcessor.VerifyAll(); + retrieveTweetsProcessor.VerifyAll(); + retrieveFollowersProcessor.VerifyAll(); + sendTweetsToFollowersProcessor.VerifyAll(); + saveProgressionProcessor.VerifyAll(); + logger.VerifyAll(); + #endregion + } + } +} \ No newline at end of file