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 bt...@apache.org on 2018/06/26 09:13:09 UTC
[13/20] james-project git commit: JAMES-2151 SieveRepository strong
typing
JAMES-2151 SieveRepository strong typing
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/37ba4e34
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/37ba4e34
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/37ba4e34
Branch: refs/heads/master
Commit: 37ba4e342c20b18c44913d563f055f0f711c6709
Parents: 2e8f3f7
Author: benwa <bt...@linagora.com>
Authored: Fri Jun 22 13:46:21 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Tue Jun 26 16:08:59 2018 +0700
----------------------------------------------------------------------
.../sieverepository/api/ScriptContent.java | 3 +-
.../james/sieve/cassandra/model/Script.java | 3 +-
.../james/sieve/cassandra/model/SieveQuota.java | 7 +-
.../james/sieve/cassandra/model/ScriptTest.java | 5 +-
.../lib/AbstractSieveRepositoryTest.java | 4 +-
.../managesieve/ManageSieveMailetTestCase.java | 86 ++++++++++----------
6 files changed, 56 insertions(+), 52 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/37ba4e34/server/data/data-api/src/main/java/org/apache/james/sieverepository/api/ScriptContent.java
----------------------------------------------------------------------
diff --git a/server/data/data-api/src/main/java/org/apache/james/sieverepository/api/ScriptContent.java b/server/data/data-api/src/main/java/org/apache/james/sieverepository/api/ScriptContent.java
index 6f8cbd6..a5351a7 100644
--- a/server/data/data-api/src/main/java/org/apache/james/sieverepository/api/ScriptContent.java
+++ b/server/data/data-api/src/main/java/org/apache/james/sieverepository/api/ScriptContent.java
@@ -19,6 +19,7 @@
package org.apache.james.sieverepository.api;
+import java.nio.charset.StandardCharsets;
import java.util.Objects;
import com.google.common.base.MoreObjects;
@@ -35,7 +36,7 @@ public class ScriptContent {
}
public int length() {
- return value.length();
+ return value.getBytes(StandardCharsets.UTF_8).length;
}
@Override
http://git-wip-us.apache.org/repos/asf/james-project/blob/37ba4e34/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/model/Script.java
----------------------------------------------------------------------
diff --git a/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/model/Script.java b/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/model/Script.java
index de68ade..89952a3 100644
--- a/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/model/Script.java
+++ b/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/model/Script.java
@@ -2,7 +2,6 @@
package org.apache.james.sieve.cassandra.model;
-import java.nio.charset.StandardCharsets;
import java.util.Objects;
import java.util.Optional;
@@ -68,7 +67,7 @@ public class Script {
return new Script(name,
content,
isActive.get(),
- size.orElse((long) content.getValue().getBytes(StandardCharsets.UTF_8).length));
+ size.orElse((long) content.length()));
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/37ba4e34/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/model/SieveQuota.java
----------------------------------------------------------------------
diff --git a/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/model/SieveQuota.java b/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/model/SieveQuota.java
index b8a0154..25cdff6 100644
--- a/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/model/SieveQuota.java
+++ b/server/data/data-cassandra/src/main/java/org/apache/james/sieve/cassandra/model/SieveQuota.java
@@ -46,7 +46,10 @@ public class SieveQuota {
}
public boolean isExceededUponModification(long sizeDifference) {
- return limit.map(limitContent -> !limitContent.isGreaterThan(QuotaSize.size(currentUsage + sizeDifference)))
- .orElse(false);
+ return limit.map(limitContent ->
+ QuotaSize.size(currentUsage)
+ .add(sizeDifference)
+ .isGreaterThan(limitContent))
+ .orElse(false);
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/37ba4e34/server/data/data-cassandra/src/test/java/org/apache/james/sieve/cassandra/model/ScriptTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-cassandra/src/test/java/org/apache/james/sieve/cassandra/model/ScriptTest.java b/server/data/data-cassandra/src/test/java/org/apache/james/sieve/cassandra/model/ScriptTest.java
index ca757d9..718c824 100644
--- a/server/data/data-cassandra/src/test/java/org/apache/james/sieve/cassandra/model/ScriptTest.java
+++ b/server/data/data-cassandra/src/test/java/org/apache/james/sieve/cassandra/model/ScriptTest.java
@@ -23,6 +23,7 @@ import static org.assertj.core.api.Assertions.assertThat;
import java.nio.charset.StandardCharsets;
+import org.apache.james.sieverepository.api.ScriptContent;
import org.apache.james.sieverepository.api.ScriptName;
import org.apache.james.sieverepository.api.ScriptSummary;
import org.junit.Rule;
@@ -73,7 +74,7 @@ public class ScriptTest {
@Test
public void buildShouldPreserveName() {
- String name = "name";
+ ScriptName name = new ScriptName("name");
assertThat(
Script.builder()
.name(name)
@@ -86,7 +87,7 @@ public class ScriptTest {
@Test
public void buildShouldPreserveContent() {
- String content = "content";
+ ScriptContent content = new ScriptContent("content");
assertThat(
Script.builder()
.name("name")
http://git-wip-us.apache.org/repos/asf/james-project/blob/37ba4e34/server/data/data-library/src/test/java/org/apache/james/sieverepository/lib/AbstractSieveRepositoryTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-library/src/test/java/org/apache/james/sieverepository/lib/AbstractSieveRepositoryTest.java b/server/data/data-library/src/test/java/org/apache/james/sieverepository/lib/AbstractSieveRepositoryTest.java
index 4352209..a057d3a 100644
--- a/server/data/data-library/src/test/java/org/apache/james/sieverepository/lib/AbstractSieveRepositoryTest.java
+++ b/server/data/data-library/src/test/java/org/apache/james/sieverepository/lib/AbstractSieveRepositoryTest.java
@@ -343,8 +343,8 @@ public abstract class AbstractSieveRepositoryTest {
assertThat(sieveRepository.getQuota(USER)).isEqualTo(DEFAULT_QUOTA);
}
- protected String getScriptContent(InputStream inputStream) throws IOException {
- return IOUtils.toString(inputStream, StandardCharsets.UTF_8);
+ protected ScriptContent getScriptContent(InputStream inputStream) throws IOException {
+ return new ScriptContent(IOUtils.toString(inputStream, StandardCharsets.UTF_8));
}
protected abstract SieveRepository createSieveRepository() throws Exception;
http://git-wip-us.apache.org/repos/asf/james-project/blob/37ba4e34/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailetTestCase.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailetTestCase.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailetTestCase.java
index fd1d103..e9967b5 100644
--- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailetTestCase.java
+++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/managesieve/ManageSieveMailetTestCase.java
@@ -127,52 +127,52 @@ public class ManageSieveMailetTestCase {
@Test
public final void testPutScriptinvalidLiteral() throws Exception {
- MimeMessage message = prepareMessageWithAttachment(SCRIPT_CONTENT, "PUTSCRIPT \"" + SCRIPT_NAME + "\"");
+ MimeMessage message = prepareMessageWithAttachment(SCRIPT_CONTENT, "PUTSCRIPT \"" + SCRIPT_NAME.getValue() + "\"");
Mail mail = createUnauthenticatedMail(message);
mailet.service(mail);
- ensureResponse("Re: PUTSCRIPT \"" + SCRIPT_NAME + "\"", "NO \"Missing argument: script size\"");
+ ensureResponse("Re: PUTSCRIPT \"" + SCRIPT_NAME.getValue() + "\"", "NO \"Missing argument: script size\"");
}
@Test
public final void testPutScript() throws Exception {
when(sieveParser.parse(anyString())).thenReturn(Lists.newArrayList("warning1", "warning2"));
- MimeMessage message = prepareMessageWithAttachment(SCRIPT_CONTENT, "PUTSCRIPT \"" + SCRIPT_NAME + "\" {100+}");
+ MimeMessage message = prepareMessageWithAttachment(SCRIPT_CONTENT, "PUTSCRIPT \"" + SCRIPT_NAME.getValue() + "\" {100+}");
Mail mail = createAuthentificatedMail(message);
mailet.service(mail);
- ensureResponse("Re: PUTSCRIPT \"" + SCRIPT_NAME + "\" {100+}", "OK (WARNINGS) \"warning1\" \"warning2\"");
+ ensureResponse("Re: PUTSCRIPT \"" + SCRIPT_NAME.getValue() + "\" {100+}", "OK (WARNINGS) \"warning1\" \"warning2\"");
}
@Test
public final void testPutScriptInvalidLiteral() throws Exception {
- MimeMessage message = prepareMessageWithAttachment(SCRIPT_CONTENT, "PUTSCRIPT \"" + SCRIPT_NAME + "\" extra");
+ MimeMessage message = prepareMessageWithAttachment(SCRIPT_CONTENT, "PUTSCRIPT \"" + SCRIPT_NAME.getValue() + "\" extra");
Mail mail = createUnauthenticatedMail(message);
mailet.service(mail);
- ensureResponse("Re: PUTSCRIPT \"" + SCRIPT_NAME + "\" extra", "NO \"extra is an invalid size literal : it should be at least 4 char looking like {_+}\"");
+ ensureResponse("Re: PUTSCRIPT \"" + SCRIPT_NAME.getValue() + "\" extra", "NO \"extra is an invalid size literal : it should be at least 4 char looking like {_+}\"");
}
@Test
public final void testPutScriptExtraArgs() throws Exception {
- MimeMessage message = prepareMessageWithAttachment(SCRIPT_CONTENT, "PUTSCRIPT \"" + SCRIPT_NAME + "\" {10+} extra");
+ MimeMessage message = prepareMessageWithAttachment(SCRIPT_CONTENT, "PUTSCRIPT \"" + SCRIPT_NAME.getValue() + "\" {10+} extra");
Mail mail = createUnauthenticatedMail(message);
mailet.service(mail);
- ensureResponse("Re: PUTSCRIPT \"" + SCRIPT_NAME + "\" {10+} extra", "NO \"Extra arguments not supported\"");
+ ensureResponse("Re: PUTSCRIPT \"" + SCRIPT_NAME.getValue() + "\" {10+} extra", "NO \"Extra arguments not supported\"");
}
@Test
public final void testPutScriptSyntaxError() throws Exception {
doThrow(new SyntaxException("error message")).when(sieveParser).parse(SYNTAX_EXCEPTION);
- MimeMessage message = prepareMessageWithAttachment(SYNTAX_EXCEPTION, "PUTSCRIPT \"" + SCRIPT_NAME + "\" {10+}");
+ MimeMessage message = prepareMessageWithAttachment(SYNTAX_EXCEPTION, "PUTSCRIPT \"" + SCRIPT_NAME.getValue() + "\" {10+}");
Mail mail = createAuthentificatedMail(message);
mailet.service(mail);
- ensureResponse("Re: PUTSCRIPT \"" + SCRIPT_NAME + "\" {10+}", "NO \"Syntax Error: error message\"");
+ ensureResponse("Re: PUTSCRIPT \"" + SCRIPT_NAME.getValue() + "\" {10+}", "NO \"Syntax Error: error message\"");
}
@Test
public final void testPutScriptNoScript() throws Exception {
- MimeMessage message = prepareMimeMessage("PUTSCRIPT \"" + SCRIPT_NAME + "\"");
+ MimeMessage message = prepareMimeMessage("PUTSCRIPT \"" + SCRIPT_NAME.getValue() + "\"");
Mail mail = createUnauthenticatedMail(message);
mailet.service(mail);
- ensureResponse("Re: PUTSCRIPT \"" + SCRIPT_NAME + "\"", "NO \"Missing argument: script size\"");
+ ensureResponse("Re: PUTSCRIPT \"" + SCRIPT_NAME.getValue() + "\"", "NO \"Missing argument: script size\"");
}
@Test
@@ -185,38 +185,38 @@ public class ManageSieveMailetTestCase {
@Test
public final void testGetScriptNonAuthorized() throws Exception {
- MimeMessage message = prepareMimeMessage("GETSCRIPT \"" + SCRIPT_NAME + "\"");
+ MimeMessage message = prepareMimeMessage("GETSCRIPT \"" + SCRIPT_NAME.getValue() + "\"");
Mail mail = createUnauthenticatedMail(message);
mailet.service(mail);
- ensureResponse("Re: GETSCRIPT \"" + SCRIPT_NAME + "\"", "NO");
+ ensureResponse("Re: GETSCRIPT \"" + SCRIPT_NAME.getValue() + "\"", "NO");
}
@Test
public final void testGetScript() throws Exception {
- when(sieveRepository.getScript(USER, SCRIPT_NAME)).thenReturn(new ByteArrayInputStream(SCRIPT_CONTENT.getValue().getBytes()));
- MimeMessage message = prepareMimeMessage("GETSCRIPT \"" + SCRIPT_NAME + "\"");
+ when(sieveRepository.getScript(USER, SCRIPT_NAME)).thenReturn(new ByteArrayInputStream(SCRIPT_CONTENT.getValue().getBytes(StandardCharsets.UTF_8)));
+ MimeMessage message = prepareMimeMessage("GETSCRIPT \"" + SCRIPT_NAME.getValue() + "\"");
Mail mail = createUnauthenticatedMail(message);
mail.setAttribute(Mail.SMTP_AUTH_USER_ATTRIBUTE_NAME, USER.asString());
mailet.service(mail);
- ensureResponse("Re: GETSCRIPT \"" + SCRIPT_NAME + "\"", "{13}\r\n" + SCRIPT_CONTENT + "\r\nOK");
+ ensureResponse("Re: GETSCRIPT \"" + SCRIPT_NAME.getValue() + "\"", "{13}\r\n" + SCRIPT_CONTENT.getValue() + "\r\nOK");
}
@Test
public final void testGetScriptExtraArgs() throws Exception {
- MimeMessage message = prepareMimeMessage("GETSCRIPT \"" + SCRIPT_NAME + "\" extra");
+ MimeMessage message = prepareMimeMessage("GETSCRIPT \"" + SCRIPT_NAME.getValue() + "\" extra");
Mail mail = createUnauthenticatedMail(message);
mailet.service(mail);
- ensureResponse("Re: GETSCRIPT \"" + SCRIPT_NAME + "\" extra", "NO \"Too many arguments: extra\"");
+ ensureResponse("Re: GETSCRIPT \"" + SCRIPT_NAME.getValue() + "\" extra", "NO \"Too many arguments: extra\"");
}
@Test
public final void testGetScriptNoScript() throws Exception {
doThrow(new ScriptNotFoundException()).when(sieveRepository).getScript(USER, SCRIPT_NAME);
- MimeMessage message = prepareMimeMessage("GETSCRIPT \"" + SCRIPT_NAME + "\"");
+ MimeMessage message = prepareMimeMessage("GETSCRIPT \"" + SCRIPT_NAME.getValue() + "\"");
Mail mail = createUnauthenticatedMail(message);
mail.setAttribute(Mail.SMTP_AUTH_USER_ATTRIBUTE_NAME, USER.asString());
mailet.service(mail);
- ensureResponse("Re: GETSCRIPT \"" + SCRIPT_NAME + "\"", "NO (NONEXISTENT) \"There is no script by that name\"");
+ ensureResponse("Re: GETSCRIPT \"" + SCRIPT_NAME.getValue() + "\"", "NO (NONEXISTENT) \"There is no script by that name\"");
}
@Test
@@ -283,26 +283,26 @@ public class ManageSieveMailetTestCase {
@Test
public final void testDeleteScriptUnauthenticated() throws Exception {
- MimeMessage message = prepareMimeMessage("DELETESCRIPT \"" + SCRIPT_NAME + "\"");
+ MimeMessage message = prepareMimeMessage("DELETESCRIPT \"" + SCRIPT_NAME.getValue() + "\"");
Mail mail = createUnauthenticatedMail(message);
mailet.service(mail);
- ensureResponse("Re: DELETESCRIPT \"" + SCRIPT_NAME + "\"", "NO");
+ ensureResponse("Re: DELETESCRIPT \"" + SCRIPT_NAME.getValue() + "\"", "NO");
}
@Test
public final void testDeleteScript() throws Exception {
- MimeMessage message = prepareMimeMessage("DELETESCRIPT \"" + SCRIPT_NAME + "\"");
+ MimeMessage message = prepareMimeMessage("DELETESCRIPT \"" + SCRIPT_NAME.getValue() + "\"");
Mail mail = createAuthentificatedMail(message);
mailet.service(mail);
- ensureResponse("Re: DELETESCRIPT \"" + SCRIPT_NAME + "\"", "OK");
+ ensureResponse("Re: DELETESCRIPT \"" + SCRIPT_NAME.getValue() + "\"", "OK");
}
@Test
public final void testDeleteScriptExtraArgs() throws Exception {
- MimeMessage message = prepareMimeMessage("DELETESCRIPT \"" + SCRIPT_NAME + "\" extra");
+ MimeMessage message = prepareMimeMessage("DELETESCRIPT \"" + SCRIPT_NAME.getValue() + "\" extra");
Mail mail = createUnauthenticatedMail(message);
mailet.service(mail);
- ensureResponse("Re: DELETESCRIPT \"" + SCRIPT_NAME + "\" extra", "NO \"Too many arguments: extra\"");
+ ensureResponse("Re: DELETESCRIPT \"" + SCRIPT_NAME.getValue() + "\" extra", "NO \"Too many arguments: extra\"");
}
@Test
@@ -315,26 +315,26 @@ public class ManageSieveMailetTestCase {
@Test
public final void testHaveSpaceUnauthenticated() throws Exception {
- MimeMessage message = prepareMimeMessage("HAVESPACE \"" + SCRIPT_NAME + "\" 1");
+ MimeMessage message = prepareMimeMessage("HAVESPACE \"" + SCRIPT_NAME.getValue() + "\" 1");
Mail mail = createUnauthenticatedMail(message);
mailet.service(mail);
- ensureResponse("Re: HAVESPACE \"" + SCRIPT_NAME + "\" 1", "NO");
+ ensureResponse("Re: HAVESPACE \"" + SCRIPT_NAME.getValue() + "\" 1", "NO");
}
@Test
public final void testHaveSpace() throws Exception {
- MimeMessage message = prepareMimeMessage("HAVESPACE \"" + SCRIPT_NAME + "\" 1");
+ MimeMessage message = prepareMimeMessage("HAVESPACE \"" + SCRIPT_NAME.getValue() + "\" 1");
Mail mail = createAuthentificatedMail(message);
mailet.service(mail);
- ensureResponse("Re: HAVESPACE \"" + SCRIPT_NAME + "\" 1", "OK");
+ ensureResponse("Re: HAVESPACE \"" + SCRIPT_NAME.getValue() + "\" 1", "OK");
}
@Test
public final void testHaveSpaceExtraArgs() throws Exception {
- MimeMessage message = prepareMimeMessage("HAVESPACE \"" + SCRIPT_NAME + "\" 1 extra");
+ MimeMessage message = prepareMimeMessage("HAVESPACE \"" + SCRIPT_NAME.getValue() + "\" 1 extra");
Mail mail = createUnauthenticatedMail(message);
mailet.service(mail);
- ensureResponse("Re: HAVESPACE \"" + SCRIPT_NAME + "\" 1 extra", "NO \"Too many arguments: extra\"");
+ ensureResponse("Re: HAVESPACE \"" + SCRIPT_NAME.getValue() + "\" 1 extra", "NO \"Too many arguments: extra\"");
}
@Test
@@ -347,18 +347,18 @@ public class ManageSieveMailetTestCase {
@Test
public final void testHaveSpaceNoScriptSize() throws Exception {
- MimeMessage message = prepareMimeMessage("HAVESPACE \"" + SCRIPT_NAME + "\"");
+ MimeMessage message = prepareMimeMessage("HAVESPACE \"" + SCRIPT_NAME.getValue() + "\"");
Mail mail = createUnauthenticatedMail(message);
mailet.service(mail);
- ensureResponse("Re: HAVESPACE \"" + SCRIPT_NAME + "\"", "NO \"Missing argument: script size\"");
+ ensureResponse("Re: HAVESPACE \"" + SCRIPT_NAME.getValue() + "\"", "NO \"Missing argument: script size\"");
}
@Test
public final void testHaveSpaceInvalidScriptSize() throws Exception {
- MimeMessage message = prepareMimeMessage("HAVESPACE \"" + SCRIPT_NAME + "\" X");
+ MimeMessage message = prepareMimeMessage("HAVESPACE \"" + SCRIPT_NAME.getValue() + "\" X");
Mail mail = createUnauthenticatedMail(message);
mailet.service(mail);
- ensureResponse("Re: HAVESPACE \"" + SCRIPT_NAME + "\" X", "NO \"Invalid argument: script size\"");
+ ensureResponse("Re: HAVESPACE \"" + SCRIPT_NAME.getValue() + "\" X", "NO \"Invalid argument: script size\"");
}
@Test
@@ -433,26 +433,26 @@ public class ManageSieveMailetTestCase {
@Test
public final void testSetActiveUnauthorised() throws Exception {
- MimeMessage message = prepareMimeMessage("SETACTIVE \"" + SCRIPT_NAME + "\"");
+ MimeMessage message = prepareMimeMessage("SETACTIVE \"" + SCRIPT_NAME.getValue() + "\"");
Mail mail = createUnauthenticatedMail(message);
mailet.service(mail);
- ensureResponse("Re: SETACTIVE \"" + SCRIPT_NAME + "\"", "NO");
+ ensureResponse("Re: SETACTIVE \"" + SCRIPT_NAME.getValue() + "\"", "NO");
}
@Test
public final void testSetActive() throws Exception {
- MimeMessage message = prepareMimeMessage("SETACTIVE \"" + SCRIPT_NAME + "\"");
+ MimeMessage message = prepareMimeMessage("SETACTIVE \"" + SCRIPT_NAME.getValue() + "\"");
Mail mail = createAuthentificatedMail(message);
mailet.service(mail);
- ensureResponse("Re: SETACTIVE \"" + SCRIPT_NAME + "\"", "OK");
+ ensureResponse("Re: SETACTIVE \"" + SCRIPT_NAME.getValue() + "\"", "OK");
}
@Test
public final void testSetActiveExtraArgs() throws Exception {
- MimeMessage message = prepareMimeMessage("SETACTIVE \"" + SCRIPT_NAME + "\" extra");
+ MimeMessage message = prepareMimeMessage("SETACTIVE \"" + SCRIPT_NAME.getValue() + "\" extra");
Mail mail = createUnauthenticatedMail(message);
mailet.service(mail);
- ensureResponse("Re: SETACTIVE \"" + SCRIPT_NAME + "\" extra", "NO \"Too many arguments: extra\"");
+ ensureResponse("Re: SETACTIVE \"" + SCRIPT_NAME.getValue() + "\" extra", "NO \"Too many arguments: extra\"");
}
@Test
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org