public void OnNext_Should_Still_Get_Called_After_HandleBroadcast_Failure() { var testScheduler = new TestScheduler(); var candidateDeltaMessages = Enumerable.Repeat(new PeerNeighborsRequest(), 10).ToArray(); var peerSettings = PeerIdHelper.GetPeerId("server").ToSubstitutedPeerSettings(); var messageStream = MessageStreamHelper.CreateStreamWithMessages(testScheduler, candidateDeltaMessages); using (var observer = new FailingRequestObserver(Substitute.For <ILogger>(), peerSettings)) { observer.StartObserving(messageStream); testScheduler.Start(); observer.Counter.Should().Be(10); } }
public void Observer_Exception_Should_Not_Stop_Correct_Messages_Reception() { var testingChannel = new EmbeddedChannel("testWithExceptions".ToChannelId(), true, _factory.InheritedHandlers.ToArray()); var serverIdentifier = PeerIdHelper.GetPeerId("server"); var peerSettings = serverIdentifier.ToSubstitutedPeerSettings(); using (var badHandler = new FailingRequestObserver(Substitute.For <ILogger>(), peerSettings)) { var messageStream = GetObservableServiceHandler().MessageStream; badHandler.StartObserving(messageStream); Enumerable.Range(0, 10).ToList().ForEach(i => testingChannel.WriteInbound(GetSignedMessage())); _testScheduler.Start(); badHandler.Counter.Should().Be(10); } }