include the message in Tokens#Problem#toString

Required adding accessor for "what" for use in tests
This commit is contained in:
Havoc Pennington 2012-06-18 22:58:04 -04:00
parent b3ac8d0539
commit ac878d653c
2 changed files with 17 additions and 2 deletions

View File

@ -121,6 +121,10 @@ final class Tokens {
this.cause = cause;
}
String what() {
return what;
}
String message() {
return message;
}
@ -139,6 +143,9 @@ final class Tokens {
sb.append('\'');
sb.append(what);
sb.append('\'');
sb.append(" (");
sb.append(message);
sb.append(")");
return sb.toString();
}
@ -276,6 +283,14 @@ final class Tokens {
return token instanceof Problem;
}
static String getProblemWhat(Token token) {
if (token instanceof Problem) {
return ((Problem) token).what();
} else {
throw new ConfigException.BugOrBroken("tried to get problem what from " + token);
}
}
static String getProblemMessage(Token token) {
if (token instanceof Problem) {
return ((Problem) token).message();

View File

@ -229,9 +229,9 @@ class TokenizerTest extends TestUtils {
val problem = tokenized(1)
assertTrue("reserved char is a problem", Tokens.isProblem(problem))
if (invalid == '+')
assertEquals("'end of file'", problem.toString())
assertEquals("end of file", Tokens.getProblemWhat(problem))
else
assertEquals("'" + invalid + "'", problem.toString())
assertEquals("" + invalid, Tokens.getProblemWhat(problem))
}
}
}