@Test public void create() throws Exception { // System.out.println("" + ledger.getDb().getIntParam("version")); HashId id = HashId.createRandom(); assertNull(ledger.getRecord(id)); StateRecord r = ledger.findOrCreate(id); System.out.println(r); System.out.println(ledger.countRecords()); }
envCache = node.getEnvCache(); StateRecord r = ledger.getRecord(HashId.withDigest("bS/c4YMidaVuzTBhHLkGPFAvPbZQHybzQnXAoBwaZYM8eLYb7mAkVYEpuqKRXYc7anqX47BeNdvFN1n7KluH9A==")); if( r != null ) r.destroy();
@Test public void destroy() throws Exception { StateRecord r1 = ledger.findOrCreate(HashId.createRandom()); r1.destroy(); assertNull(ledger.getRecord(r1.getId())); }
@Test public void recordExpiration() throws Exception { // todo: expired can't be get - it should be dropped by the database HashId hashId = HashId.createRandom(); StateRecord r = ledger.findOrCreate(hashId); assertNotNull(r.getExpiresAt()); assert(r.getExpiresAt().isAfter(ZonedDateTime.now())); long recordId = r.getRecordId(); ZonedDateTime inFuture = ZonedDateTime.now().plusHours(2); r.setExpiresAt(inFuture); StateRecord r1 = ledger.getRecord(hashId); assertNotEquals(r1.getExpiresAt(), inFuture); r.save(); r1 = ledger.getRecord(hashId); assertAlmostSame(r.getExpiresAt(), r1.getExpiresAt()); r.setExpiresAt(ZonedDateTime.now().minusHours(1)); r.save(); r1 = ledger.getRecord(hashId); assertNull(r1); }
@Test public void checkNegativeBytesInId() throws Exception { HashId id = HashId.withDigest(Do.randomNegativeBytes(64)); StateRecord r1 = ledger.findOrCreate(id); r1.setState(ItemState.DECLINED); r1.save(); StateRecord r2 = ledger.getRecord(id); assertNotNull(r2); assertNotSame(r1, r2); assertEquals(r1.getState(), r2.getState()); ledger.enableCache(true); StateRecord r3 = ledger.getRecord(id); StateRecord r4 = ledger.getRecord(id); assertEquals(r3.toString(), r4.toString()); // why? assertSame(r3, r4); }
@Test public void findOrCreateAndGet() throws Exception { // Atomic new record creation HashId id = HashId.createRandom(); StateRecord r = ledger.findOrCreate(id); assertNotNull(r); assertEquals(id, r.getId()); assertEquals(ItemState.PENDING, r.getState()); assertAlmostSame(ZonedDateTime.now(), r.getCreatedAt()); // returning existing record StateRecord r1 = ledger.findOrCreate(id); assertSameRecords(r, r1); StateRecord r2 = ledger.getRecord(id); assertSameRecords(r, r2); StateRecord r3 = ledger.getRecord(HashId.createRandom()); assert (r3 == null); }
assertEquals(5, x); r1.reload(); StateRecord r3 = ledger.getRecord(r1.getId()); assertEquals(ItemState.APPROVED, r1.getState()); assertEquals(ItemState.APPROVED, r3.getState());