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 a142a230c09025071b762fa315243a1b3676b8c0
Author: Benoit Tellier <btell...@linagora.com>
AuthorDate: Tue Mar 26 11:26:03 2019 +0700

    JAMES-2702 DurationParser should handle weeks, months and years
---
 .../java/org/apache/james/util/DurationParser.java  |  5 ++++-
 .../org/apache/james/util/DurationParserTest.java   | 21 +++++++++++++++++++++
 2 files changed, 25 insertions(+), 1 deletion(-)

diff --git 
a/server/container/util/src/main/java/org/apache/james/util/DurationParser.java 
b/server/container/util/src/main/java/org/apache/james/util/DurationParser.java
index 6a562f9..b78fd6e 100644
--- 
a/server/container/util/src/main/java/org/apache/james/util/DurationParser.java
+++ 
b/server/container/util/src/main/java/org/apache/james/util/DurationParser.java
@@ -43,7 +43,10 @@ public class DurationParser {
         SECONDS(ImmutableList.of("s", "sec", "secs", "second", "seconds"), 
ChronoUnit.SECONDS),
         MINUTES(ImmutableList.of("m", "min", "mins", "minute", "minutes"), 
ChronoUnit.MINUTES),
         HOURS(ImmutableList.of("h", "hour", "hours"), ChronoUnit.HOURS),
-        DAYS(ImmutableList.of("d", "day", "days"), ChronoUnit.DAYS);
+        DAYS(ImmutableList.of("d", "day", "days"), ChronoUnit.DAYS),
+        WEEKS(ImmutableList.of("w", "week", "weeks"), ChronoUnit.WEEKS),
+        MONTH(ImmutableList.of("month", "months"), ChronoUnit.MONTHS),
+        YEARS(ImmutableList.of("y", "year", "years"), ChronoUnit.YEARS);
 
         public static ChronoUnit parse(String string) {
             return Arrays.stream(values())
diff --git 
a/server/container/util/src/test/java/org/apache/james/util/DurationParserTest.java
 
b/server/container/util/src/test/java/org/apache/james/util/DurationParserTest.java
index e1c962d..fa997ae 100644
--- 
a/server/container/util/src/test/java/org/apache/james/util/DurationParserTest.java
+++ 
b/server/container/util/src/test/java/org/apache/james/util/DurationParserTest.java
@@ -94,6 +94,27 @@ class DurationParserTest {
             .isEqualTo(Duration.ofDays(2));
     }
 
+    @ParameterizedTest
+    @ValueSource(strings = {"2 w", "2 week", "2 Week", "2 weeks"})
+    void parseShouldHandleWeeks(String input) {
+        assertThat(DurationParser.parse(input))
+            .isEqualTo(ChronoUnit.WEEKS.getDuration().multipliedBy(2));
+    }
+
+    @ParameterizedTest
+    @ValueSource(strings = {"2 months", "2 month", "2 Month"})
+    void parseShouldHandleMonths(String input) {
+        assertThat(DurationParser.parse(input))
+            .isEqualTo(ChronoUnit.MONTHS.getDuration().multipliedBy(2));
+    }
+
+    @ParameterizedTest
+    @ValueSource(strings = {"2 y", "2 year", "2 Year", "2 years"})
+    void parseShouldHandleYears(String input) {
+        assertThat(DurationParser.parse(input))
+            .isEqualTo(ChronoUnit.YEARS.getDuration().multipliedBy(2));
+    }
+
     @Test
     void parseShouldThrowWhenIllegalUnitInRawString() {
         assertThatThrownBy(() -> DurationParser.parse("2 unknown"))


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to