public JPAMailbox(MailboxPath path, long uidValidity) { this.name = path.getName(); this.user = path.getUser(); this.namespace = path.getNamespace(); this.uidValidity = uidValidity; }
private String constructEscapedRegexForMailboxNameMatching(MailboxPath path) { return Collections .list(new StringTokenizer(path.getName(), WILDCARD, true)) .stream() .map(this::tokenToPatternPart) .collect(Collectors.joining()); }
private UDTValue buildUDTFromMailboxPath(MailboxPath path) { return typesProvider.getDefinedUserType(CassandraMailboxPathRegisterTable.MAILBOX_PATH) .newValue() .setString(CassandraMailboxPathRegisterTable.MailboxPath.NAMESPACE, path.getNamespace()) .setString(CassandraMailboxPathRegisterTable.MailboxPath.USER, path.getUser()) .setString(CassandraMailboxPathRegisterTable.MailboxPath.NAME, path.getName()); }
@Override public List<Mailbox> findMailboxWithPathLike(MailboxPath path) throws MailboxException { final String regex = path.getName().replace("%", ".*"); return mailboxesByPath.values() .stream() .filter(mailbox -> mailboxMatchesRegex(mailbox, path, regex)) .map(SimpleMailbox::new) .collect(Guavate.toImmutableList()); }
public CompletableFuture<Void> updatePath(CassandraId mailboxId, MailboxPath mailboxPath) { return executor.executeVoid(updateStatement.bind() .setUUID(ID, mailboxId.asUuid()) .setString(NAME, mailboxPath.getName()) .setUDTValue(MAILBOX_BASE, mailboxBaseTupleUtil.createMailboxBaseUDT(mailboxPath.getNamespace(), mailboxPath.getUser()))); }
@Test public void notTrueScriptShouldWork() throws Exception { prepareTestUsingScript("org/apache/james/transport/mailets/delivery/notTrue.script"); FakeMail mail = createMail(); testee.service(mail); assertThat(mail.getAttribute(MailStore.DELIVERY_PATH_PREFIX + LOCAL_PART)).isEqualTo(expressMailboxNameWithSlash(NOT_SELECTED_MAILBOX.getName())); }
@Override public CompletableFuture<Boolean> save(MailboxPath mailboxPath, CassandraId mailboxId) { return cassandraAsyncExecutor.executeReturnApplied(insert.bind() .setUDTValue(NAMESPACE_AND_USER, mailboxBaseTupleUtil.createMailboxBaseUDT(mailboxPath.getNamespace(), mailboxPath.getUser())) .setString(MAILBOX_NAME, mailboxPath.getName()) .setUUID(MAILBOX_ID, mailboxId.asUuid())); }
@Test public void stopScriptShouldWork() throws Exception { prepareTestUsingScript("org/apache/james/transport/mailets/delivery/stop.script"); FakeMail mail = createMail(); testee.service(mail); assertThat(mail.getAttribute(MailStore.DELIVERY_PATH_PREFIX + LOCAL_PART)).isEqualTo(expressMailboxNameWithSlash(INBOX.getName())); }
@Test void updateShouldChangeMailboxPath() { testee.save(mailbox1).join(); testee.updatePath(CASSANDRA_ID_1, NEW_MAILBOX_PATH).join(); mailbox1.setNamespace(NEW_MAILBOX_PATH.getNamespace()); mailbox1.setUser(NEW_MAILBOX_PATH.getUser()); mailbox1.setName(NEW_MAILBOX_PATH.getName()); Optional<SimpleMailbox> readMailbox = testee.retrieveMailbox(CASSANDRA_ID_1).join(); assertThat(readMailbox.isPresent()).isTrue(); assertThat(readMailbox.get()).isEqualToComparingFieldByField(mailbox1); } }
@Test public void headerScriptShouldWorkIfHeaderIsAbsent() throws Exception { prepareTestUsingScript("org/apache/james/transport/mailets/delivery/header.script"); FakeMail mail = createMail(); testee.service(mail); assertThat(mail.getAttribute(MailStore.DELIVERY_PATH_PREFIX + LOCAL_PART)).isEqualTo(expressMailboxNameWithSlash(NOT_SELECTED_MAILBOX.getName())); }
@Test public void bodyContentShouldNotMatchWhenWrongContentType() throws Exception { prepareTestUsingScript("org/apache/james/transport/mailets/delivery/bodyContentWrongContentType.script"); FakeMail mail = createMail(); testee.service(mail); assertThat(mail.getAttribute(MailStore.DELIVERY_PATH_PREFIX + LOCAL_PART)).isEqualTo(expressMailboxNameWithSlash(NOT_SELECTED_MAILBOX.getName())); }
@Test public void sizeUnderScriptShouldWorkIfOverLimit() throws Exception { prepareTestUsingScript("org/apache/james/transport/mailets/delivery/sizeUnder.script"); FakeMail mail = createMail(); mail.setMessageSize(1000); testee.service(mail); assertThat(mail.getAttribute(MailStore.DELIVERY_PATH_PREFIX + LOCAL_PART)).isEqualTo(expressMailboxNameWithSlash(NOT_SELECTED_MAILBOX.getName())); }
@Test public void addressDomainShouldOnlyMatchLocalPart() throws Exception { prepareTestUsingScript("org/apache/james/transport/mailets/delivery/addressDomain.script"); FakeMail mail = createMailWithSubjectAndHeaders("Default", new Header("Cc", "source@domain.org")); testee.service(mail); assertThat(mail.getAttribute(MailStore.DELIVERY_PATH_PREFIX + LOCAL_PART)).isEqualTo(expressMailboxNameWithSlash(NOT_SELECTED_MAILBOX.getName())); }
@Test public void addressCcAllShouldNotMatchOtherDomain() throws Exception { prepareTestUsingScript("org/apache/james/transport/mailets/delivery/addressAllCc.script"); FakeMail mail = createMailWithSubjectAndHeaders("Default", new Header("Cc", "source@domain.org")); testee.service(mail); assertThat(mail.getAttribute(MailStore.DELIVERY_PATH_PREFIX + LOCAL_PART)).isEqualTo(expressMailboxNameWithSlash(NOT_SELECTED_MAILBOX.getName())); }
@Test public void addressFromAllShouldNotMatchOtherAddress() throws Exception { prepareTestUsingScript("org/apache/james/transport/mailets/delivery/addressAllFrom.script"); FakeMail mail = createMailWithSubjectAndHeaders("Default", new Header("From", "source2@domain.com")); testee.service(mail); assertThat(mail.getAttribute(MailStore.DELIVERY_PATH_PREFIX + LOCAL_PART)).isEqualTo(expressMailboxNameWithSlash(NOT_SELECTED_MAILBOX.getName())); }
@Test public void addressToAllShouldNotMatchOtherAddress() throws Exception { prepareTestUsingScript("org/apache/james/transport/mailets/delivery/addressAllTo.script"); FakeMail mail = createMailWithSubjectAndHeaders("Default", new Header("To", "source2@domain.com")); testee.service(mail); assertThat(mail.getAttribute(MailStore.DELIVERY_PATH_PREFIX + LOCAL_PART)).isEqualTo(expressMailboxNameWithSlash(NOT_SELECTED_MAILBOX.getName())); }
@Test public void addressResent_FromAllShouldNotMatchOtherAddress() throws Exception { prepareTestUsingScript("org/apache/james/transport/mailets/delivery/addressAllResend-From.script"); FakeMail mail = createMailWithSubjectAndHeaders("Default", new Header("Resend-From", "source2@domain.com")); testee.service(mail); assertThat(mail.getAttribute(MailStore.DELIVERY_PATH_PREFIX + LOCAL_PART)).isEqualTo(expressMailboxNameWithSlash(NOT_SELECTED_MAILBOX.getName())); }
@Test public void addressResent_FromAllShouldNotMatchOtherDomain() throws Exception { prepareTestUsingScript("org/apache/james/transport/mailets/delivery/addressAllResend-From.script"); FakeMail mail = createMailWithSubjectAndHeaders("Default", new Header("Resend-From", "source@domain.org")); testee.service(mail); assertThat(mail.getAttribute(MailStore.DELIVERY_PATH_PREFIX + LOCAL_PART)).isEqualTo(expressMailboxNameWithSlash(NOT_SELECTED_MAILBOX.getName())); }
@Test public void addressResent_ToAllShouldNotMatchOtherDomain() throws Exception { prepareTestUsingScript("org/apache/james/transport/mailets/delivery/addressAllResend-To.script"); FakeMail mail = createMailWithSubjectAndHeaders("Default", new Header("Resend-To", "source@domain.org")); testee.service(mail); assertThat(mail.getAttribute(MailStore.DELIVERY_PATH_PREFIX + LOCAL_PART)).isEqualTo(expressMailboxNameWithSlash(NOT_SELECTED_MAILBOX.getName())); }
@Test public void envelopeFromShouldWork() throws Exception { prepareTestUsingScript("org/apache/james/transport/mailets/delivery/envelopeFrom.script"); FakeMail mail = createMailWithSubjectAndHeaders("Default", new Header("From", "source@domain.com")); testee.service(mail); assertThat(mail.getAttribute(MailStore.DELIVERY_PATH_PREFIX + LOCAL_PART)).isEqualTo(expressMailboxNameWithSlash(SELECTED_MAILBOX.getName())); }