Example #1
0
        public ReputationManagerTests(ITestOutputHelper output) : base(output)
        {
            ContainerProvider.ConfigureContainerBuilder();

            _scope             = ContainerProvider.Container.BeginLifetimeScope(CurrentTestName);
            _reputationManager = _scope.Resolve <IReputationManager>();
        }
Example #2
0
        public void Init()
        {
            Setup(TestContext.CurrentContext);

            ContainerProvider.ConfigureContainerBuilder();
            _scope             = ContainerProvider.Container.BeginLifetimeScope(CurrentTestName);
            _reputationManager = _scope.Resolve <IReputationManager>();
        }
Example #3
0
 public DeltaElectorTests()
 {
     _testScheduler     = new TestScheduler();
     _hashProvider      = new HashProvider(HashingAlgorithm.GetAlgorithmMetadata("blake2b-256"));
     _logger            = Substitute.For <ILogger>();
     _reputationManager =
         new ReputationManager(new PeerRepository(new InMemoryRepository <Peer, string>()), _logger, _testScheduler);
     _cache = Substitute.For <IMemoryCache>();
     _deltaProducersProvider = Substitute.For <IDeltaProducersProvider>();
 }
Example #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);
        }
Example #5
0
 public static IPeerMessageCorrelationManager MockCorrelationManager(IScheduler scheduler,
                                                                     IReputationManager reputationManager     = default,
                                                                     IMemoryCache memoryCache                 = default,
                                                                     IChangeTokenProvider changeTokenProvider = default,
                                                                     ILogger logger = default)
 {
     return(new PeerMessageCorrelationManager(
                reputationManager ?? Substitute.For <IReputationManager>(),
                memoryCache ?? Substitute.For <IMemoryCache>(),
                logger ?? Substitute.For <ILogger>(),
                changeTokenProvider ?? new TtlChangeTokenProvider(3),
                scheduler));
 }
Example #6
0
        public DeltaElector(IMemoryCache candidatesCache,
                            IDeltaProducersProvider deltaProducersProvider,
                            IReputationManager reputationManager,
                            ILogger logger)
        {
            _candidatesCache        = candidatesCache;
            _deltaProducersProvider = deltaProducersProvider;
            _reputationManager      = reputationManager;
            _cacheEntryOptions      = () => new MemoryCacheEntryOptions()
                                      .AddExpirationToken(
                new CancellationChangeToken(new CancellationTokenSource(TimeSpan.FromMinutes(3)).Token));

            _logger = logger;
        }
        public PeerMessageCorrelationManager(IReputationManager reputationManager,
                                             IMemoryCache cache,
                                             ILogger logger,
                                             IChangeTokenProvider changeTokenProvider,
                                             IScheduler scheduler = null) : base(cache, logger, changeTokenProvider)
        {
            var streamScheduler = scheduler ?? Scheduler.Default;

            _reputationEvent      = new ReplaySubject <IPeerReputationChange>(0, streamScheduler);
            ReputationEventStream = _reputationEvent.AsObservable();
            _evictionEvent        = new ReplaySubject <KeyValuePair <ICorrelationId, PeerId> >(0, streamScheduler);
            EvictionEventStream   = _evictionEvent.AsObservable();

            reputationManager.MergeReputationStream(ReputationEventStream);
        }