Exemple #1
0
        public TestCycleEventProvider(ILogger logger = null)
        {
            Scheduler = new TestScheduler();

            var schedulerProvider = Substitute.For <ICycleSchedulerProvider>();

            schedulerProvider.Scheduler.Returns(Scheduler);

            var dateTimeProvider  = Substitute.For <IDateTimeProvider>();
            var deltaHashProvider = Substitute.For <IDeltaHashProvider>();

            var hashingAlgorithm = HashingAlgorithm.GetAlgorithmMetadata("blake2b-256");
            var hashingProvider  = new HashProvider(hashingAlgorithm);

            dateTimeProvider.UtcNow.Returns(_ => Scheduler.Now.DateTime);

            _cycleEventsProvider = new CycleEventsProvider(
                CycleConfiguration.Default, dateTimeProvider, schedulerProvider, deltaHashProvider,
                logger ?? Substitute.For <ILogger>());

            deltaHashProvider.GetLatestDeltaHash(Arg.Any <DateTime>())
            .Returns(ci => hashingProvider.ComputeMultiHash(
                         BitConverter.GetBytes(((DateTime)ci[0]).Ticks /
                                               (int)_cycleEventsProvider.Configuration.CycleDuration.Ticks)));

            _deltaUpdatesSubscription = PhaseChanges.Subscribe(p => CurrentPhase = p);
        }
Exemple #2
0
 public Consensus(IDeltaBuilder deltaBuilder,
     IDeltaVoter deltaVoter,
     IDeltaElector deltaElector,
     IDeltaCache deltaCache,
     IDeltaHub deltaHub,
     ICycleEventsProvider cycleEventsProvider,
     IDeltaHashProvider deltaHashProvider,
     ILogger logger)
 {
     _deltaVoter = deltaVoter;
     _deltaElector = deltaElector;
     _cycleEventsProvider = cycleEventsProvider;
     _deltaHashProvider = deltaHashProvider;
     _deltaBuilder = deltaBuilder;
     _deltaHub = deltaHub;
     _deltaCache = deltaCache;
     _logger = logger;
     logger.Information("Consensus repository initialised.");
 }