This is an automated email from the ASF dual-hosted git repository. btellier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 8f91b92a995eaaa6820777793e6224ec613d5a73 Author: Rémi KOWALSKI <[email protected]> AuthorDate: Thu Nov 7 15:06:48 2019 +0100 JAMES-2964 simplify quota limit domain object to better represent the domain --- .../apache/james/core/quota/QuotaCountLimit.java | 18 -------- .../apache/james/core/quota/QuotaLimitValue.java | 7 +--- .../apache/james/core/quota/QuotaSizeLimit.java | 18 -------- .../james/core/quota/QuotaLimitValueTest.java | 48 ++-------------------- 4 files changed, 5 insertions(+), 86 deletions(-) diff --git a/core/src/main/java/org/apache/james/core/quota/QuotaCountLimit.java b/core/src/main/java/org/apache/james/core/quota/QuotaCountLimit.java index 1867e83..40add28 100644 --- a/core/src/main/java/org/apache/james/core/quota/QuotaCountLimit.java +++ b/core/src/main/java/org/apache/james/core/quota/QuotaCountLimit.java @@ -56,19 +56,6 @@ public class QuotaCountLimit implements QuotaLimitValue<QuotaCountLimit> { } @Override - public QuotaCountLimit add(long additionalValue) { - return new QuotaCountLimit(value.map(x -> x + additionalValue)); - } - - @Override - public QuotaCountLimit add(QuotaCountLimit additionalValue) { - if (additionalValue.isUnlimited()) { - return unlimited(); - } - return new QuotaCountLimit(value.map(x -> x + additionalValue.asLong())); - } - - @Override public String toString() { return MoreObjects.toStringHelper(this) .add("value", value.map(String::valueOf).orElse("unlimited")) @@ -76,11 +63,6 @@ public class QuotaCountLimit implements QuotaLimitValue<QuotaCountLimit> { } @Override - public boolean isGreaterThan(QuotaCountLimit other) { - return value.orElse(Long.MAX_VALUE) > other.value.orElse(Long.MAX_VALUE); - } - - @Override public final boolean equals(Object o) { if (o instanceof QuotaCountLimit) { QuotaCountLimit that = (QuotaCountLimit) o; diff --git a/core/src/main/java/org/apache/james/core/quota/QuotaLimitValue.java b/core/src/main/java/org/apache/james/core/quota/QuotaLimitValue.java index ff32575..89de7a9 100644 --- a/core/src/main/java/org/apache/james/core/quota/QuotaLimitValue.java +++ b/core/src/main/java/org/apache/james/core/quota/QuotaLimitValue.java @@ -23,7 +23,7 @@ import java.util.Optional; public interface QuotaLimitValue<T extends QuotaLimitValue<T>> { static boolean isValidValue(Optional<Long> value) { - return !value.isPresent() || value.get() >= 0; + return value.map(longValue -> longValue >= 0).orElse(true); } long asLong(); @@ -34,9 +34,4 @@ public interface QuotaLimitValue<T extends QuotaLimitValue<T>> { return !isLimited(); } - T add(long additionalValue); - - T add(T additionalValue); - - boolean isGreaterThan(T other); } diff --git a/core/src/main/java/org/apache/james/core/quota/QuotaSizeLimit.java b/core/src/main/java/org/apache/james/core/quota/QuotaSizeLimit.java index d8997ae..968a11b 100644 --- a/core/src/main/java/org/apache/james/core/quota/QuotaSizeLimit.java +++ b/core/src/main/java/org/apache/james/core/quota/QuotaSizeLimit.java @@ -58,24 +58,6 @@ public class QuotaSizeLimit implements QuotaLimitValue<QuotaSizeLimit> { } @Override - public QuotaSizeLimit add(long additionalValue) { - return new QuotaSizeLimit(value.map(x -> x + additionalValue)); - } - - @Override - public QuotaSizeLimit add(QuotaSizeLimit additionalValue) { - if (additionalValue.isUnlimited()) { - return unlimited(); - } - return new QuotaSizeLimit(value.map(x -> x + additionalValue.asLong())); - } - - @Override - public boolean isGreaterThan(QuotaSizeLimit other) { - return value.orElse(Long.MAX_VALUE) > other.value.orElse(Long.MAX_VALUE); - } - - @Override public String toString() { return MoreObjects.toStringHelper(this) .add("value", value.map(String::valueOf).orElse("unlimited")) diff --git a/core/src/test/java/org/apache/james/core/quota/QuotaLimitValueTest.java b/core/src/test/java/org/apache/james/core/quota/QuotaLimitValueTest.java index 8a8e28f..09a3ce7 100644 --- a/core/src/test/java/org/apache/james/core/quota/QuotaLimitValueTest.java +++ b/core/src/test/java/org/apache/james/core/quota/QuotaLimitValueTest.java @@ -18,58 +18,18 @@ ****************************************************************/ package org.apache.james.core.quota; -import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; import org.junit.jupiter.api.Test; public interface QuotaLimitValueTest<T extends QuotaLimitValue<T>> { - T instance(long i); + T instance(long value); T unlimited(); @Test - default void greaterThanShouldReturnFalseWhenFirstEqualToSecond() { - assertThat(instance(1).isGreaterThan(instance(1))).isFalse(); - } - - @Test - default void greaterThanShouldReturnFalseWhenFirstSmallerThanSecond() { - assertThat(instance(1).isGreaterThan(instance(2))).isFalse(); - } - - @Test - default void greaterThanShouldReturnTrueWhenFirstGreaterThanSecond() { - assertThat(instance(2).isGreaterThan(instance(1))).isTrue(); - } - - @Test - default void greaterThanShouldReturnFalseWhenFirstIsLimitedAndSecondUnlimited() { - assertThat(instance(1).isGreaterThan(unlimited())).isFalse(); - } - - @Test - default void greaterThanShouldReturnFalseWhenBothAreUnlimited() { - assertThat(unlimited().isGreaterThan(unlimited())).isFalse(); - } - - @Test - default void greaterThanShouldReturnTrueWhenFirstIsUnlimitedAndSecondLimited() { - assertThat(unlimited().isGreaterThan(instance(1))).isTrue(); - } - - @Test - default void addShouldReturnUnlimitedWhenThisIsUnlimited() { - assertThat(unlimited().add(2)).isEqualTo(unlimited()); - } - - @Test - default void addShouldReturnUnlimitedWhenBothAre() { - assertThat(unlimited().add(unlimited())).isEqualTo(unlimited()); - } - - @Test - default void addShouldReturnSumResult() { - assertThat(instance(12).add(instance(23))).isEqualTo(instance(35)); + default void creatingANegativeQuotaLimitShouldFail() { + assertThatThrownBy(() -> instance(-1)).isInstanceOf(IllegalArgumentException.class); } } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
