@Override public SerializableQuotaValue<QuotaSize> getGlobalMaxStorage() throws MailboxException { return SerializableQuotaValue.valueOf(maxQuotaManager.getGlobalMaxStorage()); }
@Override public SerializableQuotaValue<QuotaCount> getGlobalMaxMessageCount() throws MailboxException { return SerializableQuotaValue.valueOf(maxQuotaManager.getGlobalMaxMessage()); }
@Override public SerializableQuotaValue<QuotaCount> getMaxMessageCount(String quotaRoot) throws MailboxException { return SerializableQuotaValue.valueOf(maxQuotaManager.getMaxMessage(quotaRootResolver.fromString(quotaRoot))); }
@Override public SerializableQuotaValue<QuotaSize> getMaxStorage(String quotaRoot) throws MailboxException { return SerializableQuotaValue.valueOf(maxQuotaManager.getMaxStorage(quotaRootResolver.fromString(quotaRoot))); }
@Test public void getMailboxesShouldReturnMaxMessageQuotasForInboxWhenSet() throws Exception { quotaProbe.setGlobalMaxMessageCount(SerializableQuotaValue.valueOf(Optional.of(QuotaCount.count(43)))); String mailboxId = mailboxProbe.createMailbox(MailboxConstants.USER_NAMESPACE, ALICE, DefaultMailboxes.INBOX).serialize(); given() .header("Authorization", accessToken.serialize()) .body("[[\"getMailboxes\", {\"ids\": [\"" + mailboxId + "\"]}, \"#0\"]]") .when() .post("/jmap") .then() .statusCode(200) .body(NAME, equalTo("mailboxes")) .body(ARGUMENTS + ".list", hasSize(1)) .body(FIRST_MAILBOX + ".quotas['#private&alice@domain.tld']['MESSAGE'].max", equalTo(43)); }
@Test public void getMailboxesShouldReturnMaxStorageQuotasForInboxWhenSet() throws Exception { quotaProbe.setGlobalMaxStorage(SerializableQuotaValue.valueOf(Optional.of(QuotaSize.size(42)))); String mailboxId = mailboxProbe.createMailbox(MailboxConstants.USER_NAMESPACE, ALICE, DefaultMailboxes.INBOX).serialize(); given() .header("Authorization", accessToken.serialize()) .body("[[\"getMailboxes\", {\"ids\": [\"" + mailboxId + "\"]}, \"#0\"]]") .when() .post("/jmap") .then() .statusCode(200) .body(NAME, equalTo("mailboxes")) .body(ARGUMENTS + ".list", hasSize(1)) .body(FIRST_MAILBOX + ".quotas['#private&alice@domain.tld']['STORAGE'].max", equalTo(42)); }
@Test public void getMailboxesShouldDisplayDifferentMaxQuotaPerMailboxWhenSet() throws Exception { String mailboxId = mailboxProbe.createMailbox(MailboxConstants.USER_NAMESPACE, ALICE, DefaultMailboxes.INBOX).serialize(); String sharedMailboxName = "BobShared"; MailboxId sharedMailboxId = mailboxProbe.createMailbox(MailboxConstants.USER_NAMESPACE, BOB, sharedMailboxName); MailboxPath bobMailboxPath = MailboxPath.forUser(BOB, sharedMailboxName); aclProbe.replaceRights(bobMailboxPath, ALICE, new Rfc4314Rights(Right.Lookup, Right.Read)); quotaProbe.setMaxMessageCount("#private&alice@domain.tld", SerializableQuotaValue.valueOf(Optional.of(QuotaCount.count(42)))); quotaProbe.setMaxMessageCount("#private&bob@domain.tld", SerializableQuotaValue.valueOf(Optional.of(QuotaCount.count(43)))); given() .header("Authorization", accessToken.serialize()) .body("[[\"getMailboxes\", {\"ids\": [\"" + mailboxId + "\",\"" + sharedMailboxId.serialize() + "\"]}, \"#0\"]]") .when() .post("/jmap") .then() .statusCode(200) .body(NAME, equalTo("mailboxes")) .body(ARGUMENTS + ".list", hasSize(2)) .body(FIRST_MAILBOX + ".quotas['#private&alice@domain.tld']['MESSAGE'].max", equalTo(42)) .body(SECOND_MAILBOX + ".quotas['#private&bob@domain.tld']['MESSAGE'].max", equalTo(43)); }
QuotaProbe quotaProbe = jmapServer.getProbe(QuotaProbesImpl.class); String inboxQuotaRoot = quotaProbe.getQuotaRoot("#private", USERNAME, DefaultMailboxes.INBOX); quotaProbe.setMaxStorage(inboxQuotaRoot, SerializableQuotaValue.valueOf(Optional.of(QuotaSize.size(100))));
quotaProbe.setMaxStorage(inboxQuotaRoot, SerializableQuotaValue.valueOf(Optional.of(QuotaSize.size(100))));
QuotaProbe quotaProbe = jmapServer.getProbe(QuotaProbesImpl.class); String inboxQuotaRoot = quotaProbe.getQuotaRoot("#private", USERNAME, DefaultMailboxes.INBOX); quotaProbe.setMaxStorage(inboxQuotaRoot, SerializableQuotaValue.valueOf(Optional.of(QuotaSize.size(100))));
QuotaProbe quotaProbe = jmapServer.getProbe(QuotaProbesImpl.class); String inboxQuotaRoot = quotaProbe.getQuotaRoot("#private", USERNAME, DefaultMailboxes.INBOX); quotaProbe.setMaxStorage(inboxQuotaRoot, SerializableQuotaValue.valueOf(Optional.of(QuotaSize.size(100))));