@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 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 testGetDurationReturnsConstructorValue() { final IfLastModified filter = IfLastModified.createAgeCondition(Duration.parse("P7D")); assertEquals(0, filter.getAge().compareTo(Duration.parse("P7D"))); }
/** * Create an IfLastModified condition. * * @param age The path age that is accepted by this condition. Must be a valid Duration. * @param nestedConditions nested conditions to evaluate if this condition accepts a path * @return An IfLastModified condition. */ @PluginFactory public static IfLastModified createAgeCondition( // @formatter:off @PluginAttribute("age") final Duration age, @PluginElement("PathConditions") final PathCondition... nestedConditions) { // @formatter:on return new IfLastModified(age, nestedConditions); }
@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 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 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()); }