Search in sources :

Example 1 with NulsDataValidator

use of io.nuls.kernel.validate.NulsDataValidator in project nuls by nuls-io.

the class ConsensusPocServiceTest method newTx.

@Test
public void newTx() throws Exception {
    assertNotNull(service);
    // new a tx
    Transaction tx = new TestTransaction();
    CoinData coinData = new CoinData();
    List<Coin> fromList = new ArrayList<>();
    fromList.add(new Coin(new byte[20], Na.NA, 0L));
    coinData.setFrom(fromList);
    tx.setCoinData(coinData);
    tx.setTime(1l);
    assertNotNull(tx);
    assertNotNull(tx.getHash());
    assertEquals(tx.getHash().getDigestHex(), "00204a54f8b12b75c3c1fe5f261416adaf1a1b906ccf5673bb7a133ede5a0a4c56f8");
    Result result = service.newTx(tx);
    assertNotNull(result);
    assertTrue(result.isSuccess());
    assertFalse(result.isFailed());
    // test orphan
    NulsDataValidator<TestTransaction> testValidator = new NulsDataValidator<TestTransaction>() {

        @Override
        public ValidateResult validate(TestTransaction data) {
            if (data.getHash().getDigestHex().equals("0020e27ee243921bf482d7b62b6ee63c7ab1938953c834318b79fa3204c5c869e26b")) {
                return ValidateResult.getFailedResult("test.transaction", TransactionErrorCode.ORPHAN_TX);
            } else {
                return ValidateResult.getSuccessResult();
            }
        }
    };
    ValidatorManager.addValidator(TestTransaction.class, testValidator);
    tx = new TestTransaction();
    tx.setTime(2l);
    assertEquals(tx.getHash().getDigestHex(), "0020e27ee243921bf482d7b62b6ee63c7ab1938953c834318b79fa3204c5c869e26b");
    result = service.newTx(tx);
    assertNotNull(result);
    assertTrue(result.isSuccess());
    assertFalse(result.isFailed());
    List<Transaction> list = TxMemoryPool.getInstance().getAll();
    assertNotNull(list);
    assertEquals(list.size(), 1);
    List<Transaction> orphanList = TxMemoryPool.getInstance().getAllOrphan();
    assertNotNull(orphanList);
    assertEquals(orphanList.size(), 1);
}
Also used : TestTransaction(io.nuls.consensus.poc.TestTransaction) NulsDataValidator(io.nuls.kernel.validate.NulsDataValidator) TestTransaction(io.nuls.consensus.poc.TestTransaction) ArrayList(java.util.ArrayList) ValidateResult(io.nuls.kernel.validate.ValidateResult) Test(org.junit.Test) BaseTest(io.nuls.consensus.poc.BaseTest)

Aggregations

BaseTest (io.nuls.consensus.poc.BaseTest)1 TestTransaction (io.nuls.consensus.poc.TestTransaction)1 NulsDataValidator (io.nuls.kernel.validate.NulsDataValidator)1 ValidateResult (io.nuls.kernel.validate.ValidateResult)1 ArrayList (java.util.ArrayList)1 Test (org.junit.Test)1