@Test public void createFromBinaryWithRealContract() throws Exception { String fileName = "./src/test_contracts/simple_root_contract.yml"; Contract c = Contract.fromDslFile(fileName); c.addSignerKeyFromFile(PRIVATE_KEY_PATH); sealCheckTrace(c, true); fileName = "./src/test_contracts/binaryContract.unc"; try(FileOutputStream stream = new FileOutputStream(fileName)) { stream.write(c.seal()); } readContract(fileName); }
@Test public void createFromSealedWithRealContract() throws Exception { String fileName = "./src/test_contracts/subscription.yml"; Contract c = Contract.fromDslFile(fileName); c.addSignerKeyFromFile(PRIVATE_KEY_PATH); sealCheckTrace(c, true); // Contract from seal byte[] seal = c.seal(); Contract sealedContract = new Contract(seal); sealedContract.addSignerKeyFromFile(PRIVATE_KEY_PATH); sealCheckTrace(sealedContract, true); }
@Test public void createFromSealedWithRealContractData() throws Exception { String fileName = "./src/test_contracts/subscription_with_data.yml"; Contract c = Contract.fromDslFile(fileName); c.addSignerKeyFromFile(PRIVATE_KEY_PATH); sealCheckTrace(c, true); // Contract from seal byte[] seal = c.seal(); Contract sealedContract = new Contract(seal); sealedContract.addSignerKeyFromFile(PRIVATE_KEY_PATH); sealCheckTrace(sealedContract, true); }
@Test public void shouldNotSplitWithAnotherRevision() throws Exception { Contract c = createCoin(); c.addSignerKeyFromFile(PRIVATE_KEY_PATH); c.getState().setBranchNumber(1); try { Contract c2 = c.split(1)[0]; fail("Expected exception to be thrown."); } catch (IllegalArgumentException e) { assertTrue(e.getMessage().equalsIgnoreCase("this revision is already split")); } }
private Contract basicContractCreation(final String fileName, final String keyFileName, final PrivateKey key) throws Exception { Contract c = Contract.fromDslFile(rootPath + fileName); c.setOwnerKey(key); c.addSignerKeyFromFile(rootPath + keyFileName); c.seal(); c.check(); c.traceErrors(); assertTrue(c.check()); return c; }
@Test public void validPermissionIds() throws Exception { Contract c = Contract.fromDslFile(ROOT_CONTRACT); c.addSignerKeyFromFile(PRIVATE_KEY_PATH); byte[] sealed = c.seal(); assertTrue(c.check()); Binder s = DefaultBiMapper.serialize(c); s.getBinderOrThrow("definition","permissions"); }
protected Contract createCoinWithAmount(String amount, String fieldName) throws Exception { Contract contract = createCoin(); contract.getStateData().set(fieldName, new Decimal(amount)); contract.addSignerKeyFromFile(PRIVATE_KEY_PATH); sealCheckTrace(contract, true); return contract; } }
@Test public void checkContractCreatedAtFutureTime() throws Exception{ Contract futureContract = Contract.fromDslFile(rootPath + "simple_root_contract_future.yml"); futureContract.addSignerKeyFromFile(rootPath+"_xer0yfe2nn1xthc.private.unikey"); futureContract.seal(); futureContract.check(); futureContract.traceErrors(); System.out.println("Contract is valid: " + futureContract.isOk()); assertFalse(futureContract.isOk()); }
@Test public void checkRegisterContractCreatedAtFutureTime() throws Exception{ Contract futureContract = Contract.fromDslFile(ROOT_PATH + "simple_root_contract_future.yml"); futureContract.addSignerKeyFromFile(ROOT_PATH+"_xer0yfe2nn1xthc.private.unikey"); futureContract.seal(); futureContract.check(); futureContract.traceErrors(); System.out.println("Contract is valid: " + futureContract.isOk()); assertFalse(futureContract.isOk()); }
@Test public void checkContractCreatedAtPastTime() throws Exception{ Contract oldContract = Contract.fromDslFile(rootPath + "simple_root_contract_past.yml"); oldContract.addSignerKeyFromFile(rootPath+"_xer0yfe2nn1xthc.private.unikey"); oldContract.seal(); oldContract.check(); oldContract.traceErrors(); System.out.println("Contract is valid: " + oldContract.isOk()); assertFalse(oldContract.isOk()); }
@Test public void checkContractExpiresAtDistantPastTime() throws Exception{ Contract oldContract = Contract.fromDslFile(rootPath + "simple_root_contract.yml"); oldContract.addSignerKeyFromFile(rootPath+"_xer0yfe2nn1xthc.private.unikey"); oldContract.getDefinition().setExpiresAt(ZonedDateTime.of(LocalDateTime.MIN.truncatedTo(ChronoUnit.SECONDS), ZoneOffset.UTC)); oldContract.seal(); oldContract.check(); oldContract.traceErrors(); System.out.println("Contract is valid: " + oldContract.isOk()); assertFalse(oldContract.isOk()); }
@Test public void checkRegisterContractExpiresAtDistantPastTime() throws Exception{ Contract oldContract = Contract.fromDslFile(ROOT_PATH + "simple_root_contract.yml"); oldContract.addSignerKeyFromFile(ROOT_PATH+"_xer0yfe2nn1xthc.private.unikey"); oldContract.getDefinition().setExpiresAt(ZonedDateTime.of(LocalDateTime.MIN.truncatedTo(ChronoUnit.SECONDS), ZoneOffset.UTC)); oldContract.seal(); oldContract.check(); oldContract.traceErrors(); System.out.println("Contract is valid: " + oldContract.isOk()); assertFalse(oldContract.isOk()); }
@Test public void goodRevoke() throws Exception { Contract c = Contract.fromDslFile(rootPath + "simple_root_contract.yml"); c.addSignerKeyFromFile(rootPath+"_xer0yfe2nn1xthc.private.unikey"); PrivateKey goodKey = c.getKeysToSignWith().iterator().next(); c.setOwnerKeys(new KeyRecord(goodKey.getPublicKey())); c.seal(); Contract revokeContract = c.createRevocation(goodKey); revokeContract.check(); assertTrue(revokeContract.isOk()); // tc.traceErrors(); }
@Test public void checkContractExpiresAtResentFutureTime() throws Exception{ Contract futureContract = Contract.fromDslFile(rootPath + "simple_root_contract.yml"); futureContract.addSignerKeyFromFile(rootPath+"_xer0yfe2nn1xthc.private.unikey"); futureContract.getDefinition().setExpiresAt(futureContract.getCreatedAt().plusMinutes(1)); futureContract.seal(); assertTrue(futureContract.check()); System.out.println("Contract is valid: " + futureContract.isOk()); }
@Test public void checkContractExpiresAtDistantFutureTime() throws Exception{ Contract futureContract = Contract.fromDslFile(rootPath + "simple_root_contract.yml"); futureContract.addSignerKeyFromFile(rootPath+"_xer0yfe2nn1xthc.private.unikey"); futureContract.getDefinition().setExpiresAt(futureContract.getCreatedAt().plusYears(50)); futureContract.seal(); assertTrue(futureContract.check()); System.out.println("Contract is valid: " + futureContract.isOk()); }
@Test public void checkRegisterContractExpiresAtReсentFutureTime() throws Exception{ Contract futureContract = Contract.fromDslFile(ROOT_PATH + "simple_root_contract.yml"); futureContract.addSignerKeyFromFile(ROOT_PATH+"_xer0yfe2nn1xthc.private.unikey"); futureContract.getDefinition().setExpiresAt(futureContract.getCreatedAt().plusMinutes(1)); futureContract.seal(); assertTrue(futureContract.check()); System.out.println("Contract is valid: " + futureContract.isOk()); registerAndCheckApproved(futureContract); }
@Test public void shouldNotSplitWithAnotherIssuerSerialize() throws Exception { Contract c = createCoin(); c.addSignerKeyFromFile(PRIVATE_KEY_PATH); sealCheckTrace(c, true); Contract c2 = c.splitValue(FIELD_NAME, new Decimal(50)); c2.setIssuerKeys(ownerKey1.getPublicKey()); sealCheckTrace(c2, false); }
@Test public void checkRegisterContractExpiresAtReсentPastTime() throws Exception{ Contract oldContract = Contract.fromDslFile(ROOT_PATH + "simple_root_contract.yml"); oldContract.addSignerKeyFromFile(ROOT_PATH+"_xer0yfe2nn1xthc.private.unikey"); oldContract.getDefinition().setExpiresAt(oldContract.getCreatedAt().minusMinutes(1)); oldContract.seal(); oldContract.check(); oldContract.traceErrors(); System.out.println("Contract is valid: " + oldContract.isOk()); assertFalse(oldContract.isOk()); }
@Test public void checkContractExpiresAtResentPastTime() throws Exception{ Contract oldContract = Contract.fromDslFile(rootPath + "simple_root_contract.yml"); oldContract.addSignerKeyFromFile(rootPath+"_xer0yfe2nn1xthc.private.unikey"); oldContract.getDefinition().setExpiresAt(oldContract.getCreatedAt().minusMinutes(1)); oldContract.seal(); oldContract.check(); oldContract.traceErrors(); System.out.println("Contract is valid: " + oldContract.isOk()); assertFalse(oldContract.isOk()); }
@Test public void splitLessThanMinValue() throws Exception { Contract root = createCoinWithAmount("200", FIELD_NAME); root = root.createRevision(); root.addSignerKeyFromFile(PRIVATE_KEY_PATH); Contract c1 = root.splitValue(FIELD_NAME, new Decimal("0.00001")); root.addSignerKey(ownerKey2); c1.addSignerKey(ownerKey2); sealCheckTrace(c1, false); sealCheckTrace(root, false); }