public async Task ValidateBlockBeforeAttach_InvalidTransaction_ReturnFalse() { var chain = await _blockchainService.GetChainAsync(); var transaction = await _osTestHelper.GenerateTransferTransaction(); transaction.Signature = ByteString.Empty; var block = _osTestHelper.GenerateBlockWithTransactions(chain.BestChainHash, chain.BestChainHeight, new [] { transaction }); var result = await _blockSyncValidationService.ValidateBlockBeforeAttachAsync(block); result.ShouldBeFalse(); }
public async Task TransactionBroadcastStream_UnknownPeer_Test() { var metadata = new Metadata { { GrpcConstants.PubkeyMetadataKey, "UnknownPeerPubkey" } }; var transaction = await _osTestHelper.GenerateTransferTransaction(); var requestStream = new TestAsyncStreamReader <Transaction>(new List <Transaction> { transaction }); await _serverService.TransactionBroadcastStream(requestStream, BuildServerCallContext(metadata)) .ShouldThrowAsync <RpcException>(); }
public async Task SentTransaction_Token_Check_Test() { //user without token - NotExisted { var keyPair = CryptoHelper.GenerateKeyPair(); var tokenAddress = GetTokenContractAddress(); //approve transaction var transaction = await GenerateTransaction(keyPair, tokenAddress, "Approve", new ApproveInput { Amount = 100, Spender = Address.FromPublicKey(CryptoHelper.GenerateKeyPair().PublicKey), Symbol = "Check user without token whether can sent transaction" }); var transactionId = await SendTransactionAsync(transaction); var transactionResult = await QueryTransactionResultAsync(transactionId); Enum.TryParse <TransactionResultStatus>(transactionResult.Status, true, out var status); status.ShouldBe(TransactionResultStatus.NotExisted); } //bp user with token - Mined { var transaction = await _osTestHelper.GenerateTransferTransaction(); var transactionId = await SendTransactionAsync(transaction); var transactionResult = await QueryTransactionResultAsync(transactionId); Enum.TryParse <TransactionResultStatus>(transactionResult.Status, true, out var status); status.ShouldBe(TransactionResultStatus.Mined); } }
public void Setup(BenchmarkContext context) { _osTestHelper = GetRequiredService <OSTestHelper>(); _counter = context.GetCounter("TestCounter"); AsyncHelper.RunSync(async() => { _transaction = await _osTestHelper.GenerateTransferTransaction(); }); }
public async Task SentTransaction_Token_Check_Test() { //user without token - NotExisted { var keyPair = CryptoHelper.GenerateKeyPair(); var tokenAddress = await _smartContractAddressService.GetAddressByContractNameAsync(await _osTestHelper.GetChainContextAsync(), TokenSmartContractAddressNameProvider.StringName); //approve transaction var transaction = await GenerateTransaction(keyPair, tokenAddress, "Approve", new ApproveInput { Amount = 100, Spender = Address.FromPublicKey(CryptoHelper.GenerateKeyPair().PublicKey), // TODO: valid symbol needed for a test case not related to token symbol Symbol = "Check user without token whether can sent transaction" }); var transactionId = await SendTransactionAsync(transaction); var transactionResult = await QueryTransactionResultAsync(transactionId); Enum.TryParse <TransactionResultStatus>(transactionResult.Status, true, out var status); status.ShouldBe(TransactionResultStatus.Failed); } //bp user with token - Mined { var transaction = await _osTestHelper.GenerateTransferTransaction(); var transactionId = await SendTransactionAsync(transaction); var transactionResult = await QueryTransactionResultAsync(transactionId); Enum.TryParse <TransactionResultStatus>(transactionResult.Status, true, out var status); status.ShouldBe(TransactionResultStatus.Mined); } }
public async Task SentTransaction_Token_Check_Test() { //user without token - NotExisted { var keyPair = CryptoHelper.GenerateKeyPair(); var tokenAddress = GetTokenContractAddress(); //approve transaction var transaction = await GenerateTransaction(keyPair, tokenAddress, "Approve", new ApproveInput { Amount = 100, Spender = Address.FromPublicKey(CryptoHelper.GenerateKeyPair().PublicKey), // TODO: valid symbol needed for a test case not related to token symbol Symbol = "Check user without token whether can sent transaction" }); var transactionId = await SendTransactionAsync(transaction); var transactionResult = await QueryTransactionResultAsync(transactionId); Enum.TryParse <TransactionResultStatus>(transactionResult.Status, true, out var status); status.ShouldBe(TransactionResultStatus.Failed); // transactionResult.Error.ShouldBe(ExecutionStatus.ExecutionStoppedByPrePlugin.ToString()); } //bp user with token - Mined { var transaction = await _osTestHelper.GenerateTransferTransaction(); var transactionId = await SendTransactionAsync(transaction); var transactionResult = await QueryTransactionResultAsync(transactionId); Enum.TryParse <TransactionResultStatus>(transactionResult.Status, true, out var status); status.ShouldBe(TransactionResultStatus.Mined); } }
public async Task GlobalSetup() { _osTestHelper = GetRequiredService <OSTestHelper>(); _transaction = await _osTestHelper.GenerateTransferTransaction(); }
public async Task GetBlockHeightTest() { // Get current height var response = await GetResponseAsStringAsync("/api/blockChain/blockHeight"); var currentHeight = long.Parse(response); var chain = await _blockchainService.GetChainAsync(); currentHeight.ShouldBe(chain.BestChainHeight); // Mined one block var transaction = await _osTestHelper.GenerateTransferTransaction(); await _osTestHelper.BroadcastTransactions(new List <Transaction> { transaction }); await _osTestHelper.MinedOneBlock(); // Get latest height response = await GetResponseAsStringAsync("/api/blockChain/blockHeight"); var height = long.Parse(response); height.ShouldBe(currentHeight + 1); }
public async Task Get_BlockHeight_Success() { // Get current height var response = await JsonCallAsJObject("/chain", "GetBlockHeight"); var currentHeight = (int)response["result"]; // Mined one block var chain = await _blockchainService.GetChainAsync(); var transaction = await _osTestHelper.GenerateTransferTransaction(); await _osTestHelper.BroadcastTransactions(new List <Transaction> { transaction }); await _osTestHelper.MinedOneBlock(); // Get latest height response = await JsonCallAsJObject("/chain", "GetBlockHeight"); var height = (int)response["result"]; height.ShouldBe(currentHeight + 1); }