[xbase][validation] Optional validation of undeclared exceptions

see https://bugs.eclipse.org/bugs/show_bug.cgi?id=400936

Change-Id: If9dc2545eb94c6f1e89687fad40ff9161c3d7b8e
This commit is contained in:
Sebastian Zarnekow 2013-03-07 13:08:51 +01:00
parent ce25ccc1e5
commit 55c155fdf1

View file

@ -41,7 +41,7 @@ public class ValidationTestHelper {
public void assertNoIssues(final EObject model) {
final List<Issue> validate = validate(model);
if (!isEmpty(validate))
fail("Expected no issues, but got :" + validate);
fail("Expected no issues, but got :" + getIssuesAsString(model, validate, new StringBuilder()));
}
public void assertNoErrors(final EObject model) {
@ -52,7 +52,7 @@ public class ValidationTestHelper {
}
});
if (!isEmpty(issues))
fail("Expected no errors, but got :" + issues);
fail("Expected no errors, but got :" + getIssuesAsString(model, issues, new StringBuilder()));
}
public void assertNoError(final EObject model, final String issuecode) {
@ -63,7 +63,7 @@ public class ValidationTestHelper {
}
});
if (!isEmpty(issues))
fail("Expected no error '" + issuecode + "' but got " + issues);
fail("Expected no error '" + issuecode + "' but got " + getIssuesAsString(model, issues, new StringBuilder()));
}
/**
@ -81,7 +81,7 @@ public class ValidationTestHelper {
}
});
if (!isEmpty(issues))
fail("Expected no error on instances of '" + objectType.getName() + "' but got " + issues);
fail("Expected no error on instances of '" + objectType.getName() + "' but got " + getIssuesAsString(root, issues, new StringBuilder()));
}
/**
@ -100,8 +100,9 @@ public class ValidationTestHelper {
return false;
}
});
if (!isEmpty(issues))
fail("Expected no error '" + issuecode + "' but got " + issues);
if (!isEmpty(issues)) {
fail("Expected no error '" + issuecode + "' but got " + getIssuesAsString(root, issues, new StringBuilder()));
}
}
public void assertError(final EObject model, final EClass objectType, final String code,
@ -109,6 +110,9 @@ public class ValidationTestHelper {
assertIssue(model, objectType, code, Severity.ERROR, messageParts);
}
/**
* @since 2.4
*/
public void assertIssue(final EObject model, final EClass objectType, final String code, final Severity severity,
final String... messageParts) {
final List<Issue> validate = validate(model);
@ -136,22 +140,30 @@ public class ValidationTestHelper {
.append("' on ")
.append(objectType.getName())
.append(" but got\n");
for(Issue issue: validate) {
EObject eObject = model.eResource().getResourceSet().getEObject(issue.getUriToProblem(), true);
message.append(issue.getSeverity())
.append(" (")
.append(issue.getCode())
.append(") '")
.append(issue.getMessage())
.append("' on ")
.append(eObject.eClass().getName())
.append("\n");
}
getIssuesAsString(model, validate, message);
assertEquals(Joiner.on('\n').join(messageParts), message.toString());
fail(message.toString());
}
}
/**
* @since 2.4
*/
protected StringBuilder getIssuesAsString(final EObject model, final Iterable<Issue> issues, StringBuilder result) {
for(Issue issue: issues) {
EObject eObject = model.eResource().getResourceSet().getEObject(issue.getUriToProblem(), true);
result.append(issue.getSeverity())
.append(" (")
.append(issue.getCode())
.append(") '")
.append(issue.getMessage())
.append("' on ")
.append(eObject.eClass().getName())
.append("\n");
}
return result;
}
public void assertWarning(final EObject model, final EClass objectType, final String code,
final String... messageParts) {
assertIssue(model, objectType, code, Severity.WARNING, messageParts);