@Override public void setActive(User user, ScriptName name) throws ScriptNotFoundException { CompletableFuture<Boolean> activateNewScript = unactivateOldScript(user) .thenCompose(any -> updateScriptActivation(user, name, true) .thenCompose(CompletableFutureUtil.composeIfTrue( () -> cassandraActiveScriptDAO.activate(user, name)))); if (!activateNewScript.join()) { throw new ScriptNotFoundException(); } }
private CompletableFuture<Boolean> trySave(SimpleMailbox cassandraMailbox, CassandraId cassandraId) { return mailboxPathV2DAO.save(cassandraMailbox.generateAssociatedPath(), cassandraId) .thenCompose(CompletableFutureUtil.composeIfTrue( () -> retrieveMailbox(cassandraId) .thenCompose(optional -> CompletableFuture .allOf(optional .map(storedMailbox -> mailboxPathV2DAO.delete(storedMailbox.generateAssociatedPath())) .orElse(CompletableFuture.completedFuture(null)), mailboxDAO.save(cassandraMailbox))))); }
@Test void composeIfTrueShouldReturnTrueWhenTrue() { assertThat( CompletableFutureUtil.composeIfTrue(() -> CompletableFuture.completedFuture(null)) .apply(true) .join()) .isTrue(); }
@Test public void composeIfTrueShouldReturnTrueWhenTrue() { assertThat( CompletableFutureUtil.composeIfTrue(() -> CompletableFuture.completedFuture(null)) .apply(true) .join()) .isTrue(); }
@Test public void composeIfTrueShouldNotComposeWhenFalse() { AtomicInteger atomicInteger = new AtomicInteger(0); CompletableFutureUtil.composeIfTrue(() -> { atomicInteger.incrementAndGet(); return CompletableFuture.completedFuture(null); }) .apply(false) .join(); assertThat(atomicInteger.get()).isEqualTo(0); }
@Test void composeIfTrueShouldReturnFalseWhenFalse() { assertThat( CompletableFutureUtil.composeIfTrue(() -> CompletableFuture.completedFuture(null)) .apply(false) .join()) .isFalse(); }
@Test void composeIfTrueShouldComposeWhenTrue() { AtomicInteger atomicInteger = new AtomicInteger(0); CompletableFutureUtil.composeIfTrue(() -> { atomicInteger.incrementAndGet(); return CompletableFuture.completedFuture(null); }) .apply(true) .join(); assertThat(atomicInteger.get()).isEqualTo(1); }
@Test void composeIfTrueShouldNotComposeWhenFalse() { AtomicInteger atomicInteger = new AtomicInteger(0); CompletableFutureUtil.composeIfTrue(() -> { atomicInteger.incrementAndGet(); return CompletableFuture.completedFuture(null); }) .apply(false) .join(); assertThat(atomicInteger.get()).isEqualTo(0); }
@Test public void composeIfTrueShouldReturnFalseWhenFalse() { assertThat( CompletableFutureUtil.composeIfTrue(() -> CompletableFuture.completedFuture(null)) .apply(false) .join()) .isFalse(); }
@Test public void composeIfTrueShouldComposeWhenTrue() { AtomicInteger atomicInteger = new AtomicInteger(0); CompletableFutureUtil.composeIfTrue(() -> { atomicInteger.incrementAndGet(); return CompletableFuture.completedFuture(null); }) .apply(true) .join(); assertThat(atomicInteger.get()).isEqualTo(1); }