public void stopStream() { try { stream.StopStream(); } catch (Exception ex) { throw ex; } }
public void StartStreamTrackWord1ORWord2InTheSameTweet() { // Arrange var randomWord1 = String.Format("Tweetinvi{0}", new Random().Next()); var randomWord2 = String.Format("Tweetinvi2{0}", new Random().Next()); var expectedMessage1 = String.Format("Hello {0}", randomWord1); var expectedMessage2 = String.Format("Hello {0}", randomWord2); var expectedMessage3 = String.Format("Hello {0} {1}", randomWord1, randomWord2); int i = 0; Thread t = new Thread(() => { IFilteredStream stream = new FilteredStream(); stream.AddTrack(randomWord1); stream.AddTrack(randomWord2); Func <ITweet, bool> listen = delegate(ITweet tweet) { if (tweet != null) { bool result = tweet.Text == expectedMessage1 || tweet.Text == expectedMessage2 || tweet.Text == expectedMessage3; if (result) { Debug.WriteLine(tweet.Text); ++i; } } // End the stream return(true); }; Timer timer = new Timer(5000); timer.Elapsed += (sender, args) => { timer.Stop(); stream.StopStream(); }; timer.Start(); stream.StartStream(TokenSingleton.Token, listen); }); t.Start(); // Act ITweet newTweet1 = new Tweet(expectedMessage1, TokenTestSingleton.Instance); newTweet1.Publish(); ITweet newTweet2 = new Tweet(expectedMessage2, TokenTestSingleton.Instance); newTweet2.Publish(); ITweet newTweet3 = new Tweet(expectedMessage3, TokenTestSingleton.Instance); newTweet3.Publish(); t.Join(); // Cleanup newTweet1.Destroy(); newTweet2.Destroy(); newTweet3.Destroy(); // Assert Assert.AreEqual(i, 3); }