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);
            }
        }
Beispiel #2
0
        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);
            }
        }