diff options
author | Hugo Arès <hugo.ares@ericsson.com> | 2016-06-03 09:11:58 -0400 |
---|---|---|
committer | Hugo Arès <hugo.ares@ericsson.com> | 2016-06-06 10:08:37 -0400 |
commit | f379688aadc9a4afa651e9bca731d3932ad46b1b (patch) | |
tree | c5ac50e52bbccfb2f70799879c3744de0794658a /org.eclipse.jgit.test/tst | |
parent | 534fcb14795ac8cb1107cda9be1de4f5e1f38ea1 (diff) | |
download | jgit-f379688aadc9a4afa651e9bca731d3932ad46b1b.tar.gz jgit-f379688aadc9a4afa651e9bca731d3932ad46b1b.zip |
Add method to read time unit from config
Time units supported:
-milliseconds (1 ms, 2 milliseconds)
-seconds (1 s, 1 sec, 1 second, 2 seconds)
-minutes (1 m, 1 min, 1 minute, 2 minutes)
-hours (1 h, 1 hr, 1 hour, 2 hours)
-days (1 d, 1 day, 2 days)
-weeks (1 w, 1 week, 2 weeks)
-months (1 mon, 1 month, 2 months)
-years (1 y, 1 year, 2 years)
This functionality is implemented in Gerrit ConfigUtil class. Add it to
JGit so it can eventually be remove from Gerrit.
Change-Id: I2d6564ff656b6ab9424a9360624061c94fd5f413
Signed-off-by: Hugo Arès <hugo.ares@ericsson.com>
Diffstat (limited to 'org.eclipse.jgit.test/tst')
-rw-r--r-- | org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ConfigTest.java | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ConfigTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ConfigTest.java index 6d07d34d3a..d98a7d433d 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ConfigTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ConfigTest.java @@ -48,6 +48,11 @@ package org.eclipse.jgit.lib; +import static java.util.concurrent.TimeUnit.DAYS; +import static java.util.concurrent.TimeUnit.HOURS; +import static java.util.concurrent.TimeUnit.MILLISECONDS; +import static java.util.concurrent.TimeUnit.MINUTES; +import static java.util.concurrent.TimeUnit.SECONDS; import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -64,6 +69,7 @@ import java.util.Arrays; import java.util.Iterator; import java.util.LinkedList; import java.util.Set; +import java.util.concurrent.TimeUnit; import org.eclipse.jgit.api.MergeCommand.FastForwardMode; import org.eclipse.jgit.errors.ConfigInvalidException; @@ -849,4 +855,93 @@ public class ConfigTest { c.fromText(content); return c; } + + @Test + public void testTimeUnit() throws ConfigInvalidException { + assertEquals(0, parseTime("0", MILLISECONDS)); + assertEquals(2, parseTime("2ms", MILLISECONDS)); + assertEquals(200, parseTime("200 milliseconds", MILLISECONDS)); + + assertEquals(0, parseTime("0s", SECONDS)); + assertEquals(2, parseTime("2s", SECONDS)); + assertEquals(231, parseTime("231sec", SECONDS)); + assertEquals(1, parseTime("1second", SECONDS)); + assertEquals(300, parseTime("300 seconds", SECONDS)); + + assertEquals(2, parseTime("2m", MINUTES)); + assertEquals(2, parseTime("2min", MINUTES)); + assertEquals(1, parseTime("1 minute", MINUTES)); + assertEquals(10, parseTime("10 minutes", MINUTES)); + + assertEquals(5, parseTime("5h", HOURS)); + assertEquals(5, parseTime("5hr", HOURS)); + assertEquals(1, parseTime("1hour", HOURS)); + assertEquals(48, parseTime("48hours", HOURS)); + + assertEquals(5, parseTime("5 h", HOURS)); + assertEquals(5, parseTime("5 hr", HOURS)); + assertEquals(1, parseTime("1 hour", HOURS)); + assertEquals(48, parseTime("48 hours", HOURS)); + assertEquals(48, parseTime("48 \t \r hours", HOURS)); + + assertEquals(4, parseTime("4d", DAYS)); + assertEquals(1, parseTime("1day", DAYS)); + assertEquals(14, parseTime("14days", DAYS)); + + assertEquals(7, parseTime("1w", DAYS)); + assertEquals(7, parseTime("1week", DAYS)); + assertEquals(14, parseTime("2w", DAYS)); + assertEquals(14, parseTime("2weeks", DAYS)); + + assertEquals(30, parseTime("1mon", DAYS)); + assertEquals(30, parseTime("1month", DAYS)); + assertEquals(60, parseTime("2mon", DAYS)); + assertEquals(60, parseTime("2months", DAYS)); + + assertEquals(365, parseTime("1y", DAYS)); + assertEquals(365, parseTime("1year", DAYS)); + assertEquals(365 * 2, parseTime("2years", DAYS)); + } + + private long parseTime(String value, TimeUnit unit) + throws ConfigInvalidException { + Config c = parse("[a]\na=" + value + "\n"); + return c.getTimeUnit("a", null, "a", 0, unit); + } + + @Test + public void testTimeUnitDefaultValue() throws ConfigInvalidException { + // value not present + assertEquals(20, parse("[a]\na=0\n").getTimeUnit("a", null, "b", 20, + MILLISECONDS)); + // value is empty + assertEquals(20, parse("[a]\na=\" \"\n").getTimeUnit("a", null, "a", 20, + MILLISECONDS)); + + // value is not numeric + assertEquals(20, parse("[a]\na=test\n").getTimeUnit("a", null, "a", 20, + MILLISECONDS)); + } + + @Test + public void testTimeUnitInvalid() throws ConfigInvalidException { + expectedEx.expect(IllegalArgumentException.class); + expectedEx + .expectMessage("Invalid time unit value: a.a=1 monttthhh"); + parseTime("1 monttthhh", DAYS); + } + + @Test + public void testTimeUnitInvalidWithSection() throws ConfigInvalidException { + Config c = parse("[a \"b\"]\na=1 monttthhh\n"); + expectedEx.expect(IllegalArgumentException.class); + expectedEx.expectMessage("Invalid time unit value: a.b.a=1 monttthhh"); + c.getTimeUnit("a", "b", "a", 0, DAYS); + } + + @Test + public void testTimeUnitNegative() throws ConfigInvalidException { + expectedEx.expect(IllegalArgumentException.class); + parseTime("-1", MILLISECONDS); + } } |