This is an automated email from the git hooks/post-receive script. eugene-guest pushed a commit to annotated tag testng-6.9.5 in repository testng.
commit c9cd68773ff11200e3ef2ace4987017ba3221d8d Author: Julien Herr <[email protected]> Date: Thu Jun 4 13:47:26 2015 +0200 Extract generic concept --- ....java => AbstractExpectedExceptionsHolder.java} | 38 ++++-------- .../testng/internal/ExpectedExceptionsHolder.java | 69 +++------------------- 2 files changed, 18 insertions(+), 89 deletions(-) diff --git a/src/main/java/org/testng/internal/ExpectedExceptionsHolder.java b/src/main/java/org/testng/internal/AbstractExpectedExceptionsHolder.java old mode 100755 new mode 100644 similarity index 60% copy from src/main/java/org/testng/internal/ExpectedExceptionsHolder.java copy to src/main/java/org/testng/internal/AbstractExpectedExceptionsHolder.java index 46a3a4b..204d87c --- a/src/main/java/org/testng/internal/ExpectedExceptionsHolder.java +++ b/src/main/java/org/testng/internal/AbstractExpectedExceptionsHolder.java @@ -4,19 +4,13 @@ import org.testng.ITestNGMethod; import org.testng.TestException; import java.util.Arrays; -import java.util.regex.Pattern; -/** - * A class that contains the expected exceptions and the message regular expression. - * @author cbeust - */ -public class ExpectedExceptionsHolder { +public abstract class AbstractExpectedExceptionsHolder { + private final Class<?>[] expectedClasses; - private final String messageRegExp; - public ExpectedExceptionsHolder(Class<?>[] expectedClasses, String messageRegExp) { + protected AbstractExpectedExceptionsHolder(Class<?>[] expectedClasses) { this.expectedClasses = expectedClasses; - this.messageRegExp = messageRegExp; } /** @@ -38,7 +32,7 @@ public class ExpectedExceptionsHolder { Class<?> realExceptionClass= ite.getClass(); for (Class<?> exception : expectedClasses) { - if (exception.isAssignableFrom(realExceptionClass) && messageRegExpMatches(ite)) { + if (exception.isAssignableFrom(realExceptionClass) && isExceptionMatches(ite)) { return true; } } @@ -46,32 +40,18 @@ public class ExpectedExceptionsHolder { return false; } - /** - * message / regEx .* other - * null true false - * non-null true match - */ - private boolean messageRegExpMatches(Throwable ite) { - if (".*".equals(messageRegExp)) { - return true; - } else { - final String message = ite.getMessage(); - return message != null && Pattern.compile(messageRegExp, Pattern.DOTALL).matcher(ite.getMessage()).matches(); - } - } - public TestException wrongException(Throwable ite) { - if (messageRegExpMatches(ite)) { + if (isExceptionMatches(ite)) { return new TestException("Expected exception of " + getExpectedExceptionsPluralize() + " but got " + ite, ite); } else { - return new TestException("The exception was thrown with the wrong message:" + - " expected \"" + messageRegExp + "\"" + - " but got \"" + ite.getMessage() + "\"", ite); + return new TestException(getWrongExceptionMessage(ite), ite); } } + protected abstract String getWrongExceptionMessage(Throwable ite); + public TestException noException(ITestNGMethod testMethod) { if (expectedClasses == null || expectedClasses.length == 0) { return null; @@ -91,4 +71,6 @@ public class ExpectedExceptionsHolder { } return sb.toString(); } + + protected abstract boolean isExceptionMatches(Throwable ite); } diff --git a/src/main/java/org/testng/internal/ExpectedExceptionsHolder.java b/src/main/java/org/testng/internal/ExpectedExceptionsHolder.java index 46a3a4b..0894340 100755 --- a/src/main/java/org/testng/internal/ExpectedExceptionsHolder.java +++ b/src/main/java/org/testng/internal/ExpectedExceptionsHolder.java @@ -10,48 +10,21 @@ import java.util.regex.Pattern; * A class that contains the expected exceptions and the message regular expression. * @author cbeust */ -public class ExpectedExceptionsHolder { - private final Class<?>[] expectedClasses; +public class ExpectedExceptionsHolder extends AbstractExpectedExceptionsHolder { private final String messageRegExp; public ExpectedExceptionsHolder(Class<?>[] expectedClasses, String messageRegExp) { - this.expectedClasses = expectedClasses; + super(expectedClasses); this.messageRegExp = messageRegExp; } /** - * @param ite The exception that was just thrown - * @return true if the exception that was just thrown is part of the - * expected exceptions - */ - public boolean isExpectedException(Throwable ite) { - if (expectedClasses == null) { - return false; - } - - // TestException is the wrapper exception that TestNG will be throwing when an exception was - // expected but not thrown - if (ite.getClass() == TestException.class) { - return false; - } - - Class<?> realExceptionClass= ite.getClass(); - - for (Class<?> exception : expectedClasses) { - if (exception.isAssignableFrom(realExceptionClass) && messageRegExpMatches(ite)) { - return true; - } - } - - return false; - } - - /** * message / regEx .* other * null true false * non-null true match */ - private boolean messageRegExpMatches(Throwable ite) { + @Override + protected boolean isExceptionMatches(Throwable ite) { if (".*".equals(messageRegExp)) { return true; } else { @@ -60,35 +33,9 @@ public class ExpectedExceptionsHolder { } } - public TestException wrongException(Throwable ite) { - if (messageRegExpMatches(ite)) { - return new TestException("Expected exception of " + - getExpectedExceptionsPluralize() - + " but got " + ite, ite); - } else { - return new TestException("The exception was thrown with the wrong message:" + - " expected \"" + messageRegExp + "\"" + - " but got \"" + ite.getMessage() + "\"", ite); - } - } - - public TestException noException(ITestNGMethod testMethod) { - if (expectedClasses == null || expectedClasses.length == 0) { - return null; - } - return new TestException("Method " + testMethod + " should have thrown an exception of " - + getExpectedExceptionsPluralize()); - } - - private String getExpectedExceptionsPluralize() { - StringBuilder sb = new StringBuilder(); - if (expectedClasses.length > 1) { - sb.append("any of types "); - sb.append(Arrays.toString(expectedClasses)); - } else { - sb.append("type "); - sb.append(expectedClasses[0]); - } - return sb.toString(); + protected String getWrongExceptionMessage(Throwable ite) { + return "The exception was thrown with the wrong message:" + + " expected \"" + messageRegExp + "\"" + + " but got \"" + ite.getMessage() + "\""; } } -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/testng.git _______________________________________________ pkg-java-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-commits

