@Test public void testAcceptIfExceedThreshold() { final String[] sizes = {"2KB", "3MB", "4GB"}; for (final String size : sizes) { final IfAccumulatedFileSize condition = IfAccumulatedFileSize.createFileSizeCondition(size); final DummyFileAttributes attribs = new DummyFileAttributes(); attribs.size = condition.getThresholdBytes() + 1; assertTrue(condition.accept(null, null, attribs)); } }
@Test public void testBeforeTreeWalk() { final CountingCondition counter = new CountingCondition(true); final IfAccumulatedFileSize filter = IfAccumulatedFileSize.createFileSizeCondition("2GB", counter, counter, counter); filter.beforeFileTreeWalk(); assertEquals(3, counter.getBeforeFileTreeWalkCount()); }
private static IfAccumulatedFileSize create(final String size) { return IfAccumulatedFileSize.createFileSizeCondition(size); }
@Test public void testGetThresholdBytes() { assertEquals(2, create("2B").getThresholdBytes()); assertEquals(3, create("3 B").getThresholdBytes()); assertEquals(2 * 1024, create("2KB").getThresholdBytes()); assertEquals(3 * 1024, create("3 KB").getThresholdBytes()); assertEquals(2 * 1024 * 1024, create("2MB").getThresholdBytes()); assertEquals(3 * 1024 * 1024, create("3 MB").getThresholdBytes()); assertEquals(2L * 1024 * 1024 * 1024, create("2GB").getThresholdBytes()); assertEquals(3L * 1024 * 1024 * 1024, create("3 GB").getThresholdBytes()); }
/** * Create an IfAccumulatedFileSize condition. * * @param threshold The threshold accumulated file size from which files will be deleted. * @return An IfAccumulatedFileSize condition. */ @PluginFactory public static IfAccumulatedFileSize createFileSizeCondition( // @formatter:off @PluginAttribute("exceeds") final String size, @PluginElement("PathConditions") final PathCondition... nestedConditions) { // @formatter:on if (size == null) { LOGGER.error("IfAccumulatedFileSize missing mandatory size threshold."); } final long threshold = size == null ? Long.MAX_VALUE : FileSize.parse(size, Long.MAX_VALUE); return new IfAccumulatedFileSize(threshold, nestedConditions); }
@Test public void testNotAcceptOnExactMatch() { final String[] sizes = {"2KB", "3MB", "4GB"}; for (final String size : sizes) { final IfAccumulatedFileSize condition = IfAccumulatedFileSize.createFileSizeCondition(size); final DummyFileAttributes attribs = new DummyFileAttributes(); attribs.size = condition.getThresholdBytes(); assertFalse(condition.accept(null, null, attribs)); } }
@Test public void testNotAcceptIfBelowThreshold() { final String[] sizes = {"2KB", "3MB", "4GB"}; for (final String size : sizes) { final IfAccumulatedFileSize condition = IfAccumulatedFileSize.createFileSizeCondition(size); final DummyFileAttributes attribs = new DummyFileAttributes(); attribs.size = condition.getThresholdBytes() - 1; assertFalse(condition.accept(null, null, attribs)); } }
@Test public void testAcceptOnceThresholdExceeded() { final DummyFileAttributes attribs = new DummyFileAttributes(); final String[] sizes = {"2KB", "3MB", "4GB"}; for (final String size : sizes) { final IfAccumulatedFileSize condition = IfAccumulatedFileSize.createFileSizeCondition(size); final long quarter = condition.getThresholdBytes() / 4; attribs.size = quarter; assertFalse(condition.accept(null, null, attribs)); assertFalse(condition.accept(null, null, attribs)); assertFalse(condition.accept(null, null, attribs)); assertFalse(condition.accept(null, null, attribs)); assertTrue(condition.accept(null, null, attribs)); } }
@Test public void testAcceptCallsNestedConditionsOnlyIfPathAccepted() { final CountingCondition counter = new CountingCondition(true); final IfAccumulatedFileSize condition = IfAccumulatedFileSize.createFileSizeCondition("2KB", counter); final DummyFileAttributes attribs = new DummyFileAttributes(); final long quarter = condition.getThresholdBytes() / 4; attribs.size = quarter; assertFalse(condition.accept(null, null, attribs)); assertEquals(0, counter.getAcceptCount()); assertFalse(condition.accept(null, null, attribs)); assertEquals(0, counter.getAcceptCount()); assertFalse(condition.accept(null, null, attribs)); assertEquals(0, counter.getAcceptCount()); assertFalse(condition.accept(null, null, attribs)); assertEquals(0, counter.getAcceptCount()); assertTrue(condition.accept(null, null, attribs)); assertEquals(1, counter.getAcceptCount()); assertTrue(condition.accept(null, null, attribs)); assertEquals(2, counter.getAcceptCount()); }