public async Task Can_receive_PingRequest()
        {
            var pingRequestHandler = new TestMessageObserver <PingRequest>(_logger);
            var request            = new PingRequest().ToProtocolMessage(_pid, _guid);

            await InitialisePeerServiceAndSendMessage(pingRequestHandler, request).ConfigureAwait(false);

            pingRequestHandler.SubstituteObserver.Received().OnNext(Arg.Any <PingRequest>());
        }
        public async Task Can_receive_incoming_ping_responses()
        {
            var messageObserver = new TestMessageObserver <PingResponse>(_logger);
            var protocolMessage = new PingResponse().ToProtocolMessage(_pid, _guid);

            await InitialisePeerServiceAndSendMessage(messageObserver, protocolMessage).ConfigureAwait(false);

            messageObserver.SubstituteObserver.Received().OnNext(Arg.Any <PingResponse>());
        }
Ejemplo n.º 3
0
        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>());
        }
        public async Task Can_receive_PeerNeighborsResponse()
        {
            var pingRequestHandler = new TestMessageObserver <PeerNeighborsResponse>(_logger);
            var neighbourIds       = "abc".Select(i => PeerIdHelper.GetPeerId(i.ToString()));
            var responseContent    = new PeerNeighborsResponse();

            responseContent.Peers.AddRange(neighbourIds);

            var response = responseContent.ToProtocolMessage(_pid, _guid);

            await InitialisePeerServiceAndSendMessage(pingRequestHandler, response).ConfigureAwait(false);

            pingRequestHandler.SubstituteObserver.Received(1).OnNext(Arg.Any <PeerNeighborsResponse>());
            var call = pingRequestHandler.SubstituteObserver.ReceivedCalls().Single();

            ((PeerNeighborsResponse)call.GetArguments()[0]).Peers
            .Should().BeEquivalentTo(responseContent.Peers);
        }