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