private static IfAccumulatedFileSize create(final String size) { return IfAccumulatedFileSize.createFileSizeCondition(size); }
@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()); }
@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 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 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()); }