public FavouriteDeltaObserverTests()
        {
            var hashProvider = new HashProvider(HashingAlgorithm.GetAlgorithmMetadata("blake2b-256"));

            _deltaElector       = Substitute.For <IDeltaElector>();
            _fakeChannelContext = Substitute.For <IChannelHandlerContext>();
            var logger = Substitute.For <ILogger>();

            _voterId    = PeerIdHelper.GetPeerId("favourite delta voter");
            _producerId = PeerIdHelper.GetPeerId("candidate delta producer");

            _favouriteDeltaObserver = new FavouriteDeltaObserver(_deltaElector, hashProvider, logger);
            _newHash  = MultiBase.Decode(hashProvider.ComputeUtf8MultiHash("newHash").CreateCid());
            _prevHash = MultiBase.Decode(hashProvider.ComputeUtf8MultiHash("prevHash").CreateCid());
        }
Esempio n. 2
0
        public void Can_Save_Decreased_Peer()
        {
            var pid = PeerIdHelper.GetPeerId("some_peer");

            var savedPeer            = SavePeerInRepo(pid);
            var peerReputationChange = Substitute.For <IPeerReputationChange>();

            peerReputationChange.PeerId.Returns(pid);
            peerReputationChange.ReputationEvent.Returns(Substitute.For <IReputationEvents>());
            peerReputationChange.ReputationEvent.Amount.Returns(-100);
            _reputationManager.OnNext(peerReputationChange);
            var updatedSubbedPeer = _reputationManager.PeerRepository.Get(savedPeer.DocumentId);

            updatedSubbedPeer.Reputation.Should().Be(0);
        }
Esempio n. 3
0
        private void PopulatePeers(int count)
        {
            var peerList = new List <Peer>();

            for (var i = 10; i < count + 10; i++)
            {
                var peer = new Peer
                {
                    PeerId = PeerIdHelper.GetPeerId(i.ToString())
                };
                peerList.Add(peer);
                _peers.Get(peer.DocumentId).Returns(peer);
            }

            _peers.AsQueryable().Returns(peerList.AsQueryable());
        }
Esempio n. 4
0
        public void When_receiving_invalid_candidate_should_log_and_not_hit_the_cache()
        {
            var elector = new DeltaElector(_cache, _deltaProducersProvider, _reputationManager, _logger);

            elector.OnNext(new FavouriteDeltaBroadcast {
                Candidate = new CandidateDeltaBroadcast
                {
                    Hash       = ByteUtil.GenerateRandomByteArray(32).ToByteString(),
                    ProducerId = PeerIdHelper.GetPeerId("unknown_producer")
                },
                VoterId = PeerIdHelper.GetPeerId("candidate field is invalid")
            });

            _cache.DidNotReceiveWithAnyArgs().TryGetValue(Arg.Any <object>(), out Arg.Any <object>());
            _cache.DidNotReceiveWithAnyArgs().CreateEntry(Arg.Any <object>());
        }
        public void PeerBlackListingRequestObserver_should_set_Blacklist_flag_on_known_peers(string publicKeySeed, bool blacklist)
        {
            var targetedId = PeerIdHelper.GetPeerId(publicKeySeed);
            var request    = new SetPeerBlacklistRequest
            {
                PublicKey = targetedId.PublicKey,
                Ip        = targetedId.Ip,
                Blacklist = blacklist
            };

            var responseContent = GetSetPeerBlacklistRequest(request);

            responseContent.Blacklist.Should().Be(blacklist);
            responseContent.Ip.Should().BeEquivalentTo(targetedId.Ip);
            responseContent.PublicKey.Should().BeEquivalentTo(targetedId.PublicKey);
        }
        public void CanHandlerDownloadChunk()
        {
            var guid    = CorrelationId.GenerateCorrelationId();
            var request = new TransferFileBytesRequest
            {
                ChunkBytes          = ByteString.Empty,
                ChunkId             = 1,
                CorrelationFileName = CorrelationId.GenerateCorrelationId().Id.ToByteString()
            }.ToProtocolMessage(PeerIdHelper.GetPeerId("Test"), guid);

            _downloadFileTransferFactory.DownloadChunk(Arg.Any <TransferFileBytesRequest>())
            .Returns(FileTransferResponseCodeTypes.Successful);

            request.SendToHandler(_context, _observer);
            _downloadFileTransferFactory.Received(1).DownloadChunk(Arg.Any <TransferFileBytesRequest>());
        }
