Java tutorial
/* * Copyright 2009, Andrej Viepra * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package rascal; import junit.framework.AssertionFailedError; import org.springframework.test.AssertThrows; public abstract class AssertThrowsWithCause extends AssertThrows { private Class<? extends Exception> expectedCauseException; protected AssertThrowsWithCause(Class<? extends Exception> expectedException, Class<? extends Exception> expectedCauseException) { super(expectedException); this.expectedCauseException = expectedCauseException; } protected AssertThrowsWithCause(Class<? extends Exception> expectedException, Class<? extends Exception> expectedCauseException, String failureMessage) { super(expectedException, failureMessage); this.expectedCauseException = expectedCauseException; } protected Class<? extends Exception> getExpectedCauseException() { return expectedCauseException; } @Override protected void checkExceptionExpectations(Exception actualException) { super.checkExceptionExpectations(actualException); if (actualException.getCause() == null || !getExpectedCauseException().isAssignableFrom(actualException.getCause().getClass())) { throw new AssertionFailedError(String.format("Should have thrown exception with cause [%s]", getExpectedCauseException().getName())); } } }