@Test public void rollback2() { DB<Unit> failedInsert = insertKeysOp(list("ok")) .bind(ids -> insertDataOp(ids.zip(list("description"))).bind(insertCount -> { throw new RuntimeException("failed I have"); })); swallow(() -> DB.transact(failedInsert)); DB<P2<Long, Long>> tryCounts = COUNT_IDS.bind(idCount -> COUNT_DATA.map(dataCount -> p(idCount, dataCount))); P2<Long, Long> counts = DB.submit(tryCounts); assertEquals(0, (long) counts._1()); assertEquals(0, (long) counts._2()); }
@Test public void rollback() { DB<List<Long>> insertDataFail = insertKeysOp(list("okidoki")).bind(ids -> fail("failed i have")); swallow(() -> DB.transact(insertDataFail)); DB<P2<Long, Long>> tryCounts = COUNT_IDS.bind(idCount -> COUNT_DATA.map(dataCount -> p(idCount, dataCount))); P2<Long, Long> counts = DB.submit(tryCounts); assertEquals(0, (long) counts._1()); assertEquals(0, (long) counts._2()); }