public async Task Can_Process_GetNeighbourRequest_Correctly() { // mock a random set of peers var randomPeers = new List <Peer> { new Peer { PeerId = PeerIdHelper.GetPeerId("peer1"), LastSeen = DateTime.Now }, new Peer { PeerId = PeerIdHelper.GetPeerId("peer2"), LastSeen = DateTime.Now }, new Peer { PeerId = PeerIdHelper.GetPeerId("peer3"), LastSeen = DateTime.Now }, new Peer { PeerId = PeerIdHelper.GetPeerId("peer4"), LastSeen = DateTime.Now }, new Peer { PeerId = PeerIdHelper.GetPeerId("peer5"), LastSeen = DateTime.Now }, new Peer { PeerId = PeerIdHelper.GetPeerId("peer6") } }; // add them to the mocked repository, and set return expectation AddMockPeerToDbAndSetReturnExpectation(randomPeers, _subbedPeerRepository); var peerSettings = _peerId.ToSubstitutedPeerSettings(); var neighbourRequestHandler = new GetNeighbourRequestObserver(peerSettings, _subbedPeerRepository, _subbedLogger ); var peerNeighbourRequestMessage = new PeerNeighborsRequest(); var fakeContext = Substitute.For <IChannelHandlerContext>(); var channeledAny = new ObserverDto(fakeContext, peerNeighbourRequestMessage.ToProtocolMessage(PeerIdHelper.GetPeerId(), CorrelationId.GenerateCorrelationId())); var observableStream = new[] { channeledAny }.ToObservable(_testScheduler); neighbourRequestHandler.StartObserving(observableStream); var peerNeighborsResponseMessage = new PeerNeighborsResponse(); for (var i = 0; i < 5; i++) { peerNeighborsResponseMessage.Peers.Add(PeerIdHelper.GetPeerId()); } _testScheduler.Start(); await fakeContext.Channel.ReceivedWithAnyArgs(1) .WriteAndFlushAsync( peerNeighborsResponseMessage.ToProtocolMessage(_peerId, CorrelationId.GenerateCorrelationId())); }
public async Task Can_receive_PeerNeighborsRequest() { var pingRequestHandler = new TestMessageObserver <PeerNeighborsRequest>(_logger); var request = new PeerNeighborsRequest().ToProtocolMessage(_pid, _guid); await InitialisePeerServiceAndSendMessage(pingRequestHandler, request).ConfigureAwait(false); pingRequestHandler.SubstituteObserver.Received().OnNext(Arg.Any <PeerNeighborsRequest>()); }
private ProtocolMessage GetSignedMessage() { var protocolMessage = new PeerNeighborsRequest() .ToProtocolMessage(_senderId, CorrelationId.GenerateCorrelationId()); var signedMessage = protocolMessage.Sign(); return(signedMessage); }