JAMES-2341 Move header setting logic to SpamAssassinResult This moves intends to: - Makes builder usage in SpamAssassinInvoker more fluent (one - liner) - Makes SpamAssassinResult self descriptive: all the information needed to read it is now self contained.
In the end, it allow headers generation to be fully handled by SpamAssassinResult Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/37c55399 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/37c55399 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/37c55399 Branch: refs/heads/master Commit: 37c5539907b708cf93729eac221dcd5cb2b4a6a6 Parents: 3b99714 Author: benwa <[email protected]> Authored: Tue Mar 6 09:18:29 2018 +0700 Committer: Antoine Duprat <[email protected]> Committed: Thu Mar 8 10:36:36 2018 +0100 ---------------------------------------------------------------------- .../james/util/scanner/SpamAssassinInvoker.java | 30 ++++----- .../james/util/scanner/SpamAssassinResult.java | 38 ++++++++---- .../util/scanner/SpamAssassinInvokerTest.java | 12 ++-- .../util/scanner/SpamAssassinResultTest.java | 65 ++++++++++++++------ .../transport/mailets/SpamAssassinTest.java | 18 +++--- .../transport/matchers/IsMarkedAsSpam.java | 4 +- .../transport/mailets/SpamAssassinTest.java | 8 +-- .../smtpserver/SpamAssassinHandlerTest.java | 14 ++--- 8 files changed, 111 insertions(+), 78 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/37c55399/server/container/util/src/main/java/org/apache/james/util/scanner/SpamAssassinInvoker.java ---------------------------------------------------------------------- diff --git a/server/container/util/src/main/java/org/apache/james/util/scanner/SpamAssassinInvoker.java b/server/container/util/src/main/java/org/apache/james/util/scanner/SpamAssassinInvoker.java index 22a1431..0bcae3f 100644 --- a/server/container/util/src/main/java/org/apache/james/util/scanner/SpamAssassinInvoker.java +++ b/server/container/util/src/main/java/org/apache/james/util/scanner/SpamAssassinInvoker.java @@ -47,12 +47,6 @@ import com.google.common.collect.Lists; public class SpamAssassinInvoker { private static final Logger LOGGER = LoggerFactory.getLogger(SpamAssassinInvoker.class); - /** The mail attribute under which the status get stored */ - public static final String STATUS_MAIL_ATTRIBUTE_NAME = "org.apache.james.spamassassin.status"; - - /** The mail attribute under which the flag get stored */ - public static final String FLAG_MAIL_ATTRIBUTE_NAME = "org.apache.james.spamassassin.flag"; - private static final int SPAM_INDEX = 1; private static final int HITS_INDEX = 3; private static final int REQUIRED_HITS_INDEX = 5; @@ -130,21 +124,19 @@ public class SpamAssassinInvoker { private SpamAssassinResult processSpam(String line) { List<String> elements = Lists.newArrayList(Splitter.on(' ').split(line)); - boolean spam = spam(elements.get(SPAM_INDEX)); - String hits = elements.get(HITS_INDEX); - String required = elements.get(REQUIRED_HITS_INDEX); - SpamAssassinResult.Builder builder = SpamAssassinResult.builder() - .hits(hits) - .requiredHits(required); - - if (spam) { - builder.putHeader(FLAG_MAIL_ATTRIBUTE_NAME, "YES"); - builder.putHeader(STATUS_MAIL_ATTRIBUTE_NAME, "Yes, hits=" + hits + " required=" + required); + + return builderFrom(elements) + .hits(elements.get(HITS_INDEX)) + .requiredHits(elements.get(REQUIRED_HITS_INDEX)) + .build(); + } + + private SpamAssassinResult.Builder builderFrom(List<String> elements) { + if (spam(elements.get(SPAM_INDEX))) { + return SpamAssassinResult.asSpam(); } else { - builder.putHeader(FLAG_MAIL_ATTRIBUTE_NAME, "NO"); - builder.putHeader(STATUS_MAIL_ATTRIBUTE_NAME, "No, hits=" + hits + " required=" + required); + return SpamAssassinResult.asHam(); } - return builder.build(); } private boolean spam(String string) { http://git-wip-us.apache.org/repos/asf/james-project/blob/37c55399/server/container/util/src/main/java/org/apache/james/util/scanner/SpamAssassinResult.java ---------------------------------------------------------------------- diff --git a/server/container/util/src/main/java/org/apache/james/util/scanner/SpamAssassinResult.java b/server/container/util/src/main/java/org/apache/james/util/scanner/SpamAssassinResult.java index 43d4dff..a48967f 100644 --- a/server/container/util/src/main/java/org/apache/james/util/scanner/SpamAssassinResult.java +++ b/server/container/util/src/main/java/org/apache/james/util/scanner/SpamAssassinResult.java @@ -24,28 +24,37 @@ import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableMap; public class SpamAssassinResult { + /** The mail attribute under which the status get stored */ + public static final String STATUS_MAIL_ATTRIBUTE_NAME = "org.apache.james.spamassassin.status"; - private static final String NO_RESULT = "?"; + /** The mail attribute under which the flag get stored */ + public static final String FLAG_MAIL_ATTRIBUTE_NAME = "org.apache.james.spamassassin.flag"; + + public static final String NO_RESULT = "?"; public static SpamAssassinResult empty() { - return new Builder() + return asHam() .hits(NO_RESULT) .requiredHits(NO_RESULT) .build(); } - public static Builder builder() { - return new Builder(); + public static Builder asSpam() { + return new Builder(true); + } + + public static Builder asHam() { + return new Builder(false); } public static class Builder { private String hits; private String requiredHits; - private ImmutableMap.Builder<String, String> headersAsAttribute; + private final boolean isSpam; - private Builder() { - headersAsAttribute = ImmutableMap.builder(); + private Builder(boolean isSpam) { + this.isSpam = isSpam; } public Builder hits(String hits) { @@ -58,14 +67,19 @@ public class SpamAssassinResult { return this; } - public Builder putHeader(String name, String value) { - this.headersAsAttribute.put(name, value); - return this; - } - public SpamAssassinResult build() { Preconditions.checkNotNull(hits); Preconditions.checkNotNull(requiredHits); + + ImmutableMap.Builder<String, String> headersAsAttribute = ImmutableMap.builder(); + if (isSpam) { + headersAsAttribute.put(FLAG_MAIL_ATTRIBUTE_NAME, "YES"); + headersAsAttribute.put(STATUS_MAIL_ATTRIBUTE_NAME, "Yes, hits=" + hits + " required=" + requiredHits); + } else { + headersAsAttribute.put(FLAG_MAIL_ATTRIBUTE_NAME, "NO"); + headersAsAttribute.put(STATUS_MAIL_ATTRIBUTE_NAME, "No, hits=" + hits + " required=" + requiredHits); + } + return new SpamAssassinResult(hits, requiredHits, headersAsAttribute.build()); } } http://git-wip-us.apache.org/repos/asf/james-project/blob/37c55399/server/container/util/src/test/java/org/apache/james/util/scanner/SpamAssassinInvokerTest.java ---------------------------------------------------------------------- diff --git a/server/container/util/src/test/java/org/apache/james/util/scanner/SpamAssassinInvokerTest.java b/server/container/util/src/test/java/org/apache/james/util/scanner/SpamAssassinInvokerTest.java index 4dbd72d..6d6f9dc 100644 --- a/server/container/util/src/test/java/org/apache/james/util/scanner/SpamAssassinInvokerTest.java +++ b/server/container/util/src/test/java/org/apache/james/util/scanner/SpamAssassinInvokerTest.java @@ -34,7 +34,6 @@ public class SpamAssassinInvokerTest { private SpamAssassin spamAssassin; private SpamAssassinInvoker testee; - @BeforeEach public void setup(SpamAssassin spamAssassin) throws Exception { this.spamAssassin = spamAssassin; @@ -47,8 +46,7 @@ public class SpamAssassinInvokerTest { ClassLoader.getSystemResourceAsStream("eml/spam.eml")); SpamAssassinResult result = testee.scanMail(mimeMessage, "any@james"); - // The result is varying from 0.4 to 0.0 - assertThat(result.getHits()).startsWith("0."); + assertThat(result.getHits()).isNotEqualTo(SpamAssassinResult.NO_RESULT); } @Test @@ -70,7 +68,7 @@ public class SpamAssassinInvokerTest { } @Test - public void scanMailShouldMarkHasSpamWhenKnownHasSpam() throws Exception { + public void scanMailShouldMarkAsSpamWhenKnownAsSpam() throws Exception { spamAssassin.train("user"); MimeMessage mimeMessage = MimeMessageUtil.mimeMessageFromStream( @@ -78,13 +76,13 @@ public class SpamAssassinInvokerTest { SpamAssassinResult result = testee.scanMail(mimeMessage, "any@james"); - assertThat(result.getHeadersAsAttribute().get(SpamAssassinInvoker.FLAG_MAIL_ATTRIBUTE_NAME)).isEqualTo("YES"); + assertThat(result.getHeadersAsAttribute().get(SpamAssassinResult.FLAG_MAIL_ATTRIBUTE_NAME)).isEqualTo("YES"); } @Test public void learnAsSpamShouldReturnTrueWhenLearningWorks() throws Exception { MimeMessage mimeMessage = MimeMessageUtil.mimeMessageFromStream( - ClassLoader.getSystemResourceAsStream("spamassassin_db/spam/spam1")); + ClassLoader.getSystemResourceAsStream("spamassassin_db/spam/spam2")); boolean result = testee.learnAsSpam(mimeMessage.getInputStream(), "any@james"); @@ -100,6 +98,6 @@ public class SpamAssassinInvokerTest { SpamAssassinResult result = testee.scanMail(mimeMessage, "any@james"); - assertThat(result.getHeadersAsAttribute().get(SpamAssassinInvoker.FLAG_MAIL_ATTRIBUTE_NAME)).isEqualTo("YES"); + assertThat(result.getHeadersAsAttribute().get(SpamAssassinResult.FLAG_MAIL_ATTRIBUTE_NAME)).isEqualTo("YES"); } } http://git-wip-us.apache.org/repos/asf/james-project/blob/37c55399/server/container/util/src/test/java/org/apache/james/util/scanner/SpamAssassinResultTest.java ---------------------------------------------------------------------- diff --git a/server/container/util/src/test/java/org/apache/james/util/scanner/SpamAssassinResultTest.java b/server/container/util/src/test/java/org/apache/james/util/scanner/SpamAssassinResultTest.java index 1fe3dc2..0b67589 100644 --- a/server/container/util/src/test/java/org/apache/james/util/scanner/SpamAssassinResultTest.java +++ b/server/container/util/src/test/java/org/apache/james/util/scanner/SpamAssassinResultTest.java @@ -21,47 +21,76 @@ package org.apache.james.util.scanner; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; -import org.assertj.core.data.MapEntry; +import org.assertj.core.api.JUnitSoftAssertions; +import org.junit.Rule; import org.junit.Test; +import com.google.common.collect.ImmutableMap; + public class SpamAssassinResultTest { + @Rule + public JUnitSoftAssertions softly = new JUnitSoftAssertions(); + @Test public void buildShouldThrowWhenHitsIsNotGiven() { - assertThatThrownBy(() -> SpamAssassinResult.builder() + assertThatThrownBy(() -> SpamAssassinResult.asSpam() + .requiredHits("4.0") .build()) .isInstanceOf(NullPointerException.class); - } @Test public void buildShouldThrowWhenRequiredHitsIsNotGiven() { - assertThatThrownBy(() -> SpamAssassinResult.builder() - .hits("1.0") + assertThatThrownBy(() -> SpamAssassinResult.asSpam() + .hits("4.0") .build()) .isInstanceOf(NullPointerException.class); - } @Test public void buildShouldWork() { String hits = "1.1"; String requiredHits = "5.0"; - String name = "header"; - String value = "value"; - String name2 = "header2"; - String value2 = "value2"; - SpamAssassinResult spamAssassinResult = SpamAssassinResult.builder() + + SpamAssassinResult spamAssassinResult = SpamAssassinResult.asSpam() + .hits(hits) + .requiredHits(requiredHits) + .build(); + + softly.assertThat(spamAssassinResult.getHits()).isEqualTo(hits); + softly.assertThat(spamAssassinResult.getRequiredHits()).isEqualTo(requiredHits); + softly.assertThat(spamAssassinResult.getHeadersAsAttribute()) + .containsAllEntriesOf(ImmutableMap.of( + SpamAssassinResult.FLAG_MAIL_ATTRIBUTE_NAME, "YES", + SpamAssassinResult.STATUS_MAIL_ATTRIBUTE_NAME, "Yes, hits=1.1 required=5.0")); + } + + @Test + public void headersAsAttributeShouldContainSpamHeaderWithYESValueWhenBuiltAsSpam() { + String hits = "1.1"; + String requiredHits = "5.0"; + + SpamAssassinResult spamAssassinResult = SpamAssassinResult.asSpam() + .hits(hits) + .requiredHits(requiredHits) + .build(); + + assertThat(spamAssassinResult.getHeadersAsAttribute()) + .containsEntry(SpamAssassinResult.FLAG_MAIL_ATTRIBUTE_NAME, "YES"); + } + + @Test + public void headersAsAttributeShouldContainSpamHeaderWithNOValueWhenBuiltAsHam() { + String hits = "1.1"; + String requiredHits = "5.0"; + + SpamAssassinResult spamAssassinResult = SpamAssassinResult.asHam() .hits(hits) .requiredHits(requiredHits) - .putHeader(name, value) - .putHeader(name2, value2) .build(); - assertThat(spamAssassinResult.getHits()).isEqualTo(hits); - assertThat(spamAssassinResult.getRequiredHits()).isEqualTo(requiredHits); - assertThat(spamAssassinResult.getHeadersAsAttribute()).containsOnly( - MapEntry.entry(name, value), - MapEntry.entry(name2, value2)); + assertThat(spamAssassinResult.getHeadersAsAttribute()) + .containsEntry(SpamAssassinResult.FLAG_MAIL_ATTRIBUTE_NAME, "NO"); } } http://git-wip-us.apache.org/repos/asf/james-project/blob/37c55399/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/SpamAssassinTest.java ---------------------------------------------------------------------- diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/SpamAssassinTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/SpamAssassinTest.java index bd1d74b..3eb88bc 100644 --- a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/SpamAssassinTest.java +++ b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/SpamAssassinTest.java @@ -40,7 +40,7 @@ import org.apache.james.mailets.configuration.ProcessorConfiguration; import org.apache.james.transport.matchers.All; import org.apache.james.util.docker.Images; import org.apache.james.util.docker.SwarmGenericContainer; -import org.apache.james.util.scanner.SpamAssassinInvoker; +import org.apache.james.util.scanner.SpamAssassinResult; import org.apache.james.utils.DataProbeImpl; import org.apache.james.utils.IMAPMessageReader; import org.apache.james.utils.SMTPMessageSender; @@ -82,8 +82,8 @@ public class SpamAssassinTest { .matcher(All.class) .mailet(MailAttributesToMimeHeaders.class) .addProperty("simplemapping", - SpamAssassinInvoker.FLAG_MAIL_ATTRIBUTE_NAME + ";" + SpamAssassinInvoker.FLAG_MAIL_ATTRIBUTE_NAME + "," + - SpamAssassinInvoker.STATUS_MAIL_ATTRIBUTE_NAME + ";" + SpamAssassinInvoker.STATUS_MAIL_ATTRIBUTE_NAME)) + SpamAssassinResult.FLAG_MAIL_ATTRIBUTE_NAME + ";" + SpamAssassinResult.FLAG_MAIL_ATTRIBUTE_NAME + "," + + SpamAssassinResult.STATUS_MAIL_ATTRIBUTE_NAME + ";" + SpamAssassinResult.STATUS_MAIL_ATTRIBUTE_NAME)) .addMailetsFrom(CommonProcessors.deliverOnlyTransport())); jamesServer = TemporaryJamesServer.builder() @@ -115,8 +115,8 @@ public class SpamAssassinTest { assertThat(messageReader.readFirstMessageHeaders()) .contains( - SpamAssassinInvoker.FLAG_MAIL_ATTRIBUTE_NAME, - SpamAssassinInvoker.STATUS_MAIL_ATTRIBUTE_NAME); + SpamAssassinResult.FLAG_MAIL_ATTRIBUTE_NAME, + SpamAssassinResult.STATUS_MAIL_ATTRIBUTE_NAME); } @Test @@ -131,8 +131,8 @@ public class SpamAssassinTest { .awaitMessage(awaitAtMostOneMinute); String receivedHeaders = messageReader.readFirstMessageHeaders(); - assertThat(receivedHeaders).contains(SpamAssassinInvoker.FLAG_MAIL_ATTRIBUTE_NAME + ": YES"); - assertThat(receivedHeaders).contains(SpamAssassinInvoker.STATUS_MAIL_ATTRIBUTE_NAME + ": Yes"); + assertThat(receivedHeaders).contains(SpamAssassinResult.FLAG_MAIL_ATTRIBUTE_NAME + ": YES"); + assertThat(receivedHeaders).contains(SpamAssassinResult.STATUS_MAIL_ATTRIBUTE_NAME + ": Yes"); } @Test @@ -147,8 +147,8 @@ public class SpamAssassinTest { .awaitMessage(awaitAtMostOneMinute); String receivedHeaders = messageReader.readFirstMessageHeaders(); - assertThat(receivedHeaders).contains(SpamAssassinInvoker.FLAG_MAIL_ATTRIBUTE_NAME + ": NO"); - assertThat(receivedHeaders).contains(SpamAssassinInvoker.STATUS_MAIL_ATTRIBUTE_NAME + ": No"); + assertThat(receivedHeaders).contains(SpamAssassinResult.FLAG_MAIL_ATTRIBUTE_NAME + ": NO"); + assertThat(receivedHeaders).contains(SpamAssassinResult.STATUS_MAIL_ATTRIBUTE_NAME + ": No"); } private FakeMail.Builder mailWithContent(String textContent) throws MessagingException { http://git-wip-us.apache.org/repos/asf/james-project/blob/37c55399/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/IsMarkedAsSpam.java ---------------------------------------------------------------------- diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/IsMarkedAsSpam.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/IsMarkedAsSpam.java index 4faea53..f3e6db4 100644 --- a/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/IsMarkedAsSpam.java +++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/IsMarkedAsSpam.java @@ -26,7 +26,7 @@ import java.util.Locale; import javax.mail.MessagingException; import org.apache.james.core.MailAddress; -import org.apache.james.util.scanner.SpamAssassinInvoker; +import org.apache.james.util.scanner.SpamAssassinResult; import org.apache.mailet.Mail; import org.apache.mailet.base.GenericMatcher; @@ -66,7 +66,7 @@ public class IsMarkedAsSpam extends GenericMatcher { @Override public Collection<MailAddress> match(Mail mail) throws MessagingException { - Serializable attribute = mail.getAttribute(SpamAssassinInvoker.STATUS_MAIL_ATTRIBUTE_NAME); + Serializable attribute = mail.getAttribute(SpamAssassinResult.STATUS_MAIL_ATTRIBUTE_NAME); if (isMarkedAsSpam(attribute)) { return mail.getRecipients(); } http://git-wip-us.apache.org/repos/asf/james-project/blob/37c55399/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/SpamAssassinTest.java ---------------------------------------------------------------------- diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/SpamAssassinTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/SpamAssassinTest.java index af1836c..bc503de 100644 --- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/SpamAssassinTest.java +++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/SpamAssassinTest.java @@ -27,7 +27,7 @@ import javax.mail.MessagingException; import org.apache.james.core.builder.MimeMessageBuilder; import org.apache.james.user.memory.MemoryUsersRepository; import org.apache.james.util.Port; -import org.apache.james.util.scanner.SpamAssassinInvoker; +import org.apache.james.util.scanner.SpamAssassinResult; import org.apache.james.utils.MockSpamd; import org.apache.james.utils.MockSpamdTestRule; import org.apache.mailet.Mail; @@ -156,7 +156,7 @@ public class SpamAssassinTest { mailet.service(mail); assertThat(mail.getAttributeNames()) - .containsOnly(SpamAssassinInvoker.FLAG_MAIL_ATTRIBUTE_NAME, SpamAssassinInvoker.STATUS_MAIL_ATTRIBUTE_NAME); + .containsOnly(SpamAssassinResult.FLAG_MAIL_ATTRIBUTE_NAME, SpamAssassinResult.STATUS_MAIL_ATTRIBUTE_NAME); } @Test @@ -179,7 +179,7 @@ public class SpamAssassinTest { mailet.service(mail); - assertThat(mail.getAttribute(SpamAssassinInvoker.FLAG_MAIL_ATTRIBUTE_NAME)).isEqualTo("NO"); + assertThat(mail.getAttribute(SpamAssassinResult.FLAG_MAIL_ATTRIBUTE_NAME)).isEqualTo("NO"); } @Test @@ -202,7 +202,7 @@ public class SpamAssassinTest { mailet.service(mail); - assertThat(mail.getAttribute(SpamAssassinInvoker.FLAG_MAIL_ATTRIBUTE_NAME)).isEqualTo("YES"); + assertThat(mail.getAttribute(SpamAssassinResult.FLAG_MAIL_ATTRIBUTE_NAME)).isEqualTo("YES"); } @Test http://git-wip-us.apache.org/repos/asf/james-project/blob/37c55399/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SpamAssassinHandlerTest.java ---------------------------------------------------------------------- diff --git a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SpamAssassinHandlerTest.java b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SpamAssassinHandlerTest.java index 6207043..ff34d85 100644 --- a/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SpamAssassinHandlerTest.java +++ b/server/protocols/protocols-smtp/src/test/java/org/apache/james/smtpserver/SpamAssassinHandlerTest.java @@ -34,7 +34,7 @@ import org.apache.james.protocols.smtp.hook.HookReturnCode; import org.apache.james.protocols.smtp.utils.BaseFakeSMTPSession; import org.apache.james.smtpserver.fastfail.SpamAssassinHandler; import org.apache.james.smtpserver.mock.mailet.MockMail; -import org.apache.james.util.scanner.SpamAssassinInvoker; +import org.apache.james.util.scanner.SpamAssassinResult; import org.apache.james.utils.MockSpamd; import org.apache.james.utils.MockSpamdTestRule; import org.apache.mailet.Mail; @@ -120,8 +120,8 @@ public class SpamAssassinHandlerTest { HookResult response = handler.onMessage(session, mockedMail); assertEquals("Email was not rejected", response.getResult(), HookReturnCode.DECLINED); - assertEquals("email was not spam", mockedMail.getAttribute(SpamAssassinInvoker.FLAG_MAIL_ATTRIBUTE_NAME), "NO"); - assertNotNull("spam hits", mockedMail.getAttribute(SpamAssassinInvoker.STATUS_MAIL_ATTRIBUTE_NAME)); + assertEquals("email was not spam", mockedMail.getAttribute(SpamAssassinResult.FLAG_MAIL_ATTRIBUTE_NAME), "NO"); + assertNotNull("spam hits", mockedMail.getAttribute(SpamAssassinResult.STATUS_MAIL_ATTRIBUTE_NAME)); } @@ -137,8 +137,8 @@ public class SpamAssassinHandlerTest { HookResult response = handler.onMessage(session, mockedMail); assertEquals("Email was not rejected", response.getResult(), HookReturnCode.DECLINED); - assertEquals("email was spam", mockedMail.getAttribute(SpamAssassinInvoker.FLAG_MAIL_ATTRIBUTE_NAME), "YES"); - assertNotNull("spam hits", mockedMail.getAttribute(SpamAssassinInvoker.STATUS_MAIL_ATTRIBUTE_NAME)); + assertEquals("email was spam", mockedMail.getAttribute(SpamAssassinResult.FLAG_MAIL_ATTRIBUTE_NAME), "YES"); + assertNotNull("spam hits", mockedMail.getAttribute(SpamAssassinResult.STATUS_MAIL_ATTRIBUTE_NAME)); } @Test @@ -153,7 +153,7 @@ public class SpamAssassinHandlerTest { HookResult response = handler.onMessage(session, mockedMail); assertEquals("Email was rejected", response.getResult(), HookReturnCode.DENY); - assertEquals("email was spam", mockedMail.getAttribute(SpamAssassinInvoker.FLAG_MAIL_ATTRIBUTE_NAME), "YES"); - assertNotNull("spam hits", mockedMail.getAttribute(SpamAssassinInvoker.STATUS_MAIL_ATTRIBUTE_NAME)); + assertEquals("email was spam", mockedMail.getAttribute(SpamAssassinResult.FLAG_MAIL_ATTRIBUTE_NAME), "YES"); + assertNotNull("spam hits", mockedMail.getAttribute(SpamAssassinResult.STATUS_MAIL_ATTRIBUTE_NAME)); } } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
