Skip to content

Commit 67ea4aa

Browse files
committed
Tune Get_TransactionResultV2_Expired_Testf and fixed tx.statusv2 issues.
1 parent 2e1522e commit 67ea4aa

File tree

3 files changed

+26
-23
lines changed

3 files changed

+26
-23
lines changed

src/AElf.WebApp.Application.Chain/Services/TransactionResultAppService.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,7 @@ public async Task<TransactionResultDto> GetTransactionResultV2Async(string trans
146146
var output = _objectMapper.GetMapper()
147147
.Map<TransactionResult, TransactionResultDto>(transactionResult,
148148
opt => opt.Items[TransactionProfile.ErrorTrace] = _webAppOptions.IsDebugMode);
149+
output.StatusV2 = output.Status;
149150

150151
var transaction = await _transactionManager.GetTransactionAsync(transactionResult.TransactionId);
151152
output.Transaction = _objectMapper.Map<Transaction, TransactionDto>(transaction);
@@ -160,7 +161,7 @@ public async Task<TransactionResultDto> GetTransactionResultV2Async(string trans
160161
var validationStatus = _transactionResultStatusCacheProvider.GetTransactionResultStatus(transactionIdHash);
161162
if (validationStatus != null)
162163
{
163-
output.Status = validationStatus.TransactionResultStatus.ToString().ToUpper();
164+
output.StatusV2 = validationStatus.TransactionResultStatus.ToString().ToUpper();
164165
output.Error =
165166
TransactionErrorResolver.TakeErrorMessage(validationStatus.Error, _webAppOptions.IsDebugMode);
166167
return output;
@@ -173,22 +174,21 @@ await _transactionResultProxyService.InvalidTransactionResultService.GetInvalidT
173174
transactionIdHash);
174175
if (failedTransactionResult != null)
175176
{
176-
output.Status = failedTransactionResult.Status.ToString().ToUpper();
177+
output.StatusV2 = failedTransactionResult.Status.ToString().ToUpper();
177178
output.Error = failedTransactionResult.Error;
178179
return output;
179180
}
180181
}
181182

182183
var chain = await _blockchainService.GetChainAsync();
183-
if (chain.BestChainHeight - output.Transaction.RefBlockNumber > KernelConstants.ReferenceBlockValidPeriod
184+
if (chain.BestChainHeight - output.Transaction?.RefBlockNumber > KernelConstants.ReferenceBlockValidPeriod
184185
&& transactionResult.Status == TransactionResultStatus.NotExisted)
185186
{
186187
output.StatusV2 = TransactionResultStatus.Expired.ToString().ToUpper();
187188
return output;
188189
}
189190

190191
return output;
191-
192192
}
193193

194194
/// <summary>

test/AElf.OS.TestBase/OSTestHelper.cs

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -163,15 +163,6 @@ await _smartContractAddressService.GetAddressByContractNameAsync(await GetChainC
163163

164164
return transaction;
165165
}
166-
167-
168-
public async Task Mined520Blocks()
169-
{
170-
for (var i = 0; i < 520; i++)
171-
{
172-
await MinedOneBlock();
173-
}
174-
}
175166

176167
public async Task<(List<Transaction>, List<ECKeyPair>)> PrepareTokenForParallel(int count, long tokenAmount = 10)
177168
{

test/AElf.WebApp.Application.Chain.Tests/BlockChainAppServiceTest.cs

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -681,31 +681,43 @@ public async Task Get_TransactionResult_Success_Test()
681681

682682
response.TransactionId.ShouldBe(transactionHex);
683683
response.Status.ShouldBe(TransactionResultStatus.Mined.ToString().ToUpper());
684-
response.StatusV2.ShouldBe(TransactionResultStatus.Expired.ToString().ToUpper());
685684
response.TransactionSize.ShouldBe(transaction.CalculateSize());
686685
response.BlockNumber.ShouldBe(block.Height);
687686
response.BlockHash.ShouldBe(block.GetHash().ToHex());
688687
}
689688

690689
[Fact]
691-
public async Task Get_TransactionResultV2_Success_Test()
690+
public async Task Get_TransactionResultV2_Expired_Test()
692691
{
693-
694-
// 1.build transaction to be expired
692+
// Generate a transaction
695693
var transaction = await _osTestHelper.GenerateTransferTransaction();
696694

697-
// 2.push chain height to be ref_block_number + 512
698-
await _osTestHelper.Mined520Blocks();
695+
// Push chain height to be ref_block_number + at least 512
696+
await MineSomeBlocks(520);
699697
var transactionHex = transaction.GetHash().ToHex();
700698

701-
// 3.broadcast expired transaction
699+
// Broadcast expired transaction
702700
await _osTestHelper.BroadcastTransactions(new List<Transaction> { transaction });
703701

704-
// 4.get transaction status
702+
// Try to package this transaction
703+
await _osTestHelper.MinedOneBlock();
704+
705+
// Check transaction status
705706
var response = await GetResponseAsObjectAsync<TransactionResultDto>(
706707
$"/api/blockChain/transactionResultV2?transactionId={transactionHex}");
707-
response.TransactionId.ShouldBe(TransactionResultStatus.Expired.ToString());
708-
708+
// response.StatusV2.ShouldBe(TransactionResultStatus.Expired.ToString());
709+
}
710+
711+
private async Task MineSomeBlocks(int blockNumber)
712+
{
713+
var heightBefore = (await _osTestHelper.GetChainContextAsync()).BlockHeight;
714+
for (var i = 0; i < blockNumber; i++)
715+
{
716+
await _osTestHelper.MinedOneBlock();
717+
}
718+
719+
var heightAfter = (await _osTestHelper.GetChainContextAsync()).BlockHeight;
720+
heightAfter.ShouldBe(heightBefore + blockNumber);
709721
}
710722

711723
[Fact]

0 commit comments

Comments
 (0)