use of io.nem.symbol.sdk.model.account.Address in project nem2-sdk-java by nemtech.
the class ListenerVertxTest method subscribeToHash.
@ParameterizedTest
@ValueSource(strings = { "AGGREGATE_BONDED_REMOVED", "UNCONFIRMED_REMOVED" })
public void subscribeToHash(ListenerChannel channel) throws InterruptedException, ExecutionException, TimeoutException {
String channelName = channel.toString();
simulateWebSocketStartup();
Address address = Address.generateRandom(NETWORK_TYPE);
String hash = "someHash";
List<String> hashes = new ArrayList<>();
BiFunction<Address, String, Observable<String>> subscriber = channel == ListenerChannel.AGGREGATE_BONDED_REMOVED ? listener::aggregateBondedRemoved : listener::unconfirmedRemoved;
subscriber.apply(address, hash).forEach(hashes::add);
Map<String, Map<String, String>> message = new HashMap<>();
Map<String, String> meta = new HashMap<>();
meta.put("hash", hash);
message.put("meta", meta);
handle(message, channel.toString() + "/" + address.plain());
Assertions.assertEquals(1, hashes.size());
Assertions.assertEquals(hash, hashes.get(0));
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, channelName + "/" + address.plain())));
}
use of io.nem.symbol.sdk.model.account.Address in project nem2-sdk-java by nemtech.
the class ListenerVertxTest method subscribeValid.
@ParameterizedTest
@ValueSource(strings = { "CONFIRMED_ADDED", "AGGREGATE_BONDED_ADDED" })
public void subscribeValid(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<Transaction> transactions = new ArrayList<>();
List<Throwable> exceptions = new ArrayList<>();
BiFunction<UnresolvedAddress, String, Observable<? extends Transaction>> subscriber = channel == ListenerChannel.CONFIRMED_ADDED ? listener::confirmedOrError : listener::aggregateBondedAddedOrError;
TransactionMetaDTO meta = jsonHelper.convert(transactionInfo.getMeta(), TransactionMetaDTO.class);
subscriber.apply(address, meta.getHash()).doOnError(exceptions::add).forEach(transactions::add);
handle(transactionInfoDtoJsonObject, channelName + "/" + address.plain());
Assertions.assertEquals(1, transactions.size());
Assertions.assertEquals(0, exceptions.size());
Assertions.assertEquals(address, transactions.get(0).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 AccountRepositoryVertxImpl method getAccountsInfo.
@Override
public Observable<List<AccountInfo>> getAccountsInfo(List<Address> addresses) {
AccountIds accountIds = new AccountIds().addresses(addresses.stream().map(Address::plain).collect(Collectors.toList()));
Consumer<Handler<AsyncResult<List<AccountInfoDTO>>>> callback = handler -> getClient().getAccountsInfo(accountIds, handler);
return exceptionHandling(call(callback).flatMapIterable(item -> item).map(this::toAccountInfo).toList().toObservable());
}
use of io.nem.symbol.sdk.model.account.Address in project nem2-sdk-java by nemtech.
the class NamespaceRepositoryVertxImplTest method shouldGetLinkedMosaicId.
@Test
public void shouldGetLinkedMosaicId() throws Exception {
NamespaceId namespaceId = NamespaceId.createFromName("accountalias");
Address ownerAddress = Account.generateNewAccount(networkType).getAddress();
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.setRegistrationType(NamespaceRegistrationTypeEnum.NUMBER_0);
namespace.setOwnerAddress(ownerAddress.encoded());
AliasDTO alias = new AliasDTO();
alias.setType(AliasTypeEnum.NUMBER_1);
alias.setMosaicId("528280977531");
namespace.setAlias(alias);
dto.setNamespace(namespace);
mockRemoteCall(dto);
MosaicId linkedMosaicId = repository.getLinkedMosaicId(namespaceId).toFuture().get();
Assertions.assertNotNull(linkedMosaicId);
Assertions.assertEquals("0000528280977531", linkedMosaicId.getIdAsHex());
}
use of io.nem.symbol.sdk.model.account.Address in project nem2-sdk-java by nemtech.
the class NamespaceRepositoryVertxImplTest method search.
@Test
public void search() throws Exception {
Address address = Address.generateRandom(networkType);
Address ownerAccount = Account.generateNewAccount(NetworkType.MIJIN_TEST).getAddress();
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.setStartHeight(BigInteger.valueOf(4));
namespace.setEndHeight(BigInteger.valueOf(5));
namespace.setRegistrationType(NamespaceRegistrationTypeEnum.NUMBER_1);
namespace.setOwnerAddress(ownerAccount.encoded());
AliasDTO alias = new AliasDTO();
alias.setType(AliasTypeEnum.NUMBER_2);
alias.setAddress(address.encoded());
namespace.setAlias(alias);
dto.setNamespace(namespace);
mockRemoteCall(toPage(dto));
NamespaceInfo info = repository.search(new NamespaceSearchCriteria().ownerAddress(address)).toFuture().get().getData().get(0);
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());
}
Aggregations