Exemple #1
0
        public void MessageHandler_should_not_receive_messages_of_the_wrong_type()
        {
            _responseMessages[3] = new PingResponse().ToProtocolMessage(
                _responseMessages[3].PeerId,
                _responseMessages[3].CorrelationId.ToCorrelationId());

            _responseMessages[7] = new PingRequest().ToProtocolMessage(
                _responseMessages[7].PeerId,
                _responseMessages[7].CorrelationId.ToCorrelationId());

            var mixedTypesStream = MessageStreamHelper.CreateStreamWithMessages(_fakeContext, _testScheduler, _responseMessages);

            _handler.StartObserving(mixedTypesStream);

            _testScheduler.Start();

            _handler.SubstituteObserver.Received(8).OnNext(Arg.Any <GetInfoResponse>());
            _handler.SubstituteObserver.Received(0).OnError(Arg.Any <Exception>());
            _handler.SubstituteObserver.Received(1).OnCompleted();
        }
Exemple #2
0
        public void OnNext_Should_Still_Get_Called_After_HandleBroadcast_Failure()
        {
            var testScheduler = new TestScheduler();

            var candidateDeltaMessages = Enumerable.Range(0, 10)
                                         .Select(i => new GetPeerCountResponse {
                PeerCount = i
            }).ToArray();

            var messageStream = MessageStreamHelper.CreateStreamWithMessages(testScheduler, candidateDeltaMessages);

            using (var observer = new FailingResponseObserver(Substitute.For <ILogger>()))
            {
                observer.StartObserving(messageStream);

                testScheduler.Start();

                observer.Counter.Should().Be(10);
            }
        }