/*
* Copyright 2002-2006 the original author or authors.
*
* 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 org.springframework.beans.factory.parsing;
import junit.framework.Assert;
import junit.framework.TestCase;
import org.apache.commons.logging.Log;
import org.easymock.AbstractMatcher;
import org.easymock.MockControl;
import org.springframework.core.io.DescriptiveResource;
import org.springframework.test.AssertThrows;
/**
* @author Rick Evans
* @author Juergen Hoeller
*/
public final class FailFastProblemReporterTests extends TestCase {
public void testError() throws Exception {
new AssertThrows(BeanDefinitionParsingException.class) {
public void test() throws Exception {
FailFastProblemReporter reporter = new FailFastProblemReporter();
reporter.error(new Problem("VGER", new Location(new DescriptiveResource("here")),
null, new IllegalArgumentException()));
}
}.runTest();
}
public void testWarn() throws Exception {
IllegalArgumentException rootCause = new IllegalArgumentException();
Problem problem = new Problem("VGER", new Location(new DescriptiveResource("here")),
null, new IllegalArgumentException());
MockControl mockLog = MockControl.createControl(Log.class);
Log log = (Log) mockLog.getMock();
log.warn(null, rootCause);
mockLog.setMatcher(new AbstractMatcher() {
public boolean matches(Object[] expected, Object[] actual) {
Assert.assertEquals(2, actual.length);
Assert.assertTrue(actual[1] instanceof IllegalArgumentException);
return true;
}
});
mockLog.replay();
FailFastProblemReporter reporter = new FailFastProblemReporter();
reporter.setLogger(log);
reporter.warning(problem);
mockLog.verify();
}
}