Пример #1
0
        public BlocksStorageTests()
        {
            var builder = new ConfigurationBuilder();

            builder.AddInMemoryCollection(new Dictionary <string, string>()
            {
                { "Zcoin:Network:Type", "Regtest" }
            });

            this.config    = builder.Build();
            this.dbFactory = new TestMainDatabaseFactory();
            this.subject   = new BlocksStorage(this.config, this.dbFactory);
        }
Пример #2
0
        public async Task AddAsync_WithValidMtpBlock_ShouldSuccess()
        {
            // Arrange.
            var builder = new ConfigurationBuilder();

            builder.AddInMemoryCollection(new Dictionary <string, string>()
            {
                { "Zcoin:Network:Type", "Mainnet" } // We cannot use Regtest since MTP is never activated.
            });

            var config  = builder.Build();
            var subject = new BlocksStorage(config, this.dbFactory, this.exodusEncoder.Object);
            var block   = Block.CreateBlock(ZcoinNetworks.Instance.Mainnet);

            block.Header.BlockTime = new DateTimeOffset(
                year: 2019,
                month: 5,
                day: 31,
                hour: 21,
                minute: 38,
                second: 5,
                offset: TimeSpan.Zero
                );

            block.Header.SetMtpVersion(99);
            block.Header.SetMtpHashValue(new uint256(1));
            block.Header.SetReserved1(new uint256(2));
            block.Header.SetReserved2(new uint256(3));

            // Act.
            await subject.AddAsync(block, 0, CancellationToken.None);

            // Assert.
            var(saved, _) = await subject.GetAsync(block.GetHash(), CancellationToken.None);

            Assert.NotNull(saved);
            Assert.Equal(block.GetHash(), saved.GetHash());
        }