Esempio n. 7
0
        public void RpcServerChannelFactory_should_put_the_correct_outbound_handlers_on_the_pipeline()
        {
            var testingChannel = new EmbeddedChannel("test".ToChannelId(),
                                                     true, _factory.InheritedHandlers.ToArray());

            var senderId        = PeerIdHelper.GetPeerId("sender");
            var correlationId   = CorrelationId.GenerateCorrelationId();
            var protocolMessage = new PingResponse().ToProtocolMessage(senderId, correlationId);

            testingChannel.WriteOutbound(protocolMessage);

            _correlationManager.DidNotReceiveWithAnyArgs().TryMatchResponse(protocolMessage);

            _keySigner.DidNotReceiveWithAnyArgs().Sign(Arg.Any <byte[]>(), default);

            testingChannel.ReadOutbound <IByteBuffer>();
        }
Esempio n. 8
0
        public async Task Can_Process_PingRequest_Correctly()
        {
            var pingRequestMessage = new PingRequest();

            var fakeContext = Substitute.For <IChannelHandlerContext>();
            var channeledAny = new ObserverDto(fakeContext, pingRequestMessage.ToProtocolMessage(PeerIdHelper.GetPeerId(), CorrelationId.GenerateCorrelationId()));
            var observableStream = new[] { channeledAny }.ToObservable(_testScheduler);

            _pingRequestObserver.StartObserving(observableStream);

            _testScheduler.Start();

            await fakeContext.Channel.ReceivedWithAnyArgs(1)
            .WriteAndFlushAsync(new PingResponse().ToProtocolMessage(PeerIdHelper.GetPeerId(), CorrelationId.GenerateCorrelationId()));

            _subbedLogger.ReceivedWithAnyArgs(1);
        }
Esempio n. 9
0
        public void EntityStoreAuditsCreateTime()
        {
            var repo = new InMemoryRepository <Peer, string>();
            var peer = new Peer {
                PeerId = PeerIdHelper.GetPeerId("Test")
            };

            repo.Add(peer);
            var retrievedPeer = repo.Get(peer.DocumentId);
            var now           = DateTime.UtcNow.Date;
            var datecomparer  = retrievedPeer.Created.Date.ToString("MM/dd/yyyy");

            // ReSharper disable once SuspiciousTypeConversion.Global
            // ReSharper disable once ReturnValueOfPureMethodIsNotUsed
            datecomparer.Should().Equals(now.ToString("MM/dd/yyyy"));
            retrievedPeer.Modified.Should().BeNull();
        }
        public async Task Does_Process_IMessageDto_Types()
        {
            var protocolMessage =
                new PingRequest().ToProtocolMessage(PeerIdHelper.GetPeerId("sender"));
            var messageDto = new MessageDto(protocolMessage, PeerIdHelper.GetPeerId("recipient"));

            var correlatableHandler = new CorrelatableHandler <IMessageCorrelationManager>(_fakeMessageCorrelationManager);

            await correlatableHandler.WriteAsync(_fakeContext, messageDto);

            _fakeMessageCorrelationManager
            .ReceivedWithAnyArgs()
            .AddPendingRequest(Arg.Any <CorrelatableMessage <ProtocolMessage> >()
                               );

            await _fakeContext.ReceivedWithAnyArgs(1).WriteAsync(Arg.Any <IMessageDto <ProtocolMessage> >());
        }
Esempio n. 11
0
        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);
            }
        }
