예제 #1
0
        public void Init()
        {
            _testScheduler      = new TestScheduler();
            _correlationManager = Substitute.For <IPeerMessageCorrelationManager>();
            _gossipManager      = Substitute.For <IBroadcastManager>();
            _keySigner          = Substitute.For <FakeKeySigner>();

            var peerSettings = Substitute.For <IPeerSettings>();

            peerSettings.NetworkType.Returns(NetworkType.Devnet);
            var peerValidator = Substitute.For <IPeerIdValidator>();

            peerValidator.ValidatePeerIdFormat(Arg.Any <PeerId>()).Returns(true);

            _factory = new TestPeerServerChannelFactory(
                _correlationManager,
                _gossipManager,
                _keySigner,
                peerValidator,
                peerSettings,
                _testScheduler);
            _senderId      = PeerIdHelper.GetPeerId("sender");
            _correlationId = CorrelationId.GenerateCorrelationId();
            _signature     = ByteUtil.GenerateRandomByteArray(new FfiWrapper().SignatureLength);
            _keySigner.Verify(Arg.Any <ISignature>(), Arg.Any <byte[]>(), default)
            .ReturnsForAnyArgs(true);
        }
 public TestPeerClientChannelFactory(IKeySigner keySigner,
                                     IPeerMessageCorrelationManager correlationManager,
                                     IPeerIdValidator peerIdValidator,
                                     IPeerSettings peerSettings,
                                     IScheduler scheduler)
     : base(keySigner, correlationManager, peerIdValidator, peerSettings, scheduler)
 {
     _handlers = HandlerGenerationFunction();
 }
예제 #3
0
 public TestPeerServerChannelFactory(IPeerMessageCorrelationManager correlationManager,
                                     IBroadcastManager broadcastManager,
                                     IKeySigner keySigner,
                                     IPeerIdValidator peerIdValidator,
                                     IPeerSettings signingContextProvider,
                                     TestScheduler testScheduler)
     : base(correlationManager, broadcastManager, keySigner, peerIdValidator, signingContextProvider,
            testScheduler)
 {
     _handlers = HandlerGenerationFunction();
 }
예제 #4
0
        public DiscoveryTestBuilder WithPeerMessageCorrelationManager(IPeerMessageCorrelationManager peerMessageCorrelationManager = default,
                                                                      IReputationManager reputationManager     = default,
                                                                      IMemoryCache memoryCache                 = default,
                                                                      IChangeTokenProvider changeTokenProvider = default)
        {
            _peerCorrelationManager = peerMessageCorrelationManager ??
                                      DiscoveryHelper.MockCorrelationManager(_scheduler, reputationManager, memoryCache, changeTokenProvider,
                                                                             _logger);

            return(this);
        }
예제 #5
0
 public HastingsDiscovery(ILogger logger,
                          IPeerRepository peerRepository,
                          IDns dns,
                          IPeerSettings peerSettings,
                          IPeerClient peerClient,
                          IPeerMessageCorrelationManager peerMessageCorrelationManager,
                          ICancellationTokenProvider cancellationTokenProvider,
                          IEnumerable <IPeerClientObservable> peerClientObservables,
                          bool autoStart                                   = true,
                          int peerDiscoveryBurnIn                          = 10,
                          IHastingsOriginator stepProposal                 = default,
                          IHastingsCareTaker hastingsCareTaker             = default,
                          int millisecondsTimeout                          = 10_000,
예제 #6
0
 private HastingDiscoveryTest(ILogger logger = default,
                              IPeerRepository peerRepository = default,
                              IPeerSettings peerSettings     = default,
                              IDns dns = default,
                              IPeerClient peerClient = default,
                              IPeerMessageCorrelationManager peerMessageCorrelationManager = default,
                              ICancellationTokenProvider cancellationTokenProvider         = default,
                              IEnumerable <IPeerClientObservable> peerClientObservables    = default,
                              bool autoStart                                   = true,
                              int peerDiscoveryBurnIn                          = 10,
                              IHastingsOriginator state                        = default,
                              IHastingsCareTaker hastingsCareTaker             = default,
                              int millisecondsTimeout                          = 10_000,
예제 #7
0
 public PeerClientChannelFactory(IKeySigner keySigner,
                                 IPeerMessageCorrelationManager correlationManager,
                                 IPeerIdValidator peerIdValidator,
                                 IPeerSettings peerSettings,
                                 IScheduler scheduler = null)
 {
     _scheduler          = scheduler ?? Scheduler.Default;
     _keySigner          = keySigner;
     _correlationManager = correlationManager;
     _peerIdValidator    = peerIdValidator;
     _signingContext     = new SigningContext {
         NetworkType = peerSettings.NetworkType, SignatureType = SignatureType.ProtocolPeer
     };
 }
        public PeerClientChannelFactoryTests()
        {
            _testScheduler            = new TestScheduler();
            _serverCorrelationManager = Substitute.For <IPeerMessageCorrelationManager>();
            _serverKeySigner          = Substitute.For <IKeySigner>();
            _serverKeySigner.CryptoContext.SignatureLength.Returns(64);
            var broadcastManager = Substitute.For <IBroadcastManager>();

            _peerIdValidator = Substitute.For <IPeerIdValidator>();

            var peerSettings = Substitute.For <IPeerSettings>();

            peerSettings.NetworkType.Returns(NetworkType.Devnet);

            var serverFactory = new UnitTests.P2P.IO.Transport.Channels.PeerServerChannelFactoryTests.TestPeerServerChannelFactory(
                _serverCorrelationManager,
                broadcastManager,
                _serverKeySigner,
                _peerIdValidator,
                peerSettings,
                _testScheduler);

            _signature = Substitute.For <ISignature>();

            _clientCorrelationManager = Substitute.For <IPeerMessageCorrelationManager>();
            _clientKeySigner          = Substitute.For <IKeySigner>();
            _clientKeySigner.CryptoContext.SignatureLength.Returns(64);

            _clientFactory = new UnitTests.P2P.IO.Transport.Channels.PeerClientChannelFactoryTests.TestPeerClientChannelFactory(
                _clientKeySigner,
                _clientCorrelationManager,
                _peerIdValidator,
                peerSettings,
                _testScheduler);

            _serverChannel =
                new EmbeddedChannel("server".ToChannelId(), true, serverFactory.InheritedHandlers.ToArray());

            _clientChannel =
                new EmbeddedChannel("client".ToChannelId(), true, _clientFactory.InheritedHandlers.ToArray());
        }
        public PeerClientChannelFactoryTests()
        {
            _testScheduler      = new TestScheduler();
            _correlationManager = Substitute.For <IPeerMessageCorrelationManager>();
            _gossipManager      = Substitute.For <IBroadcastManager>();
            _keySigner          = Substitute.For <FakeKeySigner>();

            var peerSettings = Substitute.For <IPeerSettings>();

            peerSettings.NetworkType.Returns(NetworkType.Devnet);

            var peerValidator = Substitute.For <IPeerIdValidator>();

            peerValidator.ValidatePeerIdFormat(Arg.Any <PeerId>()).Returns(true);

            _factory = new TestPeerClientChannelFactory(
                _keySigner,
                _correlationManager,
                peerValidator,
                peerSettings,
                _testScheduler);
        }