You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ad...@apache.org on 2018/08/30 13:15:55 UTC
[13/26] james-project git commit: JAMES-2529 Factorize RECIPIENT
tests with other fields
JAMES-2529 Factorize RECIPIENT tests with other fields
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/c6a6e976
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/c6a6e976
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/c6a6e976
Branch: refs/heads/master
Commit: c6a6e9769bb0953fdb3e5781d865296dd700c12c
Parents: 8b1c70a
Author: Benoit Tellier <bt...@linagora.com>
Authored: Thu Aug 30 13:57:16 2018 +0700
Committer: Antoine Duprat <ad...@linagora.com>
Committed: Thu Aug 30 15:07:03 2018 +0200
----------------------------------------------------------------------
.../jmap/mailet/filter/JMAPFilteringTest.java | 322 ++++++-------------
1 file changed, 106 insertions(+), 216 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/c6a6e976/server/protocols/jmap/src/test/java/org/apache/james/jmap/mailet/filter/JMAPFilteringTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/mailet/filter/JMAPFilteringTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/mailet/filter/JMAPFilteringTest.java
index 29d6bca..0aed4e4 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/mailet/filter/JMAPFilteringTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/mailet/filter/JMAPFilteringTest.java
@@ -31,7 +31,6 @@ import static org.apache.james.jmap.api.filtering.Rule.Condition.Field.SUBJECT;
import static org.apache.james.jmap.api.filtering.Rule.Condition.Field.TO;
import static org.apache.james.jmap.mailet.filter.ActionApplier.DELIVERY_PATH_PREFIX;
import static org.apache.james.jmap.mailet.filter.JMAPFilteringFixture.BOU;
-import static org.apache.james.jmap.mailet.filter.JMAPFilteringFixture.CC_HEADER;
import static org.apache.james.jmap.mailet.filter.JMAPFilteringFixture.EMPTY;
import static org.apache.james.jmap.mailet.filter.JMAPFilteringFixture.FRED_MARTIN_FULLNAME;
import static org.apache.james.jmap.mailet.filter.JMAPFilteringFixture.FRED_MARTIN_FULL_SCRAMBLED_ADDRESS;
@@ -40,7 +39,6 @@ import static org.apache.james.jmap.mailet.filter.JMAPFilteringFixture.RECIPIENT
import static org.apache.james.jmap.mailet.filter.JMAPFilteringFixture.RECIPIENT_1_USERNAME;
import static org.apache.james.jmap.mailet.filter.JMAPFilteringFixture.SCRAMBLED_SUBJECT;
import static org.apache.james.jmap.mailet.filter.JMAPFilteringFixture.SHOULD_NOT_MATCH;
-import static org.apache.james.jmap.mailet.filter.JMAPFilteringFixture.TO_HEADER;
import static org.apache.james.jmap.mailet.filter.JMAPFilteringFixture.UNFOLDED_USERNAME;
import static org.apache.james.jmap.mailet.filter.JMAPFilteringFixture.UNSCRAMBLED_SUBJECT;
import static org.apache.james.jmap.mailet.filter.JMAPFilteringFixture.USER_1_ADDRESS;
@@ -51,7 +49,6 @@ import static org.apache.james.jmap.mailet.filter.JMAPFilteringFixture.USER_2_AD
import static org.apache.james.jmap.mailet.filter.JMAPFilteringFixture.USER_2_FULL_ADDRESS;
import static org.apache.james.jmap.mailet.filter.JMAPFilteringFixture.USER_3_ADDRESS;
import static org.apache.james.jmap.mailet.filter.JMAPFilteringFixture.USER_3_FULL_ADDRESS;
-import static org.apache.james.jmap.mailet.filter.JMAPFilteringFixture.USER_3_USERNAME;
import static org.apache.james.jmap.mailet.filter.JMAPFilteringFixture.USER_4_FULL_ADDRESS;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatCode;
@@ -63,9 +60,11 @@ import java.util.stream.Stream;
import org.apache.james.core.User;
import org.apache.james.core.builder.MimeMessageBuilder;
import org.apache.james.jmap.api.filtering.Rule;
+import org.apache.james.jmap.api.filtering.Rule.Condition.Field;
import org.apache.james.jmap.mailet.filter.JMAPFilteringExtension.JMAPFilteringTestSystem;
import org.apache.james.mailbox.model.MailboxId;
import org.apache.james.util.StreamUtils;
+import org.apache.mailet.base.RFC2822Headers;
import org.apache.mailet.base.test.FakeMail;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
@@ -133,13 +132,6 @@ class JMAPFilteringTest {
return this;
}
- public FilteringArgumentBuilder headerForField(String headerValue) {
- Preconditions.checkState(field.isPresent(), "field should be set first");
-
- mimeMessageBuilder.addHeader(field.get().asString(), headerValue);
- return this;
- }
-
public FilteringArgumentBuilder subject(String subject) {
mimeMessageBuilder.setSubject(subject);
return this;
@@ -197,121 +189,97 @@ class JMAPFilteringTest {
.field(field);
}
+ static class FieldAndHeader {
+ private final Rule.Condition.Field field;
+ private final String headerName;
+
+ public FieldAndHeader(Rule.Condition.Field field, String headerName) {
+ this.field = field;
+ this.headerName = headerName;
+ }
+ }
+
+ public static final ImmutableList<FieldAndHeader> ADDRESS_TESTING_COMBINATION = ImmutableList.of(
+ new FieldAndHeader(Field.FROM, RFC2822Headers.FROM),
+ new FieldAndHeader(Field.TO, RFC2822Headers.TO),
+ new FieldAndHeader(Field.CC, RFC2822Headers.CC),
+ new FieldAndHeader(Field.RECIPIENT, RFC2822Headers.TO),
+ new FieldAndHeader(Field.RECIPIENT, RFC2822Headers.CC));
+
static Stream<Arguments> exactlyEqualsTestSuite() {
return StreamUtils.flatten(
- Stream.of(FROM, TO, CC)
- .flatMap(headerField -> Stream.of(
- argumentBuilder(headerField)
+ ADDRESS_TESTING_COMBINATION
+ .stream()
+ .flatMap(fieldAndHeader -> Stream.of(
+ argumentBuilder(fieldAndHeader.field)
.description("full address value")
- .headerForField(USER_1_FULL_ADDRESS)
+ .header(fieldAndHeader.headerName, USER_1_FULL_ADDRESS)
.valueToMatch(USER_1_USERNAME),
- argumentBuilder(headerField)
+ argumentBuilder(fieldAndHeader.field)
.description("full address value (different case)")
- .headerForField(USER_1_FULL_ADDRESS)
+ .header(fieldAndHeader.headerName, USER_1_FULL_ADDRESS)
.valueToMatch(USER_1_USERNAME.toUpperCase(Locale.ENGLISH)),
- argumentBuilder(headerField)
+ argumentBuilder(fieldAndHeader.field)
.description("address only value")
- .headerForField(USER_1_FULL_ADDRESS)
+ .header(fieldAndHeader.headerName, USER_1_FULL_ADDRESS)
.valueToMatch(USER_1_ADDRESS),
- argumentBuilder(headerField)
+ argumentBuilder(fieldAndHeader.field)
.description("address only value (different case)")
- .headerForField(USER_1_FULL_ADDRESS)
+ .header(fieldAndHeader.headerName, USER_1_FULL_ADDRESS)
.valueToMatch(USER_1_ADDRESS.toUpperCase(Locale.ENGLISH)),
- argumentBuilder(headerField)
+ argumentBuilder(fieldAndHeader.field)
.description("personal only value")
- .headerForField(USER_1_FULL_ADDRESS)
+ .header(fieldAndHeader.headerName, USER_1_FULL_ADDRESS)
.valueToMatch(USER_1_FULL_ADDRESS),
- argumentBuilder(headerField)
+ argumentBuilder(fieldAndHeader.field)
.description("personal only value (different case)")
- .headerForField(USER_1_FULL_ADDRESS)
+ .header(fieldAndHeader.headerName, USER_1_FULL_ADDRESS)
.valueToMatch(USER_1_FULL_ADDRESS.toUpperCase()),
- argumentBuilder(headerField)
+ argumentBuilder(fieldAndHeader.field)
.description("personal header should match personal")
- .headerForField(USER_1_USERNAME)
+ .header(fieldAndHeader.headerName, USER_1_USERNAME)
.valueToMatch(USER_1_USERNAME),
- argumentBuilder(headerField)
+ argumentBuilder(fieldAndHeader.field)
.description("address header should match address")
- .headerForField(USER_1_ADDRESS)
+ .header(fieldAndHeader.headerName, USER_1_ADDRESS)
.valueToMatch(USER_1_ADDRESS),
- argumentBuilder(headerField)
+ argumentBuilder(fieldAndHeader.field)
.description("multiple headers")
- .headerForField(USER_1_FULL_ADDRESS)
- .headerForField(USER_2_FULL_ADDRESS)
+ .header(fieldAndHeader.headerName, USER_1_FULL_ADDRESS)
+ .header(fieldAndHeader.headerName, USER_2_FULL_ADDRESS)
.valueToMatch(USER_1_USERNAME),
- argumentBuilder(headerField)
+ argumentBuilder(fieldAndHeader.field)
.description("scrambled content")
- .headerForField(FRED_MARTIN_FULL_SCRAMBLED_ADDRESS)
+ .header(fieldAndHeader.headerName, FRED_MARTIN_FULL_SCRAMBLED_ADDRESS)
.valueToMatch(FRED_MARTIN_FULLNAME),
- argumentBuilder(headerField)
+ argumentBuilder(fieldAndHeader.field)
.description("folded content")
- .headerForField(USER_1_AND_UNFOLDED_USER_FULL_ADDRESS)
+ .header(fieldAndHeader.headerName, USER_1_AND_UNFOLDED_USER_FULL_ADDRESS)
.valueToMatch(UNFOLDED_USERNAME),
- argumentBuilder(headerField)
+ argumentBuilder(fieldAndHeader.field)
.description("folded content (different case)")
- .headerForField(USER_1_AND_UNFOLDED_USER_FULL_ADDRESS)
+ .header(fieldAndHeader.headerName, USER_1_AND_UNFOLDED_USER_FULL_ADDRESS)
.valueToMatch(UNFOLDED_USERNAME.toUpperCase()),
- argumentBuilder(headerField)
+ argumentBuilder(fieldAndHeader.field)
.description("invalid address, personal match")
- .headerForField("Benoit <invalid>")
+ .header(fieldAndHeader.headerName, "Benoit <invalid>")
.valueToMatch("Benoit"),
- argumentBuilder(headerField)
+ argumentBuilder(fieldAndHeader.field)
.description("invalid address, address match")
- .headerForField("Benoit <invalid>")
+ .header(fieldAndHeader.headerName, "Benoit <invalid>")
.valueToMatch("invalid"),
- argumentBuilder(headerField)
+ argumentBuilder(fieldAndHeader.field)
.description("invalid address, full match")
- .headerForField("Benoit <invalid>")
+ .header(fieldAndHeader.headerName, "Benoit <invalid>")
.valueToMatch("Benoit <invalid>"),
- argumentBuilder(headerField)
+ argumentBuilder(fieldAndHeader.field)
.description("invalid header, full match")
- .headerForField("Benoit <invalid")
+ .header(fieldAndHeader.headerName, "Benoit <invalid")
.valueToMatch("Benoit <invalid")
).map(FilteringArgumentBuilder::build)),
- Stream.of(TO_HEADER, CC_HEADER)
- .flatMap(headerName -> Stream.of(
- argumentBuilder(RECIPIENT)
- .description("full address " + headerName + " header")
- .header(headerName, USER_3_FULL_ADDRESS)
- .valueToMatch(USER_3_FULL_ADDRESS),
- argumentBuilder(RECIPIENT)
- .description("full address " + headerName + " header (different case)")
- .header(headerName, USER_3_FULL_ADDRESS)
- .valueToMatch(USER_3_FULL_ADDRESS.toUpperCase(Locale.ENGLISH)),
- argumentBuilder(RECIPIENT)
- .description("address only " + headerName + " header")
- .header(headerName, USER_3_FULL_ADDRESS)
- .valueToMatch(USER_3_ADDRESS),
- argumentBuilder(RECIPIENT)
- .description("personal only " + headerName + " header")
- .header(headerName, USER_3_FULL_ADDRESS)
- .valueToMatch(USER_3_USERNAME),
- argumentBuilder(RECIPIENT)
- .description("scrambled content in " + headerName + " header")
- .header(headerName, FRED_MARTIN_FULL_SCRAMBLED_ADDRESS)
- .valueToMatch(FRED_MARTIN_FULLNAME),
- argumentBuilder(RECIPIENT)
- .description("folded content in " + headerName + " header")
- .header(headerName, USER_1_AND_UNFOLDED_USER_FULL_ADDRESS)
- .valueToMatch(UNFOLDED_USERNAME),
- argumentBuilder(RECIPIENT)
- .description("invalid " + headerName + " address, personal match")
- .header(headerName, "Benoit <invalid>")
- .valueToMatch("Benoit"),
- argumentBuilder(RECIPIENT)
- .description("invalid " + headerName + " address, address match")
- .header(headerName, "Benoit <invalid>")
- .valueToMatch("invalid"),
- argumentBuilder(RECIPIENT)
- .description("invalid " + headerName + " address, full match")
- .header(headerName, "Benoit <invalid>")
- .valueToMatch("Benoit <invalid>"),
- argumentBuilder(RECIPIENT)
- .description("invalid " + headerName + ", full match")
- .header(headerName, "Benoit <invalid")
- .valueToMatch("Benoit <invalid"))
- .map(FilteringArgumentBuilder::build)),
Stream.of(
- argumentBuilder().description("multiple to and cc headers").field(RECIPIENT)
+ argumentBuilder().description("multiple to and cc headers")
+ .field(RECIPIENT)
.ccRecipient(USER_1_FULL_ADDRESS)
.ccRecipient(USER_2_FULL_ADDRESS)
.toRecipient(USER_3_FULL_ADDRESS)
@@ -330,119 +298,68 @@ class JMAPFilteringTest {
private static Stream<Arguments> containsArguments() {
return StreamUtils.flatten(
- Stream.of(FROM, TO, CC)
- .flatMap(headerField -> Stream.of(
- argumentBuilder(headerField)
+ ADDRESS_TESTING_COMBINATION.stream()
+ .flatMap(fieldAndHeader -> Stream.of(
+ argumentBuilder(fieldAndHeader.field)
.description("full address value (partial matching)")
- .headerForField(USER_1_FULL_ADDRESS)
+ .header(fieldAndHeader.headerName, USER_1_FULL_ADDRESS)
.valueToMatch("ser1 <"),
- argumentBuilder(headerField)
+ argumentBuilder(fieldAndHeader.field)
.description("full address value (partial matching, different case)")
- .headerForField(USER_1_FULL_ADDRESS)
+ .header(fieldAndHeader.headerName, USER_1_FULL_ADDRESS)
.valueToMatch("SER1 <"),
- argumentBuilder(headerField)
+ argumentBuilder(fieldAndHeader.field)
.description("address only value (partial matching)")
- .headerForField(USER_1_FULL_ADDRESS)
+ .header(fieldAndHeader.headerName, USER_1_FULL_ADDRESS)
.valueToMatch("ser1@jam"),
- argumentBuilder(headerField)
+ argumentBuilder(fieldAndHeader.field)
.description("personal only value (partial matching)")
- .headerForField(USER_1_FULL_ADDRESS)
+ .header(fieldAndHeader.headerName,USER_1_FULL_ADDRESS)
.valueToMatch("ser1"),
- argumentBuilder(headerField)
+ argumentBuilder(fieldAndHeader.field)
.description("address header & match in the address (partial matching)")
- .headerForField(USER_1_ADDRESS)
+ .header(fieldAndHeader.headerName,USER_1_ADDRESS)
.valueToMatch("ser1@jam"),
- argumentBuilder(headerField)
+ argumentBuilder(fieldAndHeader.field)
.description("raw value matching (partial matching)")
- .headerForField(GA_BOU_ZO_MEU_FULL_ADDRESS)
+ .header(fieldAndHeader.headerName,GA_BOU_ZO_MEU_FULL_ADDRESS)
.valueToMatch(BOU),
- argumentBuilder(headerField)
+ argumentBuilder(fieldAndHeader.field)
.description("multiple headers (partial matching)")
- .headerForField(USER_1_FULL_ADDRESS)
- .headerForField(USER_2_FULL_ADDRESS)
+ .header(fieldAndHeader.headerName,USER_1_FULL_ADDRESS)
+ .header(fieldAndHeader.headerName,USER_2_FULL_ADDRESS)
.valueToMatch("ser1@jam"),
- argumentBuilder(headerField)
+ argumentBuilder(fieldAndHeader.field)
.description("scrambled content (partial matching)")
- .headerForField(FRED_MARTIN_FULL_SCRAMBLED_ADDRESS)
+ .header(fieldAndHeader.headerName,FRED_MARTIN_FULL_SCRAMBLED_ADDRESS)
.valueToMatch("déric MAR"),
- argumentBuilder(headerField)
+ argumentBuilder(fieldAndHeader.field)
.description("folded content (partial matching)")
- .headerForField(USER_1_AND_UNFOLDED_USER_FULL_ADDRESS)
+ .header(fieldAndHeader.headerName,USER_1_AND_UNFOLDED_USER_FULL_ADDRESS)
.valueToMatch("ded_us"),
- argumentBuilder(headerField)
+ argumentBuilder(fieldAndHeader.field)
.description("invalid address, personal match (partial matching)")
- .headerForField("Benoit <invalid>")
+ .header(fieldAndHeader.headerName,"Benoit <invalid>")
.valueToMatch("enoi"),
- argumentBuilder(headerField)
+ argumentBuilder(fieldAndHeader.field)
.description("invalid address, address match (partial matching)")
- .headerForField("Benoit <invalid>")
+ .header(fieldAndHeader.headerName,"Benoit <invalid>")
.valueToMatch("nvali"),
- argumentBuilder(headerField)
+ argumentBuilder(fieldAndHeader.field)
.description("invalid address, full match (partial matching)")
- .headerForField("Benoit <invalid>")
+ .header(fieldAndHeader.headerName,"Benoit <invalid>")
.valueToMatch("enoit <invali"),
- argumentBuilder(headerField)
+ argumentBuilder(fieldAndHeader.field)
.description("invalid header, full match (partial matching)")
- .headerForField("Benoit <invalid")
+ .header(fieldAndHeader.headerName,"Benoit <invalid")
.valueToMatch("enoit <invali"),
- argumentBuilder(headerField)
+ argumentBuilder(fieldAndHeader.field)
.description("invalid header, personal match (partial matching)")
- .headerForField("Benoit <invalid")
+ .header(fieldAndHeader.headerName,"Benoit <invalid")
.valueToMatch("enoi"),
- argumentBuilder(headerField)
+ argumentBuilder(fieldAndHeader.field)
.description("invalid header, address match (partial matching)")
- .headerForField("Benoit <invalid")
- .valueToMatch("nvali"))
- .map(FilteringArgumentBuilder::build)),
- Stream.of(TO_HEADER, CC_HEADER)
- .flatMap(headerName -> Stream.of(
- argumentBuilder(RECIPIENT)
- .description("full address " + headerName + " header (partial matching)")
- .header(headerName, USER_3_FULL_ADDRESS)
- .valueToMatch("ser3 <us"),
- argumentBuilder(RECIPIENT)
- .description("full address " + headerName + " header (partial matching, different case)")
- .header(headerName, USER_3_FULL_ADDRESS)
- .valueToMatch("SER3 <US"),
- argumentBuilder(RECIPIENT)
- .description("address only " + headerName + " header (partial matching)")
- .header(headerName, USER_3_FULL_ADDRESS)
- .valueToMatch("ser3@jam"),
- argumentBuilder(RECIPIENT)
- .description("personal only " + headerName + " header (partial matching)")
- .header(headerName, USER_3_FULL_ADDRESS)
- .valueToMatch("ser3"),
- argumentBuilder(RECIPIENT)
- .description("scrambled content in " + headerName + " header (partial matching)")
- .header(headerName, FRED_MARTIN_FULL_SCRAMBLED_ADDRESS)
- .valueToMatch("déric MAR"),
- argumentBuilder(RECIPIENT)
- .description("folded content in " + headerName + " header (partial matching)")
- .header(headerName, USER_1_AND_UNFOLDED_USER_FULL_ADDRESS)
- .valueToMatch("folded_us"),
- argumentBuilder(RECIPIENT)
- .description("invalid address, personal match (partial matching)")
- .header(headerName, "Benoit <invalid>")
- .valueToMatch("enoi"),
- argumentBuilder(RECIPIENT)
- .description("invalid address, address match (partial matching)")
- .header(headerName, "Benoit <invalid>")
- .valueToMatch("nvali"),
- argumentBuilder(RECIPIENT)
- .description("invalid address, full match (partial matching)")
- .header(headerName, "Benoit <invalid>")
- .valueToMatch("enoit <invali"),
- argumentBuilder(RECIPIENT)
- .description("invalid header, full match (partial matching)")
- .header(headerName, "Benoit <invalid")
- .valueToMatch("enoit <invali"),
- argumentBuilder(RECIPIENT)
- .description("invalid header, personal match (partial matching)")
- .header(headerName, "Benoit <invalid")
- .valueToMatch("enoi"),
- argumentBuilder(RECIPIENT)
- .description("invalid header, address match (partial matching)")
- .header(headerName, "Benoit <invalid")
+ .header(fieldAndHeader.headerName,"Benoit <invalid")
.valueToMatch("nvali"))
.map(FilteringArgumentBuilder::build)),
Stream.of(
@@ -464,63 +381,36 @@ class JMAPFilteringTest {
static Stream<Arguments> notContainsTestSuite() {
return StreamUtils.flatten(
- Stream.of(FROM, TO, CC)
- .flatMap(headerField -> Stream.of(
- argumentBuilder(headerField)
+ ADDRESS_TESTING_COMBINATION.stream()
+ .flatMap(fieldAndHeader -> Stream.of(
+ argumentBuilder(fieldAndHeader.field)
.description("normal content")
- .headerForField(USER_1_FULL_ADDRESS)
+ .header(fieldAndHeader.headerName, USER_1_FULL_ADDRESS)
.valueToMatch(SHOULD_NOT_MATCH),
- argumentBuilder(headerField)
+ argumentBuilder(fieldAndHeader.field)
.description("multiple headers")
- .headerForField(USER_1_FULL_ADDRESS)
+ .header(fieldAndHeader.headerName, USER_1_FULL_ADDRESS)
.from(USER_2_FULL_ADDRESS)
.valueToMatch(SHOULD_NOT_MATCH),
- argumentBuilder(headerField)
+ argumentBuilder(fieldAndHeader.field)
.description("scrambled content")
- .headerForField(FRED_MARTIN_FULL_SCRAMBLED_ADDRESS)
+ .header(fieldAndHeader.headerName, FRED_MARTIN_FULL_SCRAMBLED_ADDRESS)
.valueToMatch(SHOULD_NOT_MATCH),
- argumentBuilder(headerField)
+ argumentBuilder(fieldAndHeader.field)
.description("folded content")
- .headerForField(USER_1_AND_UNFOLDED_USER_FULL_ADDRESS)
+ .header(fieldAndHeader.headerName, USER_1_AND_UNFOLDED_USER_FULL_ADDRESS)
.valueToMatch(SHOULD_NOT_MATCH),
- argumentBuilder(headerField)
+ argumentBuilder(fieldAndHeader.field)
.description("empty content")
- .headerForField(EMPTY)
- .valueToMatch(SHOULD_NOT_MATCH),
- argumentBuilder(headerField)
- .description("invalid address, personal match")
- .headerForField("Benoit <invalid>")
- .valueToMatch(SHOULD_NOT_MATCH),
- argumentBuilder(headerField)
- .description("invalid header, full match")
- .headerForField("Benoit <invalid")
- .valueToMatch(SHOULD_NOT_MATCH))
- .map(FilteringArgumentBuilder::build)),
- Stream.of(TO_HEADER, CC_HEADER)
- .flatMap(headerName -> Stream.of(
- argumentBuilder(RECIPIENT)
- .description("normal content " + headerName + " header")
- .header(headerName, USER_3_FULL_ADDRESS)
- .valueToMatch(SHOULD_NOT_MATCH),
- argumentBuilder(RECIPIENT)
- .description("scrambled content in " + headerName + " header")
- .field(RECIPIENT).header(headerName, FRED_MARTIN_FULL_SCRAMBLED_ADDRESS)
- .valueToMatch(SHOULD_NOT_MATCH),
- argumentBuilder(RECIPIENT)
- .description("folded content in " + headerName + " header")
- .header(headerName, USER_1_AND_UNFOLDED_USER_FULL_ADDRESS)
- .valueToMatch(SHOULD_NOT_MATCH),
- argumentBuilder(RECIPIENT)
- .description("bcc header")
- .header(headerName, USER_1_AND_UNFOLDED_USER_FULL_ADDRESS)
+ .header(fieldAndHeader.headerName, EMPTY)
.valueToMatch(SHOULD_NOT_MATCH),
- argumentBuilder(RECIPIENT)
+ argumentBuilder(fieldAndHeader.field)
.description("invalid address, personal match")
- .header(headerName, "Benoit <invalid>")
+ .header(fieldAndHeader.headerName, "Benoit <invalid>")
.valueToMatch(SHOULD_NOT_MATCH),
- argumentBuilder(RECIPIENT)
+ argumentBuilder(fieldAndHeader.field)
.description("invalid header, full match")
- .header(headerName, "Benoit <invalid")
+ .header(fieldAndHeader.headerName, "Benoit <invalid")
.valueToMatch(SHOULD_NOT_MATCH))
.map(FilteringArgumentBuilder::build)),
Stream.of(
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org