@Test public void serializeDeserialize() throws Exception { //serialize Binder b1 = serialize(parcel); Binder b2 = serialize(parcelFromFile); //deserialize des_parcel = deserialize(b1); des_parcelFromFile = deserialize(b2); parcelAssertions(parcel, des_parcel); parcelAssertions(des_parcelFromFile, des_parcelFromFile); assertEquals(1, des_parcel.getPayload().getSubItems().size()); assertEquals(1, des_parcel.getPayload().getContract().getNew().size()); }
parcel.getPayload().getContract().check(); parcel.getPayload().getContract().traceErrors(); assertEquals(ItemState.APPROVED, node.waitItem(parcel.getPayload().getContract().getId(), 8000).state);
@Test(timeout = 90000) public void transactionalValidUntil_good() throws Exception { Set<PrivateKey> stepaPrivateKeys = new HashSet<>(); Set<PublicKey> stepaPublicKeys = new HashSet<>(); stepaPrivateKeys.add(new PrivateKey(Do.read(ROOT_PATH + "keys/stepan_mamontov.private.unikey"))); for (PrivateKey pk : stepaPrivateKeys) { stepaPublicKeys.add(pk.getPublicKey()); } Contract stepaCoins = Contract.fromDslFile(ROOT_PATH + "stepaCoins.yml"); if (stepaCoins.getTransactional() == null) stepaCoins.createTransactionalSection(); stepaCoins.getTransactional().setValidUntil(ZonedDateTime.now().plusSeconds(Config.validUntilTailTime.getSeconds()*2).toEpochSecond()); stepaCoins.addSignerKey(stepaPrivateKeys.iterator().next()); stepaCoins.seal(); stepaCoins.check(); stepaCoins.traceErrors(); Parcel parcel = createParcelWithFreshU(stepaCoins, stepaPrivateKeys); assertTrue(parcel.getPayloadContract().isOk()); node.registerParcel(parcel); node.waitParcel(parcel.getId(), 8000); assertEquals(ItemState.APPROVED, node.waitItem(parcel.getPayment().getContract().getId(), 8000).state); assertEquals(ItemState.APPROVED, node.waitItem(parcel.getPayload().getContract().getId(), 8000).state); }
@Test public void packUnpack() throws Exception { //pack byte[] array = parcel.pack(); byte[] array1 = parcelFromFile.pack(); //unpack des_parcel = Parcel.unpack(array); des_parcelFromFile = Parcel.unpack(array1); parcelAssertions(parcel, des_parcel); parcelAssertions(parcelFromFile, des_parcelFromFile); assertEquals(1, des_parcel.getPayload().getSubItems().size()); assertEquals(1, des_parcel.getPayload().getContract().getNew().size()); } }
@Test(timeout = 90000) public void transactionalValidUntil_timeEnds() throws Exception { Set<PrivateKey> stepaPrivateKeys = new HashSet<>(); Set<PublicKey> stepaPublicKeys = new HashSet<>(); stepaPrivateKeys.add(new PrivateKey(Do.read(ROOT_PATH + "keys/stepan_mamontov.private.unikey"))); for (PrivateKey pk : stepaPrivateKeys) { stepaPublicKeys.add(pk.getPublicKey()); } Contract stepaCoins = Contract.fromDslFile(ROOT_PATH + "stepaCoins.yml"); if (stepaCoins.getTransactional() == null) stepaCoins.createTransactionalSection(); stepaCoins.getTransactional().setValidUntil(ZonedDateTime.now().plusSeconds(Config.validUntilTailTime.getSeconds()/2).toEpochSecond()); stepaCoins.addSignerKey(stepaPrivateKeys.iterator().next()); stepaCoins.seal(); stepaCoins.check(); stepaCoins.traceErrors(); Parcel parcel = createParcelWithFreshU(stepaCoins, stepaPrivateKeys); assertFalse(parcel.getPayloadContract().isOk()); node.registerParcel(parcel); node.waitParcel(parcel.getId(), 8000); assertEquals(ItemState.APPROVED, node.waitItem(parcel.getPayment().getContract().getId(), 8000).state); assertEquals(ItemState.DECLINED, node.waitItem(parcel.getPayload().getContract().getId(), 8000).state); }
public void parcelAssertions(Parcel equal1, Parcel equal2 ) throws Exception { //few assertions assertEquals(equal1.getPayload().getContract().getId(), equal2.getPayload().getContract().getId()); assertEquals(equal1.getPayment().getContract().getId(), equal2.getPayment().getContract().getId()); assertEquals(equal1.getPayload().getContract().getState().getBranchId(), equal2.getPayload().getContract().getState().getBranchId()); assertEquals(equal1.getPayment().getContract().getState().getBranchId(), equal2.getPayment().getContract().getState().getBranchId()); assertEquals(equal1.getPayload().getContract().getState().getCreatedAt().getSecond(), equal2.getPayload().getContract().getState().getCreatedAt().getSecond()); assertEquals(equal1.getPayment().getContract().getState().getCreatedAt().getSecond(), equal2.getPayment().getContract().getState().getCreatedAt().getSecond()); assertEquals(equal1.getPayload().getContract().getExpiresAt().getDayOfYear(), equal2.getPayload().getContract().getExpiresAt().getDayOfYear()); assertEquals(equal1.getPayment().getContract().getExpiresAt().getDayOfYear(), equal2.getPayment().getContract().getExpiresAt().getDayOfYear()); assertEquals(equal1.getPayload().getSubItems().size(), equal2.getPayload().getSubItems().size()); assertEquals(equal1.getPayment().getSubItems(), equal2.getPayment().getSubItems()); }
@Test(timeout = 90000) public void transactionalValidUntil_timeIsOver() throws Exception { Set<PrivateKey> stepaPrivateKeys = new HashSet<>(); Set<PublicKey> stepaPublicKeys = new HashSet<>(); stepaPrivateKeys.add(new PrivateKey(Do.read(ROOT_PATH + "keys/stepan_mamontov.private.unikey"))); for (PrivateKey pk : stepaPrivateKeys) { stepaPublicKeys.add(pk.getPublicKey()); } Contract stepaCoins = Contract.fromDslFile(ROOT_PATH + "stepaCoins.yml"); if (stepaCoins.getTransactional() == null) stepaCoins.createTransactionalSection(); stepaCoins.getTransactional().setValidUntil(ZonedDateTime.now().plusMonths(-1).toEpochSecond()); stepaCoins.addSignerKey(stepaPrivateKeys.iterator().next()); stepaCoins.seal(); stepaCoins.check(); stepaCoins.traceErrors(); Parcel parcel = createParcelWithFreshU(stepaCoins, stepaPrivateKeys); assertFalse(parcel.getPayloadContract().isOk()); node.registerParcel(parcel); node.waitParcel(parcel.getId(), 8000); assertEquals(ItemState.APPROVED, node.waitItem(parcel.getPayment().getContract().getId(), 8000).state); assertEquals(ItemState.DECLINED, node.waitItem(parcel.getPayload().getContract().getId(), 8000).state); }
assertEquals(ItemState.DECLINED, node.waitItem(payingParcel.getPayload().getContract().getId(), 8000).state); assertEquals(ItemState.APPROVED, node.waitItem(payingParcel.getPayment().getContract().getId(), 8000).state); assertEquals(ItemState.UNDEFINED, node.waitItem(uns.getNew().get(0).getId(), 8000).state);
@Test(timeout = 90000) public void declineParcelWithBadPayload() throws Exception { Set<PrivateKey> stepaPrivateKeys = new HashSet<>(); Set<PublicKey> stepaPublicKeys = new HashSet<>(); stepaPrivateKeys.add(new PrivateKey(Do.read(ROOT_PATH + "keys/stepan_mamontov.private.unikey"))); for (PrivateKey pk : stepaPrivateKeys) { stepaPublicKeys.add(pk.getPublicKey()); } Contract stepaCoins = Contract.fromDslFile(ROOT_PATH + "stepaCoins.yml"); // stepaCoins.addSignerKey(stepaPrivateKeys.iterator().next()); stepaCoins.seal(); stepaCoins.check(); stepaCoins.traceErrors(); Parcel parcel = createParcelWithFreshU(stepaCoins, stepaPrivateKeys); assertTrue(parcel.getPaymentContract().isOk()); assertFalse(parcel.getPayloadContract().isOk()); node.registerParcel(parcel); // wait parcel node.waitParcel(parcel.getId(), 8000); // check payment and payload contracts assertEquals(ItemState.APPROVED, node.waitItem(parcel.getPayment().getContract().getId(), 8000).state); assertEquals(ItemState.DECLINED, node.waitItem(parcel.getPayload().getContract().getId(), 8000).state); }
assertEquals(ItemState.APPROVED, node.waitItem(parcel.getPayload().getContract().getId(), 8000).state); assertEquals(ItemState.APPROVED, node.waitItem(stepaCoins.getNew().get(0).getId(), 8000).state);
assertEquals(ItemState.DECLINED, node.waitItem(payingParcel.getPayload().getContract().getId(), 8000).state); assertEquals(ItemState.APPROVED, node.waitItem(payingParcel.getPayment().getContract().getId(), 8000).state); assertEquals(ItemState.UNDEFINED, node.waitItem(uns.getNew().get(0).getId(), 8000).state);
assertEquals(ItemState.DECLINED, node.waitItem(payingParcel.getPayload().getContract().getId(), 8000).state); assertEquals(ItemState.APPROVED, node.waitItem(payingParcel.getPayment().getContract().getId(), 8000).state); assertEquals(ItemState.UNDEFINED, node.waitItem(uns.getNew().get(0).getId(), 8000).state);
parcel.getPayload().getContract().check(); parcel.getPayload().getContract().traceErrors(); assertEquals(ItemState.APPROVED, node.waitItem(parcel.getPayload().getContract().getId(), 8000).state);
assertEquals(ItemState.APPROVED, node.waitItem(parcel.getPayload().getContract().getId(), 8000).state); assertEquals(ItemState.APPROVED, node.waitItem(stepaCoins.getNew().get(0).getId(), 8000).state);
assertEquals(ItemState.UNDEFINED, node.waitItem(parcel.getPayload().getContract().getId(), 8000).state);
parcel.getPayload().getContract().check(); parcel.getPayload().getContract().traceErrors();
assertEquals(ItemState.APPROVED, node.waitItem(payingParcel.getPayload().getContract().getId(), 8000).state); assertEquals(ItemState.APPROVED, node.waitItem(uns.getNew().get(0).getId(), 8000).state);
assertEquals(ItemState.DECLINED, node.waitItem(payingParcel.getPayload().getContract().getId(), 8000).state); assertEquals(ItemState.APPROVED, node.waitItem(payingParcel.getPayment().getContract().getId(), 8000).state); assertEquals(ItemState.UNDEFINED, node.waitItem(uns.getNew().get(0).getId(), 8000).state);
parcel.getPayload().getContract().check(); parcel.getPayload().getContract().traceErrors(); assertEquals(ItemState.UNDEFINED, node.waitItem(parcel.getPayload().getContract().getId(), 8000).state);
assertEquals(ItemState.UNDEFINED, node.waitItem(parcel.getPayload().getContract().getId(), 8000).state);