private void testSafeDeleteHelper( String entityType, String overridingId, boolean cascade, boolean dryrun, boolean forced, boolean logViolations, Integer maxObjects, AccessibilityCheck access, boolean leafDataOnly, int expectedNObjects, int expectedDepth, CascadeResult.Status expectedStatus, CascadeResultError.ErrorType expectedErrorType, CascadeResultError.ErrorType expectedWarningType) { // System.out.println("Testing safeDelete: "); // System.out.println(" entity type : " + entityType); // System.out.println(" override id : " + overridingId); // System.out.println(" cascade : " + cascade); // System.out.println(" dryrun : " + dryrun); // System.out.println(" maxObjects : " + maxObjects); // System.out.println(" leaf data only : " + leafDataOnly); // System.out.println(" expected affected count : " + expectedNObjects); // System.out.println(" expected depth : " + expectedDepth); CascadeResult result = null; String idToDelete = prepareSafeDeleteGradingPeriodData(leafDataOnly); // used to test bad id scenario if (overridingId != null) { idToDelete = overridingId; } result = repository.safeDelete( entityType, idToDelete, cascade, dryrun, forced, logViolations, maxObjects, access); // check for at least one instance of the expected error type boolean errorMatchFound = false; List<CascadeResultError> errors = result.getErrors(); if (expectedErrorType == null && errors != null && errors.size() == 0) { errorMatchFound = true; } else { for (CascadeResultError error : errors) { if (error.getErrorType() == expectedErrorType) { errorMatchFound = true; break; } } } // for (CascadeResultError error : result.getErrors()) { // System.out.println(error); // } // check for at least one instance of the expected warning type boolean warningMatchFound = false; List<CascadeResultError> warnings = result.getWarnings(); if (expectedWarningType == null && warnings != null && warnings.size() == 0) { warningMatchFound = true; } else { for (CascadeResultError warning : warnings) { if (warning.getErrorType() == expectedWarningType) { warningMatchFound = true; break; } } } // for(CascadeResultError warning : result.getWarnings()) { // System.out.println(warning); // } // verify expected results assertEquals(expectedNObjects, result.getnObjects()); assertEquals(expectedDepth, result.getDepth()); assertEquals(expectedStatus, result.getStatus()); assertTrue(errorMatchFound); assertTrue(warningMatchFound); }