mirror of
https://github.com/sigmasternchen/xtext-core
synced 2025-03-16 08:48:55 +00:00
[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:
parent
ce25ccc1e5
commit
55c155fdf1
1 changed files with 29 additions and 17 deletions
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue