Search in sources :

Example 6 with BlockInfo

use of io.nem.symbol.sdk.model.blockchain.BlockInfo in project nem2-sdk-java by nemtech.

the class BlockRepositoryIntegrationTest method searchByBeneficiaryAddress.

@ParameterizedTest
@EnumSource(RepositoryType.class)
void searchByBeneficiaryAddress(RepositoryType type) {
    BlockRepository blockRepository = getBlockRepository(type);
    BlockInfo block1 = get(blockRepository.getBlockByHeight(BigInteger.ONE));
    BlockSearchCriteria criteria = new BlockSearchCriteria();
    Address expectedBeneficiaryAddress = block1.getBeneficiaryAddress();
    criteria.setBeneficiaryAddress(expectedBeneficiaryAddress);
    BlockPaginationStreamer streamer = new BlockPaginationStreamer(blockRepository);
    List<BlockInfo> blocks = get(streamer.search(criteria).toList().toObservable());
    blocks.forEach(b -> Assertions.assertEquals(expectedBeneficiaryAddress, b.getBeneficiaryAddress()));
    Assertions.assertFalse(blocks.isEmpty());
}
Also used : BlockRepository(io.nem.symbol.sdk.api.BlockRepository) BlockSearchCriteria(io.nem.symbol.sdk.api.BlockSearchCriteria) Address(io.nem.symbol.sdk.model.account.Address) BlockInfo(io.nem.symbol.sdk.model.blockchain.BlockInfo) BlockPaginationStreamer(io.nem.symbol.sdk.api.BlockPaginationStreamer) EnumSource(org.junit.jupiter.params.provider.EnumSource) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 7 with BlockInfo

use of io.nem.symbol.sdk.model.blockchain.BlockInfo in project nem2-sdk-java by nemtech.

the class ListenerIntegrationTest method shouldReturnNewBlockViaListener.

@ParameterizedTest
@EnumSource(RepositoryType.class)
void shouldReturnNewBlockViaListener(RepositoryType type) {
    Listener listener = getListener(type);
    BlockInfo blockInfo = get(listener.newBlock().take(1));
    assertTrue(blockInfo.getHeight().intValue() > 0);
}
Also used : Listener(io.nem.symbol.sdk.api.Listener) BlockInfo(io.nem.symbol.sdk.model.blockchain.BlockInfo) EnumSource(org.junit.jupiter.params.provider.EnumSource) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 8 with BlockInfo

use of io.nem.symbol.sdk.model.blockchain.BlockInfo in project nem2-sdk-java by nemtech.

the class BlockServiceTest method isValidTransactionInBlockMultipleEquals.

@Test
void isValidTransactionInBlockMultipleEquals() throws ExecutionException, InterruptedException {
    BigInteger height = BigInteger.ONE;
    String hash = "1234";
    String root = "d7de53a6ec87b3cb8e0fb4d6d9aa40b96a17a54b7206702229a6517e91d88dcb";
    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.getMerkleTransaction(height, hash)).thenReturn(Observable.just(merkleProofInfo));
    Assertions.assertTrue(service.isValidTransactionInBlock(height, hash).toFuture().get());
}
Also used : BlockInfo(io.nem.symbol.sdk.model.blockchain.BlockInfo) ArrayList(java.util.ArrayList) BigInteger(java.math.BigInteger) MerklePathItem(io.nem.symbol.sdk.model.blockchain.MerklePathItem) MerkleProofInfo(io.nem.symbol.sdk.model.blockchain.MerkleProofInfo) Test(org.junit.jupiter.api.Test)

Example 9 with BlockInfo

use of io.nem.symbol.sdk.model.blockchain.BlockInfo in project nem2-sdk-java by nemtech.

the class BlockServiceTest method isValidStatementInBlockEmtpyNotEquals.

@Test
void isValidStatementInBlockEmtpyNotEquals() throws ExecutionException, InterruptedException {
    BigInteger height = BigInteger.ONE;
    String leaf = "ABCD";
    String root = "1234";
    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<>();
    MerkleProofInfo merkleProofInfo = new MerkleProofInfo(merklePath);
    Mockito.when(blockRepositoryMock.getMerkleReceipts(height, leaf)).thenReturn(Observable.just(merkleProofInfo));
    Assertions.assertFalse(service.isValidStatementInBlock(height, leaf).toFuture().get());
}
Also used : BlockInfo(io.nem.symbol.sdk.model.blockchain.BlockInfo) ArrayList(java.util.ArrayList) BigInteger(java.math.BigInteger) MerklePathItem(io.nem.symbol.sdk.model.blockchain.MerklePathItem) MerkleProofInfo(io.nem.symbol.sdk.model.blockchain.MerkleProofInfo) Test(org.junit.jupiter.api.Test)

Example 10 with BlockInfo

use of io.nem.symbol.sdk.model.blockchain.BlockInfo in project nem2-sdk-java by nemtech.

the class BlockServiceTest method isValidStatementInBlockMultipleEquals.

@Test
void isValidStatementInBlockMultipleEquals() 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));
    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, hash)).thenReturn(Observable.just(merkleProofInfo));
    Assertions.assertTrue(service.isValidStatementInBlock(height, hash).toFuture().get());
}
Also used : BlockInfo(io.nem.symbol.sdk.model.blockchain.BlockInfo) ArrayList(java.util.ArrayList) BigInteger(java.math.BigInteger) MerklePathItem(io.nem.symbol.sdk.model.blockchain.MerklePathItem) MerkleProofInfo(io.nem.symbol.sdk.model.blockchain.MerkleProofInfo) Test(org.junit.jupiter.api.Test)

Aggregations

BlockInfo (io.nem.symbol.sdk.model.blockchain.BlockInfo)24 Test (org.junit.jupiter.api.Test)13 BigInteger (java.math.BigInteger)11 BlockSearchCriteria (io.nem.symbol.sdk.api.BlockSearchCriteria)9 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)9 EnumSource (org.junit.jupiter.params.provider.EnumSource)9 MerklePathItem (io.nem.symbol.sdk.model.blockchain.MerklePathItem)8 MerkleProofInfo (io.nem.symbol.sdk.model.blockchain.MerkleProofInfo)8 ArrayList (java.util.ArrayList)8 BlockPaginationStreamer (io.nem.symbol.sdk.api.BlockPaginationStreamer)7 Address (io.nem.symbol.sdk.model.account.Address)6 ImportanceBlockInfo (io.nem.symbol.sdk.model.blockchain.ImportanceBlockInfo)6 BlockRepository (io.nem.symbol.sdk.api.BlockRepository)5 ImportanceBlockDTO (io.nem.symbol.sdk.openapi.okhttp_gson.model.ImportanceBlockDTO)3 ImportanceBlockDTO (io.nem.symbol.sdk.openapi.vertx.model.ImportanceBlockDTO)3 PublicKey (io.nem.symbol.core.crypto.PublicKey)2 BlockType (io.nem.symbol.sdk.model.blockchain.BlockType)2 NetworkType (io.nem.symbol.sdk.model.network.NetworkType)2 BlockDTO (io.nem.symbol.sdk.openapi.okhttp_gson.model.BlockDTO)2 BlockInfoDTO (io.nem.symbol.sdk.openapi.okhttp_gson.model.BlockInfoDTO)2