### Question:
ContentClassifications implements ProgressCheckFactory { @Override public ProgressCheck newInstance(final JsonObject jsonObject) { final String libsPathPrefix = jsonObject.getString(CONFIG_LIBS_PATH_PREFIX, LIBS_PATH_PREFIX); final Severity severity = Severity.valueOf(jsonObject.getString(CONFIG_SEVERITY, Severity.MAJOR.name()).toUpperCase()); final List<Rule> scopePaths = Rules.fromJsonArray(arrayOrEmpty(jsonObject, CONFIG_SCOPE_PATHS)); final List<String> searchPaths = optArray(jsonObject, CONFIG_SEARCH_PATHS) .map(JavaxJson::mapArrayOfStrings).orElse(Arrays.asList(APPS_PATH_PREFIX, LIBS_PATH_PREFIX)); return new Check(libsPathPrefix, severity, scopePaths, searchPaths); }  @Override ProgressCheck newInstance(final JsonObject jsonObject);  }### Answer:
@Test public void testCheckAllValid() throws Exception { ProgressCheck checkValid = new ContentClassifications() .newInstance(obj() .key("scopePaths", arr() .val(key("type", "allow").key("pattern", ".*/valid.*")) .val(key("type", "allow").key("pattern", "/apps/acs/(abstract|public).*"))) .key("searchPaths", arr("/apps", "/libs")) .get()); CheckReport reportValid = scanWithCheck(checkValid, pack); assertEquals("No violations when deny invalid paths.", 0, reportValid.getViolations().size()); }