Esempio n. 12
0
        public void Can_WalkForward_With_Valid_Candidate()
        {
            var knownStepPid =
                PeerIdHelper.GetPeerId("hey_its_jimmys_brother_the_guy_with_the_beautiful_voice");
            var knownNextCandidate =
                PeerIdHelper.GetPeerId("these_eyes....");

            var discoveryTestBuilder = new DiscoveryTestBuilder()
                                       .WithLogger()
                                       .WithScheduler(_testScheduler)
                                       .WithPeerRepository()
                                       .WithDns()
                                       .WithPeerSettings()
                                       .WithPeerClient()
                                       .WithCancellationProvider()
                                       .WithPeerClientObservables()
                                       .WithCurrentStep(default, true, knownStepPid)
        public void Init()
        {
            _channel = new EmbeddedChannel(
                new DatagramPacketEncoder <IMessage>(new ProtobufEncoder())
                );

            var senderPid = PeerIdHelper.GetPeerId("sender",
                                                   IPAddress.Loopback,
                                                   10000
                                                   );

            _recipientPid = PeerIdHelper.GetPeerId("sender",
                                                   IPAddress.Loopback,
                                                   20000
                                                   );

            _protocolMessageSigned = new PingRequest().ToSignedProtocolMessage(senderPid, (byte[])default);
Esempio n. 14
0
        public AddFileToDfsRequestObserverTests()
        {
            _hashProvider     = new HashProvider(HashingAlgorithm.GetAlgorithmMetadata("blake2b-256"));
            _manualResetEvent = new ManualResetEvent(false);
            _senderIdentifier = PeerIdHelper.GetPeerId("sender");
            var peerSettings = _senderIdentifier.ToSubstitutedPeerSettings();

            _fakeDfs = Substitute.For <IDfs>();
            var logger = Substitute.For <ILogger>();

            _fakeContext                 = Substitute.For <IChannelHandlerContext>();
            _nodeFileTransferFactory     = Substitute.For <IDownloadFileTransferFactory>();
            _addFileToDfsRequestObserver = new AddFileToDfsRequestObserver(_fakeDfs,
                                                                           peerSettings,
                                                                           _nodeFileTransferFactory,
                                                                           logger);
        }
        protected MessageCorrelationManagerTests()
        {
            SubbedLogger        = Substitute.For <ILogger>();
            ChangeTokenProvider = Substitute.For <IChangeTokenProvider>();
            var changeToken = Substitute.For <IChangeToken>();

            ChangeTokenProvider.GetChangeToken().Returns(changeToken);
            Cache = Substitute.For <IMemoryCache>();

            _senderPeerId = PeerIdHelper.GetPeerId("sender");
            PeerIds       = new[]
            {
                PeerIdHelper.GetPeerId("peer1"),
                PeerIdHelper.GetPeerId("peer2"),
                PeerIdHelper.GetPeerId("peer3")
            };
        }
        private IRepository <PeerDao, string> PopulatePeerRepo(ILifetimeScope scope, out PeerDao peerDaoOutput)
        {
            var peerRepo = scope.Resolve <IRepository <PeerDao, string> >();

            var peerDao = new PeerDao().ToDao(new Peer {
                PeerId = PeerIdHelper.GetPeerId(new Random().Next().ToString())
            });

            peerDao.Id = Guid.NewGuid().ToString();

            peerDao.PeerIdentifier    = new PeerIdDao().ToDao(PeerIdHelper.GetPeerId(new Random().Next().ToString()));
            peerDao.PeerIdentifier.Id = Guid.NewGuid().ToString();

            peerRepo.Add(peerDao);
            peerDaoOutput = peerDao;

            return(peerRepo);
        }
        public PeerServiceTests(ITestOutputHelper output) : base(output)
        {
            _pid    = PeerIdHelper.GetPeerId("im_a_key");
            _guid   = CorrelationId.GenerateCorrelationId();
            _logger = Substitute.For <ILogger>();

            _serverChannel = new EmbeddedObservableChannel($"Server:{CurrentTestName}");
            _udpServerServerChannelFactory = Substitute.For <IUdpServerChannelFactory>();

            _peerSettings = Substitute.For <IPeerSettings>();
            _peerSettings.BindAddress.Returns(IPAddress.Parse("127.0.0.1"));
            _peerSettings.Port.Returns(1234);

            _udpServerServerChannelFactory.BuildChannel(Arg.Any <IEventLoopGroupFactory>(), _peerSettings.BindAddress, _peerSettings.Port).Returns(_serverChannel);

            _peerDiscovery      = Substitute.For <IPeerDiscovery>();
            _p2PMessageHandlers = new List <IP2PMessageObserver>();
        }
        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);
        }
        private static Peer[] PreparePeerRepositoryContent()
        {
            var blacklistedPeers = Enumerable.Range(0, 5).Select(i => new Peer
            {
                Reputation  = 0,
                PeerId      = PeerIdHelper.GetPeerId($"blacklisted-{i}"),
                BlackListed = true
            });
            var goodPeers = Enumerable.Range(0, 23).Select(i => new Peer
            {
                Reputation = 125,
                PeerId     = PeerIdHelper.GetPeerId($"good-{i}")
            });

            var fakePeers = blacklistedPeers.Concat(goodPeers).ToArray();

            return(fakePeers);
        }
        public void CandidateDeltaBroadcastDao_CandidateDeltaBroadcast_Should_Be_Convertible()
        {
            var candidateDeltaBroadcastDao = GetMapper <CandidateDeltaBroadcastDao>();
            var previousHash = _hashProvider.ComputeMultiHash(Encoding.UTF8.GetBytes("previousHash"));
            var hash         = _hashProvider.ComputeMultiHash(Encoding.UTF8.GetBytes("anotherHash"));

            var original = new CandidateDeltaBroadcast
            {
                Hash                 = hash.ToArray().ToByteString(),
                ProducerId           = PeerIdHelper.GetPeerId("test"),
                PreviousDeltaDfsHash = previousHash.ToArray().ToByteString()
            };

            var candidateDeltaBroadcast = candidateDeltaBroadcastDao.ToDao(original);
            var reconverted             = candidateDeltaBroadcast.ToProtoBuff();

            reconverted.Should().Be(original);
        }
