m-chrzan.xyz
aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcin Chrzanowski <marcin.j.chrzanowski@gmail.com>2019-11-03 13:33:32 +0100
committerMarcin Chrzanowski <marcin.j.chrzanowski@gmail.com>2019-11-03 13:33:32 +0100
commit9812ed30bd15324d2a337c8d838786a93f9df69f (patch)
tree0486fb7417cab98afe5e3ad80d95a8b9cee37b1b
parentb1078581d4730d4944180a739fcce51a39259112 (diff)
Add duration parsing tests
-rw-r--r--src/main/java/pl/edu/mimuw/cloudatlas/model/ValueDuration.java6
-rw-r--r--src/test/java/pl/edu/mimuw/cloudatlas/ValueDurationTest.java44
2 files changed, 49 insertions, 1 deletions
diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/model/ValueDuration.java b/src/main/java/pl/edu/mimuw/cloudatlas/model/ValueDuration.java
index bf9d0e0..444ce78 100644
--- a/src/main/java/pl/edu/mimuw/cloudatlas/model/ValueDuration.java
+++ b/src/main/java/pl/edu/mimuw/cloudatlas/model/ValueDuration.java
@@ -152,6 +152,12 @@ public class ValueDuration extends ValueSimple<Long> {
return result;
}
+ /**
+ * @param matcher A regex matcher
+ * @param group The name of a group matched by <code>matcher</code> that
+ * should have captured a number.
+ * @return The parsed number.
+ */
private static long parseLongGroup(Matcher matcher, String group) {
return Long.parseLong(matcher.group(group));
}
diff --git a/src/test/java/pl/edu/mimuw/cloudatlas/ValueDurationTest.java b/src/test/java/pl/edu/mimuw/cloudatlas/ValueDurationTest.java
index 6bfc3a0..9db36eb 100644
--- a/src/test/java/pl/edu/mimuw/cloudatlas/ValueDurationTest.java
+++ b/src/test/java/pl/edu/mimuw/cloudatlas/ValueDurationTest.java
@@ -7,6 +7,48 @@ public class ValueDurationTest {
@Test
public void testGetValue() {
ValueDuration v = new ValueDuration(42l);
- assertEquals(v.getValue(), new Long(42l));
+ assertEquals(new Long(42l), v.getValue());
+ }
+
+ @Test
+ public void testParseDurationMillisecond() {
+ ValueDuration v = new ValueDuration("+0 00:00:00.001");
+ assertEquals(new Long(1l), v.getValue());
+ }
+
+ @Test
+ public void testParseDurationSecond() {
+ ValueDuration v = new ValueDuration("+0 00:00:01.000");
+ assertEquals(new Long(1000l), v.getValue());
+ }
+
+ @Test
+ public void testParseDurationMinute() {
+ ValueDuration v = new ValueDuration("+0 00:01:00.000");
+ assertEquals(new Long(60000l), v.getValue());
+ }
+
+ @Test
+ public void testParseDurationHour() {
+ ValueDuration v = new ValueDuration("+0 01:00:00.000");
+ assertEquals(new Long(3600000l), v.getValue());
+ }
+
+ @Test
+ public void testParseDurationDay() {
+ ValueDuration v = new ValueDuration("+1 00:00:00.000");
+ assertEquals(new Long(86400000l), v.getValue());
+ }
+
+ @Test
+ public void testParseDurationComplex() {
+ ValueDuration v = new ValueDuration("+0 01:59:40.000");
+ assertEquals(new Long(7180000l), v.getValue());
+ }
+
+ @Test
+ public void testParseDurationNegative() {
+ ValueDuration v = new ValueDuration("-1 01:01:01.001");
+ assertEquals(new Long(-90061001l), v.getValue());
}
}