private void verifyAccountEmailAuditAndHistoryCount( final UUID accountId, final int expectedCount) { final Handle handle = dbi.open(); // verify audit StringBuilder sb = new StringBuilder(); sb.append("select * from audit_log a "); sb.append("inner join account_email_history aeh on a.record_id = aeh.history_record_id "); sb.append("where a.table_name = 'account_email_history' "); sb.append(String.format("and aeh.account_id='%s'", accountId.toString())); List<Map<String, Object>> result = handle.select(sb.toString()); assertEquals(result.size(), expectedCount); // ***** NOT IDEAL // ... but this works after the email record has been deleted; will likely fail when multiple // emails exist for the same account // verify history table sb = new StringBuilder(); sb.append("select * from account_email_history aeh "); sb.append(String.format("where aeh.account_id='%s'", accountId.toString())); result = handle.select(sb.toString()); assertEquals(result.size(), expectedCount); handle.close(); }
@Override public Long withHandle(final Handle handle) throws Exception { return (Long) handle .select("select count(distinct record_id) count from bus_events") .get(0) .get("count") + (Long) handle .select( "select count(distinct record_id) count from notifications where effective_date < ?", clock.getUTCNow().toDate()) .get(0) .get("count") + (Long) handle .select( "select count(distinct record_id) count from notifications where processing_state = 'IN_PROCESSING'") .get(0) .get("count"); }