@Test public void testGetDriver() { assertScheme(new String[][] { { null, "" }, { null, "." }, }, NIL, MOK, ALL); assertScheme(new String[][] { { null, ".tar.gz" }, { null, ".zip" }, }, NIL, MOK); assertScheme(new String[][] { { "tar.gz", ".tar.gz" }, { "tar.gz", "test.tar.gz" },
@Test public void testGetSuffixes() { assertSuffixes(new String[] { "zip", "zip", "zip", ".zip",
assertIllegalConstructors(NullPointerException.class, new Object[][] { { null, null }, assertIllegalConstructors(IllegalArgumentException.class, new Object[][] { { "DRIVER" },
@SuppressWarnings("AssignmentToForLoopParameter") private void assertScheme( final String[][] tests, final TArchiveDetector... detectors) { for (TArchiveDetector detector : detectors) { try { detector.getScheme(null); fail("Expected NullPointerException!"); } catch (NullPointerException expected) { } for (String[] test : tests) { final FsScheme scheme = test[0] == null ? null : FsScheme.create(test[0]); final String path = test[1]; assertScheme(detector, scheme, path); // Add level of indirection in order to test caching. detector = new TArchiveDetector(detector, new Object[0][0]); assertScheme(detector, scheme, path); } } }