@Test public void testEquals() { assertNotEquals(Duration.parse("PT1S"),(Duration.parse("PT2S"))); assertNotEquals(Duration.parse("PT1M"),(Duration.parse("PT2M"))); assertNotEquals(Duration.parse("PT1H"),(Duration.parse("PT2H"))); assertNotEquals(Duration.parse("P1D"),(Duration.parse("P2D"))); assertEquals( Duration.parse("PT1S"),(Duration.parse("PT1S"))); assertEquals( Duration.parse("PT1M"),(Duration.parse("PT1M"))); assertEquals( Duration.parse("PT1H"),(Duration.parse("PT1H"))); assertEquals( Duration.parse("P1D"),(Duration.parse("P1D"))); assertEquals( Duration.parse("PT1M"),(Duration.parse("PT60S"))); assertEquals( Duration.parse("PT1H"),(Duration.parse("PT60M"))); assertEquals( Duration.parse("PT1H"),(Duration.parse("PT3600S"))); assertEquals( Duration.parse("P1D"),(Duration.parse("PT24H"))); assertEquals(Duration.parse("P1D"), (Duration.parse("PT1440M"))); }
@Test(expected = IllegalArgumentException.class) public void testParseFailsIfSectionsOutOfOrder() { Duration.parse("P4DT2M1S3H"); }
@Test(expected = IllegalArgumentException.class) public void testParseFailsIfInvalidPattern() { Duration.parse("abc"); }
@Test(expected = NullPointerException.class) public void testParseFailsIfNullText() { Duration.parse(null); }
@Test(expected = IllegalArgumentException.class) public void testParseFailsIfTButMissingTime() { Duration.parse("P1dT"); }
@Test public void testCompareTo() { assertEquals(-1, Duration.parse("PT1S").compareTo(Duration.parse("PT2S"))); assertEquals(-1, Duration.parse("PT1M").compareTo(Duration.parse("PT2M"))); assertEquals(-1, Duration.parse("PT1H").compareTo(Duration.parse("PT2H"))); assertEquals(-1, Duration.parse("P1D").compareTo(Duration.parse("P2D"))); assertEquals(0, Duration.parse("PT1S").compareTo(Duration.parse("PT1S"))); assertEquals(0, Duration.parse("PT1M").compareTo(Duration.parse("PT1M"))); assertEquals(0, Duration.parse("PT1H").compareTo(Duration.parse("PT1H"))); assertEquals(0, Duration.parse("P1D").compareTo(Duration.parse("P1D"))); assertEquals(1, Duration.parse("PT2S").compareTo(Duration.parse("PT1S"))); assertEquals(1, Duration.parse("PT2M").compareTo(Duration.parse("PT1M"))); assertEquals(1, Duration.parse("PT2H").compareTo(Duration.parse("PT1H"))); assertEquals(1, Duration.parse("P2D").compareTo(Duration.parse("P1D"))); assertEquals(0, Duration.parse("PT1M").compareTo(Duration.parse("PT60S"))); assertEquals(0, Duration.parse("PT1H").compareTo(Duration.parse("PT60M"))); assertEquals(0, Duration.parse("PT1H").compareTo(Duration.parse("PT3600S"))); assertEquals(0, Duration.parse("P1D").compareTo(Duration.parse("PT24H"))); assertEquals(0, Duration.parse("P1D").compareTo(Duration.parse("PT1440M"))); }
@Test public void testToMillis() { assertEquals(0, Duration.ZERO.toMillis()); assertEquals(1000, Duration.parse("PT1S").toMillis()); assertEquals(1000 * 2 * 60, Duration.parse("PT2M").toMillis()); assertEquals(1000 * 3 * 60 * 60, Duration.parse("PT3H").toMillis()); assertEquals(1000 * 4 * 24 * 60 * 60, Duration.parse("P4D").toMillis()); final long expected = (1000 * 4 * 24 * 60 * 60) + (1000 * 3 * 60 * 60) + (1000 * 2 * 60) + 1000; assertEquals(expected, Duration.parse("P4DT3H2M1S").toMillis()); }
@Test public void testToString() { assertEquals("PT0S", Duration.ZERO.toString()); assertEquals("PT1S", Duration.parse("PT1S").toString()); assertEquals("PT2M1S", Duration.parse("PT2M1S").toString()); assertEquals("PT3H2M1S", Duration.parse("PT3H2M1S").toString()); assertEquals("P4DT3H2M1S", Duration.parse("P4DT3H2M1S").toString()); }
@Test public void testParseIsCaseInsensitive() { assertEquals("P4DT3H2M1S", Duration.parse("p4dt3h2m1s").toString()); }
{ "\n", null, null, Provider.class }, { "P7DT10H", Duration.parse("P7DT10H"), null, Duration.class },
@Test public void testAcceptsIfFileAgeEqualToDuration() { final IfLastModified filter = IfLastModified.createAgeCondition(Duration.parse("PT33S")); final DummyFileAttributes attrs = new DummyFileAttributes(); final long age = 33 * 1000; attrs.lastModified = FileTime.fromMillis(System.currentTimeMillis() - age); assertTrue(filter.accept(null, null, attrs)); }
@Test public void testDoesNotAcceptIfFileAgeLessThanDuration() { final IfLastModified filter = IfLastModified.createAgeCondition(Duration.parse("PT33S")); final DummyFileAttributes attrs = new DummyFileAttributes(); final long age = 33 * 1000 - 5; attrs.lastModified = FileTime.fromMillis(System.currentTimeMillis() - age); assertFalse(filter.accept(null, null, attrs)); }
@Test public void testAcceptsIfFileAgeExceedsDuration() { final IfLastModified filter = IfLastModified.createAgeCondition(Duration.parse("PT33S")); final DummyFileAttributes attrs = new DummyFileAttributes(); final long age = 33 * 1000 + 5; attrs.lastModified = FileTime.fromMillis(System.currentTimeMillis() - age); assertTrue(filter.accept(null, null, attrs)); }
@Test public void testBeforeTreeWalk() { final CountingCondition counter = new CountingCondition(true); final IfLastModified filter = IfLastModified.createAgeCondition(Duration.parse("PT33S"), counter, counter, counter); filter.beforeFileTreeWalk(); assertEquals(3, counter.getBeforeFileTreeWalkCount()); } }
@Test public void testAcceptCallsNestedConditionsOnlyIfPathAccepted() { final CountingCondition counter = new CountingCondition(true); final IfLastModified filter = IfLastModified.createAgeCondition(Duration.parse("PT33S"), counter); final DummyFileAttributes attrs = new DummyFileAttributes(); final long oldEnough = 33 * 1000 + 5; attrs.lastModified = FileTime.fromMillis(System.currentTimeMillis() - oldEnough); assertTrue(filter.accept(null, null, attrs)); assertEquals(1, counter.getAcceptCount()); assertTrue(filter.accept(null, null, attrs)); assertEquals(2, counter.getAcceptCount()); assertTrue(filter.accept(null, null, attrs)); assertEquals(3, counter.getAcceptCount()); final long tooYoung = 33 * 1000 - 5; attrs.lastModified = FileTime.fromMillis(System.currentTimeMillis() - tooYoung); assertFalse(filter.accept(null, null, attrs)); assertEquals(3, counter.getAcceptCount()); // no increase assertFalse(filter.accept(null, null, attrs)); assertEquals(3, counter.getAcceptCount()); assertFalse(filter.accept(null, null, attrs)); assertEquals(3, counter.getAcceptCount()); }