public ObservableServiceHandlerUnitTests()
 {
     Log.Logger = Substitute.For <ILogger>();
     Log.Logger.ForContext(Arg.Any <Type>()).Returns(Log.Logger);
     _testScheduler            = new TestScheduler();
     _observableServiceHandler = new ObservableServiceHandler(_testScheduler);
 }
        public EmbeddedObservableChannel(string channelName)
        {
            _testScheduler = new TestScheduler();
            var channelId = channelName.ToChannelId();

            var observableServiceHandler = new ObservableServiceHandler(_testScheduler);
            var embeddedChannel          = new EmbeddedChannel(channelId, false, true, observableServiceHandler);

            _channel      = embeddedChannel;
            MessageStream = observableServiceHandler.MessageStream;
        }
        public void Broadcast_Can_Execute_Proto_Handler()
        {
            var testScheduler = new TestScheduler();
            var handler       = new TestMessageObserver <TransactionBroadcast>(Substitute.For <ILogger>());

            var protoDatagramChannelHandler = new ObservableServiceHandler(testScheduler);

            handler.StartObserving(protoDatagramChannelHandler.MessageStream);

            var channel = new EmbeddedChannel(new ProtocolMessageVerifyHandler(_keySigner), _broadcastHandler, protoDatagramChannelHandler);

            channel.WriteInbound(_broadcastMessageSigned);

            testScheduler.Start();

            handler.SubstituteObserver.Received(1).OnNext(Arg.Any <TransactionBroadcast>());
        }