use of io.nem.symbol.sdk.api.MetadataRepository in project nem2-sdk-java by nemtech.
the class NamespaceMetadataServiceIntegrationTest method setAndUpdateNamespaceMetadata.
@ParameterizedTest
@EnumSource(RepositoryType.class)
void setAndUpdateNamespaceMetadata(RepositoryType type) {
// TODO try target != signer
Account signerAccount = config().getDefaultAccount();
Account targetAccount = config().getDefaultAccount();
String namespaceName = "namespace-id-metadata-service-integration-test-" + Double.valueOf(Math.floor(Math.random() * 10000)).intValue();
NamespaceId targetNamespaceId = super.createRootNamespace(type, signerAccount, namespaceName);
BigInteger key = BigInteger.valueOf(RandomUtils.generateRandomInt(100000));
String originalMessage = "The original message";
String newMessage = "The new Message";
RepositoryFactory repositoryFactory = getRepositoryFactory(type);
MetadataRepository metadataRepository = repositoryFactory.createMetadataRepository();
MetadataTransactionService service = new MetadataTransactionServiceImpl(repositoryFactory);
NamespaceMetadataTransaction originalTransaction = get(service.createNamespaceMetadataTransactionFactory(targetAccount.getAddress(), key, originalMessage, signerAccount.getAddress(), targetNamespaceId)).maxFee(maxFee).build();
announceAggregateAndValidate(type, originalTransaction, signerAccount);
assertMetadata(targetNamespaceId, key, originalMessage, metadataRepository, signerAccount);
NamespaceMetadataTransaction updateTransaction = get(service.createNamespaceMetadataTransactionFactory(targetAccount.getAddress(), key, newMessage, signerAccount.getAddress(), targetNamespaceId)).maxFee(maxFee).build();
announceAggregateAndValidate(type, updateTransaction, signerAccount);
assertMetadata(targetNamespaceId, key, newMessage, metadataRepository, signerAccount);
}
use of io.nem.symbol.sdk.api.MetadataRepository in project nem2-sdk-java by nemtech.
the class MerkleLoaderIntegrationTest method metadatas.
public List<Arguments> metadatas() {
RepositoryFactory repositoryFactory = getRepositoryFactory(DEFAULT_REPOSITORY_TYPE);
MetadataRepository repository = repositoryFactory.createMetadataRepository();
return getArguments(repository, new MetadataSearchCriteria().order(ORDER_BY));
}
use of io.nem.symbol.sdk.api.MetadataRepository in project nem2-sdk-java by nemtech.
the class AccountMetadataServiceIntegrationTest method setAndUpdateAccountMetadata.
@ParameterizedTest
@EnumSource(RepositoryType.class)
void setAndUpdateAccountMetadata(RepositoryType type) {
BigInteger key = BigInteger.valueOf(RandomUtils.generateRandomInt(100000));
String originalMessage = "The original message";
String newMessage = "The new Message";
RepositoryFactory repositoryFactory = getRepositoryFactory(type);
MetadataRepository metadataRepository = repositoryFactory.createMetadataRepository();
MetadataTransactionService service = new MetadataTransactionServiceImpl(repositoryFactory);
AccountMetadataTransaction originalTransaction = get(service.createAccountMetadataTransactionFactory(targetAccount.getAddress(), key, originalMessage, signerAccount.getAddress())).maxFee(maxFee).build();
announceAggregateAndValidate(type, originalTransaction, signerAccount);
sleep(1000);
assertMetadata(key, originalMessage, metadataRepository);
AccountMetadataTransaction updateTransaction = get(service.createAccountMetadataTransactionFactory(targetAccount.getAddress(), key, newMessage, signerAccount.getAddress())).maxFee(maxFee).build();
announceAggregateAndValidate(type, updateTransaction, signerAccount);
sleep(1000);
assertMetadata(key, newMessage, metadataRepository);
}
use of io.nem.symbol.sdk.api.MetadataRepository in project nem2-sdk-java by nemtech.
the class MosaicMetadataServiceIntegrationTest method setAndUpdateMosaicMetadata.
@ParameterizedTest
@EnumSource(RepositoryType.class)
void setAndUpdateMosaicMetadata(RepositoryType type) {
// TODO FIX THIS ONE when target != signerAccount
Account signerAccount = config().getDefaultAccount();
Account targetAccount = config().getDefaultAccount();
Assertions.assertFalse(helper().isMultisig(type, signerAccount));
Assertions.assertFalse(helper().isMultisig(type, targetAccount));
MosaicId targetMosaicId = super.createMosaic(signerAccount, type, BigInteger.ZERO, null);
BigInteger key = BigInteger.valueOf(RandomUtils.generateRandomInt(100000));
String originalMessage = "The original message";
String newMessage = "The new Message";
RepositoryFactory repositoryFactory = getRepositoryFactory(type);
MetadataRepository metadataRepository = repositoryFactory.createMetadataRepository();
MetadataTransactionService service = new MetadataTransactionServiceImpl(repositoryFactory);
MosaicMetadataTransaction originalTransaction = get(service.createMosaicMetadataTransactionFactory(targetAccount.getAddress(), key, originalMessage, signerAccount.getAddress(), targetMosaicId)).maxFee(maxFee).build();
Assertions.assertEquals(targetAccount.getAddress(), originalTransaction.getTargetAddress());
Assertions.assertEquals(targetMosaicId, originalTransaction.getTargetMosaicId());
Assertions.assertEquals(key, originalTransaction.getScopedMetadataKey());
Assertions.assertEquals(originalMessage, originalTransaction.getValue());
helper().announceAggregateAndValidate(type, originalTransaction, signerAccount);
assertMetadata(targetMosaicId, key, originalMessage, metadataRepository, signerAccount, targetAccount);
MosaicMetadataTransaction updateTransaction = get(service.createMosaicMetadataTransactionFactory(targetAccount.getAddress(), key, newMessage, signerAccount.getAddress(), targetMosaicId)).maxFee(maxFee).build();
Assertions.assertEquals(targetAccount.getAddress(), updateTransaction.getTargetAddress());
Assertions.assertEquals(targetMosaicId, updateTransaction.getTargetMosaicId());
Assertions.assertEquals(key, updateTransaction.getScopedMetadataKey());
Pair<String, Integer> xorAndDelta = ConvertUtils.xorValues(originalMessage, newMessage);
Assertions.assertEquals(xorAndDelta.getLeft(), updateTransaction.getValue());
Assertions.assertEquals(xorAndDelta.getRight(), updateTransaction.getValueSizeDelta());
helper().announceAggregateAndValidate(type, updateTransaction, signerAccount);
assertMetadata(targetMosaicId, key, newMessage, metadataRepository, signerAccount, targetAccount);
}
use of io.nem.symbol.sdk.api.MetadataRepository in project nem2-sdk-java by nemtech.
the class StateProofServiceTest method metadata.
@Test
void metadata() throws Exception {
MetadataRepository repository = mock(MetadataRepository.class);
when(factory.createMetadataRepository()).thenReturn(repository);
String id = "hash";
Metadata state = Mockito.mock(Metadata.class);
when(state.getCompositeHash()).thenReturn(id);
when(state.serialize()).thenReturn(ConvertUtils.fromHexToBytes(serialized));
when(repository.getMetadata(eq(id))).thenReturn(Observable.just(state));
when(repository.getMetadataMerkle(eq(id))).thenReturn(Observable.just(tree));
StateMerkleProof<Metadata> proof = service.metadata(id).toFuture().get();
Assertions.assertTrue(proof.isValid());
Assertions.assertEquals(state, proof.getState());
}
Aggregations