Esempio n. 21
0
        public void When_voter_not_a_producer_should_not_save_vote()
        {
            var favourite = DeltaHelper.GetFavouriteDelta(_hashProvider);

            _deltaProducersProvider
            .GetDeltaProducersFromPreviousDelta(Arg.Any <Cid>())
            .Returns(new List <PeerId> {
                PeerIdHelper.GetPeerId("the only known producer")
            });

            var elector = new DeltaElector(_cache, _deltaProducersProvider, _reputationManager, _logger);

            elector.OnNext(favourite);

            _deltaProducersProvider.Received(1)
            .GetDeltaProducersFromPreviousDelta(Arg.Is <Cid>(h =>
                                                             favourite.Candidate.PreviousDeltaDfsHash.Equals(h.ToArray().ToByteString())));
            _cache.DidNotReceiveWithAnyArgs().TryGetValue(default, out _);
Esempio n. 22
0
        public void TestPeerListRequestResponse(int fakePeers)
        {
            var peerService = Substitute.For <IPeerRepository>();
            var peerList    = new List <Peer>();

            for (var i = 0; i < fakePeers; i++)
            {
                peerList.Add(new Peer
                {
                    Reputation = 0,
                    LastSeen   = DateTime.Now,
                    PeerId     = PeerIdHelper.GetPeerId(i.ToString())
                });
            }

            // Build a fake remote endpoint
            _fakeContext.Channel.RemoteAddress.Returns(EndpointBuilder.BuildNewEndPoint("192.0.0.1", 42042));

            peerService.GetAll().Returns(peerList);

            var sendPeerId = PeerIdHelper.GetPeerId("sender");

            var protocolMessage =
                new GetPeerCountRequest().ToProtocolMessage(PeerIdHelper.GetPeerId("sender"));
            var messageStream =
                MessageStreamHelper.CreateStreamWithMessage(_fakeContext, _testScheduler, protocolMessage);

            var peerSettings = sendPeerId.ToSubstitutedPeerSettings();
            var handler      = new PeerCountRequestObserver(peerSettings, peerService, _logger);

            handler.StartObserving(messageStream);

            _testScheduler.Start();

            var receivedCalls = _fakeContext.Channel.ReceivedCalls().ToList();

            receivedCalls.Count.Should().Be(1);

            var sentResponseDto = (IMessageDto <ProtocolMessage>)receivedCalls[0].GetArguments().Single();

            var responseContent = sentResponseDto.Content.FromProtocolMessage <GetPeerCountResponse>();

            responseContent.PeerCount.Should().Be(fakePeers);
        }
Esempio n. 23
0
        public void TestPeerListRequestResponse(params string[] fakePeers)
        {
            var testScheduler = new TestScheduler();
            var peerService   = Substitute.For <IPeerRepository>();
            var peerList      = new List <Peer>();

            fakePeers.ToList().ForEach(fakePeer =>
            {
                peerList.Add(new Peer
                {
                    Reputation = 0,
                    LastSeen   = DateTime.Now,
                    PeerId     = PeerIdHelper.GetPeerId(fakePeer)
                });
            });

            // Let peerRepository return the fake peer list
            peerService.GetAll().Returns(peerList.ToArray());

            // Build a fake remote endpoint
            _fakeContext.Channel.RemoteAddress.Returns(EndpointBuilder.BuildNewEndPoint("192.0.0.1", 42042));

            var protocolMessage = new GetPeerListRequest().ToProtocolMessage(PeerIdHelper.GetPeerId("sender"));
            var messageStream   =
                MessageStreamHelper.CreateStreamWithMessage(_fakeContext, testScheduler, protocolMessage);

            var peerSettings = PeerIdHelper.GetPeerId("sender").ToSubstitutedPeerSettings();
            var handler      = new PeerListRequestObserver(peerSettings, _logger, peerService);

            handler.StartObserving(messageStream);

            testScheduler.Start();

            var receivedCalls = _fakeContext.Channel.ReceivedCalls().ToList();

            receivedCalls.Count.Should().Be(1);

            var sentResponseDto = (IMessageDto <ProtocolMessage>)receivedCalls[0].GetArguments().Single();

            var responseContent = sentResponseDto.Content.FromProtocolMessage <GetPeerListResponse>();

            responseContent.Peers.Count.Should().Be(fakePeers.Length);
        }
        public PeerBlackListingRequestObserverTests()
        {
            _logger      = Substitute.For <ILogger>();
            _fakeContext = Substitute.For <IChannelHandlerContext>();

            var fakeChannel = Substitute.For <IChannel>();

            _fakeContext.Channel.Returns(fakeChannel);
            _fakeContext.Channel.RemoteAddress.Returns(EndpointBuilder.BuildNewEndPoint("192.0.0.1", 42042));

            _testScheduler  = new TestScheduler();
            _peerRepository = Substitute.For <IPeerRepository>();

            var fakePeers = PreparePeerRepositoryContent();

            _peerRepository.GetAll().Returns(fakePeers);

            _senderId = PeerIdHelper.GetPeerId("sender");
        }
        public DeltaVoterTests()
        {
            _hashProvider = new HashProvider(HashingAlgorithm.GetAlgorithmMetadata("blake2b-256"));

            _cache = Substitute.For <IMemoryCache>();

            _previousDeltaHash = _hashProvider.ComputeMultiHash(ByteUtil.GenerateRandomByteArray(32));

            _producerIds = "1234"
                           .Select((c, i) => PeerIdHelper.GetPeerId(c.ToString()))
                           .Shuffle();
            _producersProvider = Substitute.For <IDeltaProducersProvider>();
            _producersProvider.GetDeltaProducersFromPreviousDelta(Arg.Any <MultiHash>())
            .Returns(_producerIds);

            _localIdentifier = PeerIdHelper.GetPeerId("myself, a producer");
            _peerSettings    = _localIdentifier.ToSubstitutedPeerSettings();
            _logger          = Substitute.For <ILogger>();
        }
        public async Task Can_Process_DeltaHeightRequest_Correctly()
        {
            var fakeContext = Substitute.For <IChannelHandlerContext>();
            var deltaHistoryRequestMessage = new DeltaHistoryRequest();

            var channeledAny = new ObserverDto(fakeContext,
                                               deltaHistoryRequestMessage.ToProtocolMessage(PeerIdHelper.GetPeerId(),
                                                                                            CorrelationId.GenerateCorrelationId()
                                                                                            )
                                               );

            var observableStream = new[] { channeledAny }.ToObservable(_testScheduler);

            _deltaHistoryRequestObserver.StartObserving(observableStream);
            _testScheduler.Start();

            var response = new DeltaHistoryResponse();
            var hp            = new HashProvider(HashingAlgorithm.GetAlgorithmMetadata("keccak-256"));
            var lastDeltaHash = hp.ComputeMultiHash(ByteUtil.GenerateRandomByteArray(32));

            for (uint x = 0; x < 10; x++)
            {
                var delta = new Delta
                {
                    PreviousDeltaDfsHash = lastDeltaHash.Digest.ToByteString()
                };

                var index = new DeltaIndex
                {
                    Height = 10,
                    Cid    = delta.ToByteString()
                };

                response.DeltaIndex.Add(index);
                lastDeltaHash = hp.ComputeMultiHash(ByteUtil.GenerateRandomByteArray(32));
            }

            await fakeContext.Channel.ReceivedWithAnyArgs(1)
            .WriteAndFlushAsync(response.ToProtocolMessage(PeerIdHelper.GetPeerId(), CorrelationId.GenerateCorrelationId())).ConfigureAwait(false);

            _subbedLogger.ReceivedWithAnyArgs(1);
        }
Esempio n. 27
0
        public void Init()
        {
            _keySigner = Substitute.For <FakeKeySigner>();
            _keySigner.Verify(Arg.Any <ISignature>(), Arg.Any <byte[]>(), default).ReturnsForAnyArgs(true);
            _fakeBroadcastManager = Substitute.For <IBroadcastManager>();
            _broadcastHandler     = new BroadcastHandler(_fakeBroadcastManager);

            var fakeSignature = Substitute.For <ISignature>();

            fakeSignature.SignatureBytes.Returns(ByteUtil.GenerateRandomByteArray(new FfiWrapper().SignatureLength));

            _signingContext = DevNetPeerSigningContext.Instance;

            var peerId       = PeerIdHelper.GetPeerId("Test");
            var innerMessage = new TransactionBroadcast();

            _broadcastMessageSigned = innerMessage
                                      .ToSignedProtocolMessage(peerId, fakeSignature, _signingContext)
                                      .ToSignedProtocolMessage(peerId, fakeSignature, _signingContext);
        }
Esempio n. 28
0
        public static ICommandContext GenerateCliCommandContext()
        {
            var userOutput           = Substitute.For <IUserOutput>();
            var nodeRpcClientFactory = Substitute.For <IRpcClientFactory>();
            var certificateStore     = Substitute.For <ICertificateStore>();

            var commandContext = Substitute.For <ICommandContext>();

            commandContext.UserOutput.Returns(userOutput);
            commandContext.RpcClientFactory.Returns(nodeRpcClientFactory);
            commandContext.CertificateStore.Returns(certificateStore);

            IHashProvider hashProvider   = new HashProvider(HashingAlgorithm.GetAlgorithmMetadata("blake2b-256"));
            var           deltaMultiHash = hashProvider.ComputeUtf8MultiHash("previous");

            commandContext.PeerId.Returns(
                PeerIdHelper.GetPeerId(deltaMultiHash.Digest, IPAddress.Any, 9010));

            return(commandContext);
        }
        public GetDeltaRequestObserverTests()
        {
            var builder = new ContainerBuilder();

            builder.RegisterModule <HashingModule>();
            var container = builder.Build();

            container.BeginLifetimeScope();

            _hashProvider = container.Resolve <IHashProvider>();

            _testScheduler = new TestScheduler();
            var logger         = Substitute.For <ILogger>();
            var peerIdentifier = PeerIdHelper.GetPeerId("responder");
            var peerSettings   = peerIdentifier.ToSubstitutedPeerSettings();

            _deltaCache  = Substitute.For <IDeltaCache>();
            _observer    = new GetDeltaRequestObserver(_hashProvider, _deltaCache, peerSettings, logger);
            _fakeContext = Substitute.For <IChannelHandlerContext>();
        }
Esempio n. 30
0
        public BadFavouritesData()
        {
            var hashProvider = new HashProvider(HashingAlgorithm.GetAlgorithmMetadata("blake2b-256"));

            Add(null, typeof(ArgumentNullException));
            Add(new FavouriteDeltaBroadcast(), typeof(InvalidDataException));
            Add(new FavouriteDeltaBroadcast
            {
                Candidate = new CandidateDeltaBroadcast
                {
                    Hash       = ByteUtil.GenerateRandomByteArray(32).ToByteString(),
                    ProducerId = PeerIdHelper.GetPeerId("unknown_producer")
                },
                VoterId = PeerIdHelper.GetPeerId("candidate field is invalid")
            }, typeof(InvalidDataException));
            Add(new FavouriteDeltaBroadcast
            {
                Candidate = DeltaHelper.GetCandidateDelta(hashProvider)
            }, typeof(InvalidDataException));
        }