Example #1
0
        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();
        }