diff --git a/src/BirdsiteLive.Pipeline/Processors/RetrieveTwitterUsersProcessor.cs b/src/BirdsiteLive.Pipeline/Processors/RetrieveTwitterUsersProcessor.cs index dcc9d6b..f8ea2a2 100644 --- a/src/BirdsiteLive.Pipeline/Processors/RetrieveTwitterUsersProcessor.cs +++ b/src/BirdsiteLive.Pipeline/Processors/RetrieveTwitterUsersProcessor.cs @@ -29,7 +29,9 @@ namespace BirdsiteLive.Pipeline.Processors try { var users = await _twitterUserDal.GetAllTwitterUsersAsync(); - await twitterUsersBufferBlock.SendAsync(users, ct); + + if(users.Length > 0) + await twitterUsersBufferBlock.SendAsync(users, ct); } catch (Exception e) { diff --git a/src/Tests/BirdsiteLive.Pipeline.Tests/Processors/RetrieveTwitterUsersProcessorTests.cs b/src/Tests/BirdsiteLive.Pipeline.Tests/Processors/RetrieveTwitterUsersProcessorTests.cs index d3f8b08..b7a2e2b 100644 --- a/src/Tests/BirdsiteLive.Pipeline.Tests/Processors/RetrieveTwitterUsersProcessorTests.cs +++ b/src/Tests/BirdsiteLive.Pipeline.Tests/Processors/RetrieveTwitterUsersProcessorTests.cs @@ -46,6 +46,32 @@ namespace BirdsiteLive.Pipeline.Tests.Processors #endregion } + [TestMethod] + public async Task GetTwitterUsersAsync_NoUsers_Test() + { + #region Stubs + var buffer = new BufferBlock(); + #endregion + + #region Mocks + var twitterUserDalMock = new Mock(MockBehavior.Strict); + twitterUserDalMock + .Setup(x => x.GetAllTwitterUsersAsync()) + .ReturnsAsync(new SyncTwitterUser[0]); + #endregion + + var processor = new RetrieveTwitterUsersProcessor(twitterUserDalMock.Object); + processor.GetTwitterUsersAsync(buffer, CancellationToken.None); + + await Task.Delay(50); + + #region Validations + twitterUserDalMock.VerifyAll(); + Assert.AreEqual(0, buffer.Count); + #endregion + } + + [TestMethod] public async Task GetTwitterUsersAsync_Exception_Test() {