Example #1
0
        public void ReceivingFriendlistRaisesEvent()
        {
            // Arrange
            string        strContent = "{\"friends\":[123,456,789]}";
            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);
            FriendsStreamEventArgs receivedData = null;
            ManualResetEventSlim   waitHandle   = new ManualResetEventSlim(false);

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

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

            // Assert
            Assert.IsNotNull(receivedData);
            CollectionAssert.AreEqual(new ulong[] { 123, 456, 789 }, receivedData.Friends);
        }
Example #2
0
        private async void Parser_FriendsReceived(object sender, FriendsStreamEventArgs e)
        {
            var completeList = e.Friends.ToList();

            LogTo.Info($"Received {completeList.Count} of user's friends");
            var usersToAdd = new List <User>(completeList.Count);

            while (completeList.Any())
            {
                var userList = string.Join(",", completeList.Take(100));
                completeList.RemoveRange(0, Math.Min(100, completeList.Count));

                var userData = await Context.Twitter.Users.LookupUsers(userList);

                usersToAdd.AddRange(userData);
            }

            Debug.Assert(usersToAdd.Count == e.Friends.Length);
            await Cache.AddUsers(usersToAdd.Select( u => new UserCacheEntry(u)).ToList());
        }
Example #3
0
        public void ReceivingFriendlistRaisesEvent()
        {
            // Arrange
            const string strContent = "{\"friends\":[123,456,789]}";

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

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

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

            // Assert
            Assert.IsNotNull(receivedData);
            CollectionAssert.AreEqual(new ulong[] { 123, 456, 789 }, receivedData.Friends);
        }