JAMES-2286 more tests for remove
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/04c301f4 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/04c301f4 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/04c301f4 Branch: refs/heads/master Commit: 04c301f4066f12e47ce24f95ecbd76c8056e4d26 Parents: 409dd0d Author: benwa <[email protected]> Authored: Mon Jan 15 10:08:31 2018 +0700 Committer: Matthieu Baechler <[email protected]> Committed: Tue Jan 16 16:34:46 2018 +0100 ---------------------------------------------------------------------- .../mailrepository/MailRepositoryContract.java | 85 ++++++++++++++++++++ 1 file changed, 85 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/04c301f4/server/mailrepository/mailrepository-api/src/test/java/org/apache/james/mailrepository/MailRepositoryContract.java ---------------------------------------------------------------------- diff --git a/server/mailrepository/mailrepository-api/src/test/java/org/apache/james/mailrepository/MailRepositoryContract.java b/server/mailrepository/mailrepository-api/src/test/java/org/apache/james/mailrepository/MailRepositoryContract.java index 92cd111..1a82191 100644 --- a/server/mailrepository/mailrepository-api/src/test/java/org/apache/james/mailrepository/MailRepositoryContract.java +++ b/server/mailrepository/mailrepository-api/src/test/java/org/apache/james/mailrepository/MailRepositoryContract.java @@ -116,6 +116,91 @@ public interface MailRepositoryContract { } @Test + default void retrieveShouldReturnNullWhenKeyWasRemoved() throws Exception { + MailRepository testee = retrieveRepository(); + String key = "mail1"; + testee.store(createMail(key)); + + testee.remove(key); + + assertThat(retrieveRepository().list()).doesNotContain(key); + assertThat(retrieveRepository().retrieve(key)).isNull(); + } + + @Test + default void removeShouldnotAffectUnrelatedMails() throws Exception { + MailRepository testee = retrieveRepository(); + String key1 = "mail1"; + testee.store(createMail(key1)); + String key2 = "mail2"; + testee.store(createMail(key2)); + + testee.remove(key1); + + assertThat(retrieveRepository().list()).contains(key2); + } + + @Test + default void removedMailsShouldNotBeListed() throws Exception { + MailRepository testee = retrieveRepository(); + + String key1 = "mail1"; + String key2 = "mail2"; + String key3 = "mail3"; + Mail mail1 = createMail(key1); + Mail mail2 = createMail(key2); + Mail mail3 = createMail(key3); + retrieveRepository().store(mail1); + retrieveRepository().store(mail2); + retrieveRepository().store(mail3); + + testee.remove(ImmutableList.of(mail1, mail3)); + + assertThat(retrieveRepository().list()) + .contains(key2) + .doesNotContain(key1, key3); + } + + @Test + default void removedMailShouldNotBeListed() throws Exception { + MailRepository testee = retrieveRepository(); + + String key1 = "mail1"; + String key2 = "mail2"; + String key3 = "mail3"; + Mail mail1 = createMail(key1); + Mail mail2 = createMail(key2); + Mail mail3 = createMail(key3); + retrieveRepository().store(mail1); + retrieveRepository().store(mail2); + retrieveRepository().store(mail3); + + testee.remove(mail2); + + assertThat(retrieveRepository().list()) + .contains(key1, key3) + .doesNotContain(key2); + } + + @Test + default void removeShouldHaveNoEffectForUnknownMails() throws Exception { + MailRepository testee = retrieveRepository(); + + testee.remove(ImmutableList.of(createMail("unknown"))); + + assertThat(retrieveRepository().list()).isEmpty(); + } + + @Test + default void removeShouldHaveNoEffectForUnknownMail() throws Exception { + MailRepository testee = retrieveRepository(); + + testee.remove(createMail("unknown")); + + assertThat(retrieveRepository().list()).isEmpty(); + } + + @Test default void listShouldReturnStoredMailsKeys() throws Exception { MailRepository testee = retrieveRepository(); String key1 = "mail1"; --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
