use of io.nem.symbol.sdk.model.transaction.Deadline in project nem2-sdk-java by nemtech.
the class TransactionServiceTest method aggregateTransferTransactionResolveAlias.
@Test
void aggregateTransferTransactionResolveAlias() throws ExecutionException, InterruptedException {
ArrayList<Mosaic> mosaics = new ArrayList<>();
mosaics.add(new Mosaic(mosaicId1, BigInteger.valueOf(1)));
mosaics.add(new Mosaic(mosaicNamespace2, BigInteger.valueOf(2)));
mosaics.add(new Mosaic(mosaicId3, BigInteger.valueOf(3)));
UnresolvedAddress recipient = addressNamespace1;
String transactionHash = "aaaa";
TransactionFactory<TransferTransaction> factory = TransferTransactionFactory.create(NetworkType.MIJIN_TEST, new Deadline(BigInteger.ONE), recipient, mosaics).message(new PlainMessage("")).transactionInfo(TransactionInfo.create(height, 0, "ABC", "BBBB", ""));
// Extra transfer not aliases
TransactionFactory<TransferTransaction> extraTransaction = TransferTransactionFactory.create(NetworkType.MIJIN_TEST, new Deadline(BigInteger.ONE), address2, Collections.singletonList(new Mosaic(mosaicId1, BigInteger.valueOf(1)))).transactionInfo(TransactionInfo.create(height, 1, "ABC", "CCCC", ""));
TransferTransaction transferTransaction = factory.build();
transferTransaction.toAggregate(Account.generateNewAccount(networkType).getPublicAccount());
TransactionFactory<AggregateTransaction> aggregateTransactionFactory = AggregateTransactionFactory.createComplete(NetworkType.MIJIN_TEST, new Deadline(BigInteger.ONE), Arrays.asList(transferTransaction, extraTransaction.build().toAggregate(Account.generateNewAccount(networkType).getPublicAccount()))).transactionInfo(TransactionInfo.create(height, 0, "ABC", transactionHash, ""));
AggregateTransaction aggregateTransaction = aggregateTransactionFactory.build();
simulateStatement(height, 1, 1);
List<String> hashes = Collections.singletonList(transactionHash);
Mockito.when(transactionRepositoryMock.getTransactions(Mockito.eq(TransactionGroup.CONFIRMED), Mockito.eq(hashes))).thenReturn(Observable.just(Collections.singletonList(aggregateTransaction)));
AggregateTransaction aggregateResolvedTransaction = (AggregateTransaction) service.resolveAliases(hashes).toFuture().get().get(0);
TransferTransaction resolvedTransaction = (TransferTransaction) aggregateResolvedTransaction.getInnerTransactions().get(0);
Assertions.assertEquals(transferTransaction.getMosaics().size(), resolvedTransaction.getMosaics().size());
Assertions.assertEquals(transferTransaction.getMosaics().get(0).getId(), resolvedTransaction.getMosaics().get(0).getId());
Assertions.assertEquals(BigInteger.valueOf(1), resolvedTransaction.getMosaics().get(0).getAmount());
Assertions.assertEquals(mosaicId2, resolvedTransaction.getMosaics().get(1).getId());
Assertions.assertEquals(BigInteger.valueOf(2), resolvedTransaction.getMosaics().get(1).getAmount());
Assertions.assertEquals(transferTransaction.getMosaics().get(2).getId(), resolvedTransaction.getMosaics().get(2).getId());
Assertions.assertEquals(BigInteger.valueOf(3), resolvedTransaction.getMosaics().get(2).getAmount());
Assertions.assertEquals(address1, resolvedTransaction.getRecipient());
}
use of io.nem.symbol.sdk.model.transaction.Deadline in project nem2-sdk-java by nemtech.
the class TransactionServiceTest method transferTransactionResolveAlias.
@Test
void transferTransactionResolveAlias() throws ExecutionException, InterruptedException {
ArrayList<Mosaic> mosaics = new ArrayList<>();
mosaics.add(new Mosaic(mosaicId1, BigInteger.valueOf(1)));
mosaics.add(new Mosaic(mosaicNamespace2, BigInteger.valueOf(2)));
mosaics.add(new Mosaic(mosaicId3, BigInteger.valueOf(3)));
UnresolvedAddress recipient = addressNamespace1;
String transactionHash = "aaaa";
TransactionFactory<TransferTransaction> factory = TransferTransactionFactory.create(NetworkType.MIJIN_TEST, new Deadline(BigInteger.ONE), recipient, mosaics).transactionInfo(TransactionInfo.create(height, 0, "ABC", transactionHash, ""));
simulateStatement(height, 1, 0);
TransferTransaction transaction = factory.build();
List<String> hashes = Collections.singletonList(transactionHash);
Mockito.when(transactionRepositoryMock.getTransactions(Mockito.eq(TransactionGroup.CONFIRMED), Mockito.eq(hashes))).thenReturn(Observable.just(Collections.singletonList(transaction)));
TransferTransaction resolvedTransaction = (TransferTransaction) service.resolveAliases(hashes).toFuture().get().get(0);
Assertions.assertEquals(transaction.getMosaics().size(), resolvedTransaction.getMosaics().size());
Assertions.assertEquals(transaction.getMosaics().get(0).getId(), resolvedTransaction.getMosaics().get(0).getId());
Assertions.assertEquals(BigInteger.valueOf(1), resolvedTransaction.getMosaics().get(0).getAmount());
Assertions.assertEquals(mosaicId2, resolvedTransaction.getMosaics().get(1).getId());
Assertions.assertEquals(BigInteger.valueOf(2), resolvedTransaction.getMosaics().get(1).getAmount());
Assertions.assertEquals(transaction.getMosaics().get(2).getId(), resolvedTransaction.getMosaics().get(2).getId());
Assertions.assertEquals(BigInteger.valueOf(3), resolvedTransaction.getMosaics().get(2).getAmount());
Assertions.assertEquals(address1, resolvedTransaction.getRecipient());
}
use of io.nem.symbol.sdk.model.transaction.Deadline in project nem2-sdk-java by nemtech.
the class TransactionServiceTest method mosaicDefinitionTransactionResolveAlias.
@Test
void mosaicDefinitionTransactionResolveAlias() throws ExecutionException, InterruptedException {
String transactionHash = "aaaa";
TransactionFactory<MosaicDefinitionTransaction> factory = MosaicDefinitionTransactionFactory.create(NetworkType.MIJIN_TEST, new Deadline(BigInteger.ONE), MosaicNonce.createFromBigInteger(new BigInteger("0")), mosaicId2, MosaicFlags.create(true, true, true), 4, new BlockDuration(10000)).transactionInfo(TransactionInfo.create(height, 4, "ABC", transactionHash, ""));
MosaicDefinitionTransaction transaction = factory.build();
simulateStatement(height, 5, 0);
List<String> hashes = Collections.singletonList(transactionHash);
Mockito.when(transactionRepositoryMock.getTransactions(Mockito.eq(TransactionGroup.CONFIRMED), Mockito.eq(hashes))).thenReturn(Observable.just(Collections.singletonList(transaction)));
MosaicDefinitionTransaction resolvedTransaction = (MosaicDefinitionTransaction) service.resolveAliases(hashes).toFuture().get().get(0);
Assertions.assertEquals(mosaicId2, resolvedTransaction.getMosaicId());
}
use of io.nem.symbol.sdk.model.transaction.Deadline in project nem2-sdk-java by nemtech.
the class TransactionServiceTest method mosaicMetadataTransactionResolveAlias.
@Test
void mosaicMetadataTransactionResolveAlias() throws ExecutionException, InterruptedException {
String transactionHash = "aaaa";
TransactionFactory<MosaicMetadataTransaction> factory = MosaicMetadataTransactionFactory.create(NetworkType.MIJIN_TEST, new Deadline(BigInteger.ONE), Account.generateNewAccount(networkType).getAddress(), mosaicNamespace2, BigInteger.TEN, StringEncoder.getBytes("Value")).transactionInfo(TransactionInfo.create(height, 4, "ABC", transactionHash, ""));
MosaicMetadataTransaction transaction = factory.build();
simulateStatement(height, 5, 0);
List<String> hashes = Collections.singletonList(transactionHash);
Mockito.when(transactionRepositoryMock.getTransactions(Mockito.eq(TransactionGroup.CONFIRMED), Mockito.eq(hashes))).thenReturn(Observable.just(Collections.singletonList(transaction)));
MosaicMetadataTransaction resolvedTransaction = (MosaicMetadataTransaction) service.resolveAliases(hashes).toFuture().get().get(0);
Assertions.assertEquals(mosaicId2, resolvedTransaction.getTargetMosaicId());
}
use of io.nem.symbol.sdk.model.transaction.Deadline in project nem2-sdk-java by nemtech.
the class TransactionServiceTest method aggregateTransferTransactionResolveAliasFailWhenNoTransactionInfoInner.
@Test
void aggregateTransferTransactionResolveAliasFailWhenNoTransactionInfoInner() {
ArrayList<Mosaic> mosaics = new ArrayList<>();
mosaics.add(new Mosaic(mosaicId1, BigInteger.valueOf(1)));
mosaics.add(new Mosaic(mosaicNamespace2, BigInteger.valueOf(2)));
mosaics.add(new Mosaic(mosaicId3, BigInteger.valueOf(3)));
UnresolvedAddress recipient = addressNamespace1;
String transactionHash = "aaaa";
TransactionFactory<TransferTransaction> factory = TransferTransactionFactory.create(NetworkType.MIJIN_TEST, new Deadline(BigInteger.ONE), recipient, mosaics).message(new PlainMessage("")).transactionInfo(TransactionInfo.create(height, 0, "ABC", "BBBB", ""));
// Extra transfer not aliases
TransactionFactory<TransferTransaction> extraTransaction = TransferTransactionFactory.create(NetworkType.MIJIN_TEST, new Deadline(BigInteger.ONE), address2, Collections.singletonList(new Mosaic(mosaicId1, BigInteger.valueOf(1)))).message(new PlainMessage(""));
TransferTransaction transferTransaction = factory.build();
transferTransaction.toAggregate(Account.generateNewAccount(networkType).getPublicAccount());
TransactionFactory<AggregateTransaction> aggregateTransactionFactory = AggregateTransactionFactory.createComplete(NetworkType.MIJIN_TEST, new Deadline(BigInteger.ONE), Arrays.asList(transferTransaction, extraTransaction.build().toAggregate(Account.generateNewAccount(networkType).getPublicAccount()))).transactionInfo(TransactionInfo.create(height, 0, "ABC", transactionHash, ""));
AggregateTransaction aggregateTransaction = aggregateTransactionFactory.build();
simulateStatement(height, 1, 1);
List<String> hashes = Collections.singletonList(transactionHash);
Mockito.when(transactionRepositoryMock.getTransactions(Mockito.eq(TransactionGroup.CONFIRMED), Mockito.eq(hashes))).thenReturn(Observable.just(Collections.singletonList(aggregateTransaction)));
IllegalArgumentException exception = Assertions.assertThrows(IllegalArgumentException.class, () -> {
ExceptionUtils.propagate(service.resolveAliases(hashes).toFuture()::get);
});
Assertions.assertEquals("TransactionIndex cannot be loaded from Transaction TRANSFER", exception.getMessage());
}
Aggregations