public void stopStream()
 {
     try
     {
         stream.StopStream();
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Example #2
0
        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);
        }