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(); }
public async Task Test_Validate_Before_Attach() { Block block = null; bool validateResult; validateResult = await _blockValidationProvider.ValidateBeforeAttachAsync(block); validateResult.ShouldBeFalse(); block = new Block(); validateResult = await _blockValidationProvider.ValidateBeforeAttachAsync(block); validateResult.ShouldBeFalse(); block.Header = new BlockHeader(); validateResult = await _blockValidationProvider.ValidateBeforeAttachAsync(block); validateResult.ShouldBeFalse(); block.Body = new BlockBody(); validateResult = await _blockValidationProvider.ValidateBeforeAttachAsync(block); validateResult.ShouldBeFalse(); block.Body.TransactionIds.Add(Hash.Empty); block.Header.ChainId = 1234; validateResult = await _blockValidationProvider.ValidateBeforeAttachAsync(block); validateResult.ShouldBeFalse(); block.Header.ChainId = 0; validateResult = await _blockValidationProvider.ValidateBeforeAttachAsync(block); validateResult.ShouldBeFalse(); block.Header.Height = AElfConstants.GenesisBlockHeight; validateResult = await _blockValidationProvider.ValidateBeforeAttachAsync(block); validateResult.ShouldBeFalse(); block.Header = _kernelTestHelper.GenerateBlock(9, HashHelper.ComputeFrom("PreviousBlockHash")).Header; block.Header.Signature = ByteString.CopyFrom(CryptoHelper.SignWithPrivateKey(_kernelTestHelper.KeyPair.PrivateKey, block.GetHash().ToByteArray())); validateResult = await _blockValidationProvider.ValidateBeforeAttachAsync(block); validateResult.ShouldBeFalse(); block.Header.MerkleTreeRootOfTransactions = block.Body.CalculateMerkleTreeRoot(); block.Header.Time = TimestampHelper.GetUtcNow() + TimestampHelper.DurationFromMinutes(30); validateResult = await _blockValidationProvider.ValidateBeforeAttachAsync(block); validateResult.ShouldBeFalse(); block.Header.Time = TimestampHelper.GetUtcNow(); validateResult = await _blockValidationProvider.ValidateBeforeAttachAsync(block); validateResult.ShouldBeTrue(); }