예제 #1
0
        public void ReceivingFavoriteRaisesEvent()
        {
            // Arrange
            const string strContent =
                "{ \"event\":\"favorite\", \"created_at\": \"Sat Sep 04 16:10:54 +0000 2010\", \"target\": { \"id\": 123 }, \"source\": { \"id\": 456 }, \"target_object\": { \"created_at\": \"Wed Jun 06 20:07:10 +0000 2012\", \"id_str\": \"210462857140252672\" } }";

            ManualResetEventSlim waitHandle = new ManualResetEventSlim(false);
            var parser = SetupParser(strContent);
            EventStreamEventArgs receivedData = null;

            parser.FavoriteEventReceived += (s, e) =>
            {
                receivedData = e;
                waitHandle.Set();
            };

            // Act
            parser.StartStreaming();
            waitHandle.Wait(1000);

            // Assert
            Assert.IsNotNull(receivedData);
            Assert.AreEqual(StreamEventType.Favorite, receivedData.Event);
            Assert.AreEqual(456ul, receivedData.Source.GetUserId());
            Assert.AreEqual(123ul, receivedData.Target.GetUserId());
        }
예제 #2
0
        public void ReceivingFavoriteRaisesEvent()
        {
            // Arrange
            string strContent =
                "{ \"event\":\"favorite\", \"created_at\": \"Sat Sep 04 16:10:54 +0000 2010\", \"target\": { \"id\": 123 }, \"source\": { \"id\": 456 }, \"target_object\": { \"created_at\": \"Wed Jun 06 20:07:10 +0000 2012\", \"id_str\": \"210462857140252672\" } }";
            var           execute = new Mock <ITwitterExecute>();
            StreamContent content = new StreamContent(execute.Object, strContent);

            var stream = new Mock <IStreamingConnection>();

            stream.Setup(s => s.Start(It.IsAny <Func <IStreamContent, Task> >()))
            .Callback <Func <StreamContent, Task> >(func => func(content))
            .Returns(Task.FromResult(new List <IStreaming>()));

            var parser = StreamParser.Create(stream.Object);
            EventStreamEventArgs receivedData = null;
            ManualResetEventSlim waitHandle   = new ManualResetEventSlim(false);

            parser.FavoriteEventReceived += (s, e) =>
            {
                receivedData = e;
                waitHandle.Set();
            };

            // Act
            parser.StartStreaming();
            waitHandle.Wait(1000);

            // Assert
            Assert.IsNotNull(receivedData);
            Assert.AreEqual(StreamEventType.Favorite, receivedData.Event);
            Assert.AreEqual(456ul, receivedData.Source.GetUserId());
            Assert.AreEqual(123ul, receivedData.Target.GetUserId());
        }
예제 #3
0
        public void ReceivingUnkownDataRaisesEvent()
        {
            // Arrange
            const string strContent =
                "{ \"event\":\"unknown\", \"created_at\": \"Sat Sep 04 16:10:54 +0000 2010\", \"target\": { \"id\": 123 }, \"source\": { \"id\": 456 }, \"target_object\": { \"created_at\": \"Wed Jun 06 20:07:10 +0000 2012\", \"id_str\": \"210462857140252672\" } }";

            ManualResetEventSlim waitHandle = new ManualResetEventSlim(false);
            var parser = SetupParser(strContent);
            EventStreamEventArgs receivedData = null;

            parser.UnknownEventReceived += (s, e) =>
            {
                receivedData = e;
                waitHandle.Set();
            };

            // Act
            parser.StartStreaming();
            waitHandle.Wait(1000);

            // Assert
            Assert.IsNotNull(receivedData);
        }