use of io.nem.symbol.sdk.model.blockchain.BlockInfo in project nem2-sdk-java by nemtech.
the class BlockServiceTest method isValidStatementInBlockMultipleNotEquals.
@Test
void isValidStatementInBlockMultipleNotEquals() throws ExecutionException, InterruptedException {
BigInteger height = BigInteger.ONE;
String leaf = "1234";
String root = "00000";
BlockInfo blockInfo = Mockito.mock(BlockInfo.class);
Mockito.when(blockInfo.getBlockTransactionsHash()).thenReturn(root);
Mockito.when(blockRepositoryMock.getBlockByHeight(height)).thenReturn(Observable.just(blockInfo));
List<MerklePathItem> merklePath = new ArrayList<>();
merklePath.add(new MerklePathItem(Position.LEFT, "11"));
merklePath.add(new MerklePathItem(Position.RIGHT, "22"));
merklePath.add(new MerklePathItem(Position.LEFT, "33"));
merklePath.add(new MerklePathItem(Position.RIGHT, "44"));
MerkleProofInfo merkleProofInfo = new MerkleProofInfo(merklePath);
Mockito.when(blockRepositoryMock.getMerkleReceipts(height, leaf)).thenReturn(Observable.just(merkleProofInfo));
Assertions.assertFalse(service.isValidStatementInBlock(height, leaf).toFuture().get());
}
use of io.nem.symbol.sdk.model.blockchain.BlockInfo in project nem2-sdk-java by nemtech.
the class BlockServiceTest method isValidStatementInBlockOnError.
@Test
void isValidStatementInBlockOnError() throws ExecutionException, InterruptedException {
BigInteger height = BigInteger.ONE;
String hash = "1234";
String root = "d7de53a6ec87b3cb8e0fb4d6d9aa40b96a17a54b7206702229a6517e91d88dcb";
BlockInfo blockInfo = Mockito.mock(BlockInfo.class);
Mockito.when(blockInfo.getBlockReceiptsHash()).thenReturn(root);
Mockito.when(blockRepositoryMock.getBlockByHeight(height)).thenReturn(Observable.just(blockInfo));
Mockito.when(blockRepositoryMock.getMerkleReceipts(height, hash)).thenReturn(Observable.error(new RuntimeException("Some Error When getMerkleReceipts")));
Assertions.assertFalse(service.isValidStatementInBlock(height, hash).toFuture().get());
}
use of io.nem.symbol.sdk.model.blockchain.BlockInfo in project nem2-sdk-java by nemtech.
the class BlockRepositoryOkHttpImplTest method shouldGetBlocksByHeightWithLimit.
@Test
public void shouldGetBlocksByHeightWithLimit() throws Exception {
Address address = Address.generateRandom(networkType);
BlockInfoDTO dto = new BlockInfoDTO();
BlockMetaDTO metaDTO = new BlockMetaDTO();
metaDTO.setHash("someHash");
metaDTO.setTransactionsCount(10);
metaDTO.setGenerationHash("generationHash");
metaDTO.setStatementsCount(20);
metaDTO.setStateHashSubCacheMerkleRoots(Arrays.asList("string1", "string2"));
metaDTO.setTotalFee(BigInteger.valueOf(8));
dto.setMeta(metaDTO);
BlockDTO blockDto = new BlockDTO();
blockDto.setType(BlockType.NORMAL_BLOCK.getValue());
blockDto.setVersion(3);
blockDto.setSignerPublicKey("B630EFDDFADCC4A2077AB8F1EC846B08FEE2D2972EACF95BBAC6BFAC3D31834C");
blockDto.setBeneficiaryAddress(address.encoded());
blockDto.setHeight(BigInteger.valueOf(9L));
blockDto.setNetwork(NetworkTypeEnum.NUMBER_144);
blockDto.setProofGamma("proofGamma");
blockDto.setProofScalar("proofScalar");
blockDto.setProofVerificationHash("proofVerificationHash");
dto.setBlock(blockDto);
mockRemoteCall(Collections.singletonList(dto));
mockRemoteCall(toPage(dto));
BlockSearchCriteria criteria = new BlockSearchCriteria();
criteria.offset("abc");
List<BlockInfo> resolvedList = repository.search(criteria).toFuture().get().getData();
BlockInfo info = resolvedList.get(0);
Assertions.assertNotNull(info);
Assertions.assertEquals(blockDto.getBeneficiaryAddress(), info.getBeneficiaryAddress().encoded());
Assertions.assertEquals(blockDto.getSignerPublicKey(), info.getSignerPublicAccount().getPublicKey().toHex());
Assertions.assertEquals(BlockType.NORMAL_BLOCK, info.getType());
Assertions.assertEquals(3, info.getVersion().intValue());
Assertions.assertEquals(NetworkType.MIJIN_TEST, info.getNetworkType());
Assertions.assertEquals(BigInteger.valueOf(9L), info.getHeight());
Assertions.assertEquals(metaDTO.getHash(), info.getHash());
Assertions.assertEquals(metaDTO.getTransactionsCount(), info.getTransactionsCount());
Assertions.assertEquals(metaDTO.getGenerationHash(), info.getGenerationHash());
Assertions.assertEquals(metaDTO.getTransactionsCount(), info.getTransactionsCount());
Assertions.assertEquals(metaDTO.getStateHashSubCacheMerkleRoots(), info.getSubCacheMerkleRoots());
Assertions.assertEquals(metaDTO.getTotalFee(), info.getTotalFee());
Assertions.assertEquals(blockDto.getHeight(), info.getHeight());
Assertions.assertEquals(blockDto.getProofGamma(), info.getProofGamma());
Assertions.assertEquals(blockDto.getProofScalar(), info.getProofScalar());
Assertions.assertEquals(blockDto.getProofVerificationHash(), info.getProofVerificationHash());
Assertions.assertEquals(address, info.getBeneficiaryAddress());
}
use of io.nem.symbol.sdk.model.blockchain.BlockInfo in project nem2-sdk-java by nemtech.
the class BlockRepositoryOkHttpImplTest method shouldGetBlockByHeight.
@Test
public void shouldGetBlockByHeight() throws Exception {
Address address = Address.generateRandom(networkType);
BlockInfoDTO dto = new BlockInfoDTO();
BlockMetaDTO metaDTO = new BlockMetaDTO();
metaDTO.setHash("someHash");
metaDTO.setTransactionsCount(10);
metaDTO.setGenerationHash("generationHash");
metaDTO.setStatementsCount(20);
metaDTO.setStateHashSubCacheMerkleRoots(Arrays.asList("string1", "string2"));
metaDTO.setTotalFee(BigInteger.valueOf(8L));
dto.setMeta(metaDTO);
BlockDTO blockDto = new BlockDTO();
blockDto.setType(BlockType.NORMAL_BLOCK.getValue());
blockDto.setSize(10L);
blockDto.setVersion(3);
blockDto.setSignerPublicKey("B630EFDDFADCC4A2077AB8F1EC846B08FEE2D2972EACF95BBAC6BFAC3D31834C");
blockDto.setBeneficiaryAddress(address.encoded());
blockDto.setHeight(BigInteger.valueOf(9L));
blockDto.setNetwork(NetworkTypeEnum.NUMBER_144);
dto.setBlock(blockDto);
mockRemoteCall(dto);
BigInteger height = BigInteger.valueOf(10L);
BlockInfo info = repository.getBlockByHeight(height).toFuture().get();
Assertions.assertNotNull(info);
Assertions.assertEquals(blockDto.getBeneficiaryAddress(), info.getBeneficiaryAddress().encoded());
Assertions.assertEquals(blockDto.getSignerPublicKey(), info.getSignerPublicAccount().getPublicKey().toHex());
Assertions.assertEquals(BlockType.NORMAL_BLOCK, info.getType());
Assertions.assertEquals(10, info.getSize());
Assertions.assertEquals(3, info.getVersion().intValue());
Assertions.assertEquals(NetworkType.MIJIN_TEST, info.getNetworkType());
Assertions.assertEquals(BigInteger.valueOf(9L), info.getHeight());
Assertions.assertEquals(metaDTO.getHash(), info.getHash());
Assertions.assertEquals(metaDTO.getTransactionsCount(), info.getTransactionsCount());
Assertions.assertEquals(metaDTO.getGenerationHash(), info.getGenerationHash());
Assertions.assertEquals(metaDTO.getStatementsCount(), info.getStatementsCount());
Assertions.assertEquals(metaDTO.getStateHashSubCacheMerkleRoots(), info.getSubCacheMerkleRoots());
Assertions.assertEquals(metaDTO.getTotalFee(), info.getTotalFee());
Assertions.assertEquals(blockDto.getHeight(), info.getHeight());
Assertions.assertEquals(address, info.getBeneficiaryAddress());
Assertions.assertEquals(10L, info.getSize());
}
use of io.nem.symbol.sdk.model.blockchain.BlockInfo in project nem2-sdk-java by nemtech.
the class BlockRepositoryIntegrationTest method searchBySignerPublicKey.
@ParameterizedTest
@EnumSource(RepositoryType.class)
void searchBySignerPublicKey(RepositoryType type) {
BlockRepository blockRepository = getBlockRepository(type);
BlockInfo block1 = get(blockRepository.getBlockByHeight(BigInteger.ONE));
BlockSearchCriteria criteria = new BlockSearchCriteria();
PublicKey expectedSignerPublicKey = block1.getSignerPublicAccount().getPublicKey();
criteria.setSignerPublicKey(expectedSignerPublicKey);
BlockPaginationStreamer streamer = new BlockPaginationStreamer(blockRepository);
List<BlockInfo> blocks = get(streamer.search(criteria).toList().toObservable());
blocks.forEach(b -> Assertions.assertEquals(expectedSignerPublicKey, b.getSignerPublicAccount().getPublicKey()));
Assertions.assertFalse(blocks.isEmpty());
}
Aggregations