示例#1
0
        public void should_merge_old_messages_with_live_ones()
        {
            var oldMessages = new List <string>()
            {
                "old 1", "old 2"
            };
            var chatConnection = new ChatConnection("username", "password");
            var connection     = new ObservableConnection(chatConnection);

            // var allMessages = connection.StartWith(oldMessages);
            var allMessages = oldMessages.ToObservable()
                              .Concat(connection);

            var result = new List <string>();

            using (allMessages.Subscribe(new StringObserver <string>(result)))
            {
                chatConnection.SendMessage("new 1");
                chatConnection.SendMessage("new 2");
                chatConnection.Disconnect();
            }

            result[0].Should().Be("OnNext(old 1)");
            result[1].Should().Be("OnNext(old 2)");
            result[2].Should().Be("OnNext(new 1)");
            result[3].Should().Be("OnNext(new 2)");
            result[4].Should().Be("OnCompleted()");
        }
示例#2
0
        public void should_consume_a_chat()
        {
            var chatConnection = new ChatConnection("username", "password");

            var observableConnection = new ObservableConnection(chatConnection);

            var result         = new List <string>();
            var stringObserver = new StringObserver <string>(result);


            using (var subscription = observableConnection.Subscribe(stringObserver))
            {
                chatConnection.SendMessage("Hello");
                chatConnection.SendMessage("World");
                chatConnection.Disconnect();
            }

            result[0].Should().Be("OnNext(Hello)");
            result[1].Should().Be("OnNext(World)");
            result[2].Should().Be("OnCompleted()");
        }