@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()); }
@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 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()); }