CassandraMailboxCounterDAO { public Mono<MailboxCounters> retrieveMailboxCounters(CassandraId mailboxId) { return cassandraAsyncExecutor.executeSingleRow(bindWithMailbox(mailboxId, readStatement)) .map(row -> MailboxCounters.builder() .mailboxId(mailboxId) .count(row.getLong(COUNT)) .unseen(row.getLong(UNSEEN)) .build()); } @Inject  CassandraMailboxCounterDAO(Session session); Mono<Void> delete(CassandraId mailboxId); Mono<MailboxCounters> retrieveMailboxCounters(CassandraId mailboxId); Mono<Void> resetCounters(MailboxCounters counters); Mono<Void> add(MailboxCounters counters); Mono<Void> remove(MailboxCounters counters); Mono<Long> countMessagesInMailbox(Mailbox mailbox); Mono<Long> countMessagesInMailbox(CassandraId cassandraId); Mono<Long> countUnseenMessagesInMailbox(Mailbox mailbox); Mono<Void> decrementCount(CassandraId mailboxId); Mono<Void> incrementCount(CassandraId mailboxId); Mono<Void> decrementUnseen(CassandraId mailboxId); Mono<Void> incrementUnseen(CassandraId mailboxId); Mono<Void> decrementUnseenAndCount(CassandraId mailboxId); Mono<Void> incrementUnseenAndCount(CassandraId mailboxId);  }
@Test void retrieveMailboxCounterShouldReturnEmptyByDefault() { assertThat(testee.retrieveMailboxCounters(MAILBOX_ID).hasElement().block()).isFalse(); }