use of io.nem.symbol.sdk.model.account.Address in project nem2-sdk-java by nemtech.
the class NamespaceRepositoryVertxImplTest method shouldGetLinkedAddress.
@Test
public void shouldGetLinkedAddress() throws Exception {
Address address = Address.generateRandom(this.networkType);
Address ownerAddress = Account.generateNewAccount(networkType).getAddress();
NamespaceId namespaceId = NamespaceId.createFromName("accountalias");
NamespaceInfoDTO dto = new NamespaceInfoDTO();
NamespaceMetaDTO meta = new NamespaceMetaDTO();
meta.setActive(true);
dto.setId("SomeId");
meta.setIndex(123);
dto.setMeta(meta);
NamespaceDTO namespace = new NamespaceDTO();
namespace.setDepth(111);
namespace.setVersion(1);
namespace.setRegistrationType(NamespaceRegistrationTypeEnum.NUMBER_0);
namespace.setOwnerAddress(ownerAddress.encoded());
AliasDTO alias = new AliasDTO();
alias.setType(AliasTypeEnum.NUMBER_2);
alias.setAddress(address.encoded());
namespace.setAlias(alias);
dto.setNamespace(namespace);
mockRemoteCall(dto);
Address linkedAddress = repository.getLinkedAddress(namespaceId).toFuture().get();
Assertions.assertNotNull(linkedAddress);
Assertions.assertEquals(address, linkedAddress);
}
use of io.nem.symbol.sdk.model.account.Address in project nem2-sdk-java by nemtech.
the class NamespaceRepositoryVertxImplTest method shouldGetNamespace.
@Test
public void shouldGetNamespace() throws Exception {
Address ownerAddress = Account.generateNewAccount(networkType).getAddress();
NamespaceId namespaceId = NamespaceId.createFromName("accountalias");
NamespaceInfoDTO dto = new NamespaceInfoDTO();
dto.setId("SomeId");
NamespaceMetaDTO meta = new NamespaceMetaDTO();
meta.setActive(true);
meta.setIndex(123);
dto.setMeta(meta);
NamespaceDTO namespace = new NamespaceDTO();
namespace.setDepth(111);
namespace.setVersion(1);
namespace.setStartHeight(BigInteger.valueOf(4));
namespace.setEndHeight(BigInteger.valueOf(5));
namespace.setRegistrationType(NamespaceRegistrationTypeEnum.NUMBER_1);
namespace.setOwnerAddress(ownerAddress.encoded());
AliasDTO alias = new AliasDTO();
alias.setType(AliasTypeEnum.NUMBER_1);
alias.setMosaicId("123");
namespace.setAlias(alias);
dto.setNamespace(namespace);
mockRemoteCall(dto);
NamespaceInfo info = repository.getNamespace(namespaceId).toFuture().get();
Assertions.assertNotNull(info);
Assertions.assertEquals(NamespaceRegistrationType.SUB_NAMESPACE, info.getRegistrationType());
Assertions.assertEquals(dto.getId(), info.getRecordId().get());
Assertions.assertEquals(meta.getIndex(), info.getIndex());
Assertions.assertEquals(meta.getActive(), info.isActive());
Assertions.assertEquals(BigInteger.valueOf(4), info.getStartHeight());
Assertions.assertEquals(BigInteger.valueOf(5), info.getEndHeight());
}
use of io.nem.symbol.sdk.model.account.Address in project nem2-sdk-java by nemtech.
the class ListenerVertxTest method subscribeValidUsingBase.
@ParameterizedTest
@ValueSource(strings = { "CONFIRMED_ADDED", "AGGREGATE_BONDED_ADDED" })
public void subscribeValidUsingBase(ListenerChannel channel) throws InterruptedException, ExecutionException, TimeoutException {
simulateWebSocketStartup();
TransactionInfoDTO transactionInfo = TestHelperVertx.loadTransactionInfoDTO("aggregateMosaicCreationTransaction.json");
ObjectNode transactionInfoDtoJsonObject = jsonHelper.convert(transactionInfo, ObjectNode.class);
Address address = Address.createFromPublicKey(jsonHelper.getString(transactionInfoDtoJsonObject, "transaction", "signerPublicKey"), NETWORK_TYPE);
String channelName = channel.toString();
List<ListenerMessage<Transaction>> messages = new ArrayList<>();
List<Throwable> exceptions = new ArrayList<>();
TransactionMetaDTO meta = jsonHelper.convert(transactionInfo.getMeta(), TransactionMetaDTO.class);
listener.subscribe(new ListenerRequest<Transaction>(channel, address).transactionHashOrError(meta.getHash())).doOnError(exceptions::add).forEach(messages::add);
handle(transactionInfoDtoJsonObject, channelName + "/" + address.plain());
Assertions.assertEquals(1, messages.size());
Assertions.assertEquals(0, exceptions.size());
Assertions.assertEquals(meta.getHash(), messages.get(0).getTransactionHash());
Assertions.assertEquals(channel, messages.get(0).getChannel());
Assertions.assertEquals(address.plain(), messages.get(0).getChannelParams());
Assertions.assertEquals(channelName + "/" + address.plain(), messages.get(0).getTopic());
Assertions.assertEquals(address, messages.get(0).getMessage().getSigner().get().getAddress());
Mockito.verify(webSocketMock).handler(Mockito.any());
Mockito.verify(webSocketMock).writeTextMessage(jsonHelper.print(new ListenerSubscribeMessage(this.wsId, channelName + "/" + address.plain())));
Mockito.verify(webSocketMock).writeTextMessage(jsonHelper.print(new ListenerSubscribeMessage(this.wsId, "status" + "/" + address.plain())));
}
use of io.nem.symbol.sdk.model.account.Address in project nem2-sdk-java by nemtech.
the class ListenerVertxTest method subscribeOnError.
@ParameterizedTest
@ValueSource(strings = { "CONFIRMED_ADDED", "AGGREGATE_BONDED_ADDED" })
public void subscribeOnError(ListenerChannel channel) throws InterruptedException, ExecutionException, TimeoutException {
simulateWebSocketStartup();
TransactionInfoDTO transactionInfo = TestHelperVertx.loadTransactionInfoDTO("aggregateMosaicCreationTransaction.json");
ObjectNode transactionInfoDtoJsonObject = jsonHelper.convert(transactionInfo, ObjectNode.class);
Address address = Address.createFromPublicKey(jsonHelper.getString(transactionInfoDtoJsonObject, "transaction", "signerPublicKey"), NETWORK_TYPE);
String channelName = channel.toString();
Map<String, Object> transactionStatusError = new HashMap<>();
transactionStatusError.put("address", address.encoded());
transactionStatusError.put("code", "Fail 666");
TransactionMetaDTO meta = jsonHelper.convert(transactionInfo.getMeta(), TransactionMetaDTO.class);
transactionStatusError.put("hash", meta.getHash());
transactionStatusError.put("deadline", 123);
List<Transaction> transactions = new ArrayList<>();
List<Throwable> exceptions = new ArrayList<>();
BiFunction<Address, String, Observable<? extends Transaction>> subscriber = channel == ListenerChannel.CONFIRMED_ADDED ? listener::confirmedOrError : listener::aggregateBondedAddedOrError;
subscriber.apply(address, meta.getHash()).doOnError(exceptions::add).forEach(transactions::add);
handle(transactionStatusError, "status/" + address.plain());
Assertions.assertEquals(0, transactions.size());
Assertions.assertEquals(1, exceptions.size());
Assertions.assertEquals(TransactionStatusException.class, exceptions.get(0).getClass());
Assertions.assertEquals("Fail 666 processing transaction " + meta.getHash(), exceptions.get(0).getMessage());
Mockito.verify(webSocketMock).handler(Mockito.any());
Mockito.verify(webSocketMock).writeTextMessage(jsonHelper.print(new ListenerSubscribeMessage(this.wsId, channelName + "/" + address.plain())));
Mockito.verify(webSocketMock).writeTextMessage(jsonHelper.print(new ListenerSubscribeMessage(this.wsId, "status" + "/" + address.plain())));
}
use of io.nem.symbol.sdk.model.account.Address in project nem2-sdk-java by nemtech.
the class MetadataRepositoryVertxImplTest method createMetadataDto.
private MetadataInfoDTO createMetadataDto(String name, MetadataTypeEnum type, String targetId) {
MetadataInfoDTO dto = new MetadataInfoDTO();
dto.setId(name);
Address sourceAddress = Account.generateNewAccount(networkType).getAddress();
Address targetAddress = Account.generateNewAccount(networkType).getAddress();
MetadataEntryDTO metadataEntry = new MetadataEntryDTO();
metadataEntry.setVersion(1);
metadataEntry.setCompositeHash("ompositeHash " + name);
metadataEntry.setMetadataType(type);
metadataEntry.setScopedMetadataKey("10");
metadataEntry.sourceAddress(sourceAddress.encoded());
metadataEntry.setTargetId(targetId);
metadataEntry.setTargetAddress(targetAddress.encoded());
metadataEntry.setValue(ConvertUtils.fromStringToHex(name + " message"));
dto.setMetadataEntry(metadataEntry);
return dto;
}
Aggregations