public async Task Add_Block_Success() { var transactions = new List <Transaction>(); for (var i = 0; i < 3; i++) { var transaction = _kernelTestHelper.GenerateTransaction(); transactions.Add(transaction); } var block = _kernelTestHelper.GenerateBlock(0, Hash.Empty, transactions); var existBlock = await _fullBlockchainService.GetBlockByHashAsync(block.GetHash()); existBlock.ShouldBeNull(); await _fullBlockchainService.AddBlockAsync(block); await _fullBlockchainService.AddTransactionsAsync(transactions); existBlock = await _fullBlockchainService.GetBlockByHashAsync(block.GetHash()); existBlock.GetHash().ShouldBe(block.GetHash()); existBlock.Body.TransactionsCount.ShouldBe(3); foreach (var tx in transactions) { var existTransaction = await _transactionManager.GetTransactionAsync(tx.GetHash()); existTransaction.ShouldBe(tx); } }
public async Task Transaction_Test() { var transaction1 = _kernelTestHelper.GenerateTransaction(); var transaction2 = _kernelTestHelper.GenerateTransaction(); var hasTransaction = await _fullBlockchainService.HasTransactionAsync(transaction1.GetHash()); hasTransaction.ShouldBeFalse(); hasTransaction = await _fullBlockchainService.HasTransactionAsync(transaction2.GetHash()); hasTransaction.ShouldBeFalse(); await _fullBlockchainService.AddTransactionsAsync(new List <Transaction> { transaction1, transaction2 }); var transactions = await _fullBlockchainService.GetTransactionsAsync(new List <Hash> { transaction1.GetHash(), transaction2.GetHash() }); transactions[0].ShouldBe(transaction1); transactions[1].ShouldBe(transaction2); hasTransaction = await _fullBlockchainService.HasTransactionAsync(transaction1.GetHash()); hasTransaction.ShouldBeTrue(); hasTransaction = await _fullBlockchainService.HasTransactionAsync(transaction2.GetHash()); hasTransaction.ShouldBeTrue(); }