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(); }
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); } }