Ejemplo n.º 1
0
        public async Task Test_Validate_Block_Before_Execute()
        {
            Block block = null;
            bool  validateResult;

            validateResult = await _blockValidationProvider.ValidateBlockBeforeExecuteAsync(block);

            validateResult.ShouldBeFalse();

            block          = new Block();
            validateResult = await _blockValidationProvider.ValidateBlockBeforeExecuteAsync(block);

            validateResult.ShouldBeFalse();

            block.Header   = new BlockHeader();
            validateResult = await _blockValidationProvider.ValidateBlockBeforeExecuteAsync(block);

            validateResult.ShouldBeFalse();

            block.Body     = new BlockBody();
            validateResult = await _blockValidationProvider.ValidateBlockBeforeExecuteAsync(block);

            validateResult.ShouldBeFalse();

            block.Body.TransactionIds.Add(Hash.Empty);
            block.Header   = _kernelTestHelper.GenerateBlock(9, Hash.FromString("PreviousBlockHash")).Header;
            validateResult = await _blockValidationProvider.ValidateBeforeAttachAsync(block);

            validateResult.ShouldBeFalse();

            validateResult = await _blockValidationProvider.ValidateBlockBeforeExecuteAsync(block);

            validateResult.ShouldBeTrue();
        }
        public async Task Test_Validate_Block_Before_Execute()
        {
            Block block = null;
            bool  validateResult;

            validateResult = await _blockValidationProvider.ValidateBlockBeforeExecuteAsync(block);

            validateResult.ShouldBeFalse();

            block          = new Block();
            validateResult = await _blockValidationProvider.ValidateBlockBeforeExecuteAsync(block);

            validateResult.ShouldBeFalse();

            block.Header   = new BlockHeader();
            validateResult = await _blockValidationProvider.ValidateBlockBeforeExecuteAsync(block);

            validateResult.ShouldBeFalse();

            block.Body     = new BlockBody();
            validateResult = await _blockValidationProvider.ValidateBlockBeforeExecuteAsync(block);

            validateResult.ShouldBeFalse();

            block.Body.Transactions.Add(Hash.Empty);
            validateResult = await _blockValidationProvider.ValidateBeforeAttachAsync(block);

            validateResult.ShouldBeFalse();

            block.Header.Time = DateTime.UtcNow.ToTimestamp();
            block.Header.MerkleTreeRootOfTransactions = block.Body.CalculateMerkleTreeRoots();
            validateResult = await _blockValidationProvider.ValidateBlockBeforeExecuteAsync(block);

            validateResult.ShouldBeTrue();
        }