public PoaDeltaProducersProviderTests()
        {
            var hashingAlgorithm = HashingAlgorithm.GetAlgorithmMetadata("blake2b-256");

            _hashProvider = new HashProvider(hashingAlgorithm);

            var peerSettings = PeerIdHelper.GetPeerId("TEST").ToSubstitutedPeerSettings();

            _selfAsPeer = new Peer {
                PeerId = peerSettings.PeerId
            };
            var rand = new Random();

            _peers = Enumerable.Range(0, 5)
                     .Select(_ =>
            {
                var peerIdentifier = PeerIdHelper.GetPeerId(rand.Next().ToString());
                var peer           = new Peer {
                    PeerId = peerIdentifier
                };
                return(peer);
            }).ToList();

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

            var peerRepository = Substitute.For <IPeerRepository>();

            peerRepository.GetAll().Returns(_ => _peers);

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

            _producersByPreviousDelta = Substitute.For <IMemoryCache>();

            _poaDeltaProducerProvider = new PoaDeltaProducersProvider(peerRepository,
                                                                      peerSettings,
                                                                      _producersByPreviousDelta,
                                                                      _hashProvider,
                                                                      logger);
        }
        public void Init()
        {
            _hashProvider = new HashProvider(HashingAlgorithm.GetAlgorithmMetadata("keccak-256"));

            var peerSettings = PeerIdHelper.GetPeerId("TEST").ToSubstitutedPeerSettings();

            _selfAsPeer = new Peer {
                PeerId = peerSettings.PeerId
            };
            var rand = new Random();

            _peers = Enumerable.Range(0, 5)
                     .Select(_ =>
            {
                var peerIdentifier = PeerIdHelper.GetPeerId(rand.Next().ToString());
                var peer           = new Peer {
                    PeerId = peerIdentifier, LastSeen = DateTime.UtcNow
                };
                return(peer);
            }).ToList();

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

            var peerRepository = Substitute.For <IPeerRepository>();

            peerRepository.GetActivePoaPeers().Returns(_ => _peers);

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

            _producersByPreviousDelta = Substitute.For <IMemoryCache>();

            _poaDeltaProducerProvider = new PoaDeltaProducersProvider(peerRepository,
                                                                      peerSettings,
                                                                      _producersByPreviousDelta,
                                                                      _hashProvider,
                                                                      logger);
        }