public void mailboxScrubTest() throws IOException
{
initAccount();
Pair<LabelMap, Map<Integer, List<UUID>>> pair = populateMailbox();
LabelMap labels = pair.getLeft();
Map<Integer, List<UUID>> messages = pair.getRight();
// TODO: wipe off counters and indexes here. need to communicate with metadata store directly
// check label counters before scrub
expect().
statusCode(200).and().
body("'" + ReservedLabels.INBOX.getId() + "'.total",
equalTo(labels.get(ReservedLabels.INBOX.getId()).getCounters().getTotalMessages().intValue())).
body("'" + ReservedLabels.INBOX.getId() + "'.unread",
equalTo(labels.get(ReservedLabels.INBOX.getId()).getCounters().getUnreadMessages().intValue())).
body("'" + ReservedLabels.NOTIFICATIONS.getId() + "'.total",
equalTo(labels.get(ReservedLabels.NOTIFICATIONS.getId()).getCounters().getTotalMessages().intValue())).
body("'" + ReservedLabels.NOTIFICATIONS.getId() + "'.unread",
equalTo(labels.get(ReservedLabels.NOTIFICATIONS.getId()).getCounters().getUnreadMessages().intValue())).
body("'" + ReservedLabels.SPAM.getId() + "'.total",
equalTo(labels.get(ReservedLabels.SPAM.getId()).getCounters().getTotalMessages().intValue())).
body("'" + ReservedLabels.SPAM.getId() + "'.unread",
equalTo(labels.get(ReservedLabels.SPAM.getId()).getCounters().getUnreadMessages().intValue())).
body("'" + ReservedLabels.TRASH.getId() + "'.total",
equalTo(labels.get(ReservedLabels.TRASH.getId()).getCounters().getTotalMessages().intValue())).
body("'" + ReservedLabels.TRASH.getId() + "'.unread",
equalTo(labels.get(ReservedLabels.TRASH.getId()).getCounters().getUnreadMessages().intValue())).
when().
get(REST_PATH + "/mailbox?metadata=true").asString();
// scrub label counters
expect().
statusCode(204).
when().
post(REST_PATH + "/mailbox/scrub/counters");
// check label counters after scrub
expect().
statusCode(200).and().
body("'" + ReservedLabels.INBOX.getId() + "'.total",
equalTo(labels.get(ReservedLabels.INBOX.getId()).getCounters().getTotalMessages().intValue())).
body("'" + ReservedLabels.INBOX.getId() + "'.unread",
equalTo(labels.get(ReservedLabels.INBOX.getId()).getCounters().getUnreadMessages().intValue())).
body("'" + ReservedLabels.NOTIFICATIONS.getId() + "'.total",
equalTo(labels.get(ReservedLabels.NOTIFICATIONS.getId()).getCounters().getTotalMessages().intValue())).
body("'" + ReservedLabels.NOTIFICATIONS.getId() + "'.unread",
equalTo(labels.get(ReservedLabels.NOTIFICATIONS.getId()).getCounters().getUnreadMessages().intValue())).
body("'" + ReservedLabels.SPAM.getId() + "'.total",
equalTo(labels.get(ReservedLabels.SPAM.getId()).getCounters().getTotalMessages().intValue())).
body("'" + ReservedLabels.SPAM.getId() + "'.unread",
equalTo(labels.get(ReservedLabels.SPAM.getId()).getCounters().getUnreadMessages().intValue())).
body("'" + ReservedLabels.TRASH.getId() + "'.total",
equalTo(labels.get(ReservedLabels.TRASH.getId()).getCounters().getTotalMessages().intValue())).
body("'" + ReservedLabels.TRASH.getId() + "'.unread",
equalTo(labels.get(ReservedLabels.TRASH.getId()).getCounters().getUnreadMessages().intValue())).
when().
get(REST_PATH + "/mailbox?metadata=true").asString();
// scrub label indexes
expect().