templates.junit_soft_assertions_entry_point_class_template.txt Maven / Gradle / Ivy
package ${package}; import org.assertj.core.internal.cglib.proxy.Enhancer; import org.assertj.core.api.ErrorCollector; import org.junit.rules.TestRule; import org.junit.runner.Description; import org.junit.runners.model.MultipleFailureException; import org.junit.runners.model.Statement; /** * Entry point for assertions of different data types. Each method in this class is a static factory for the * type-specific assertion objects. */ public class JUnitSoftAssertions implements TestRule { /** Collects error messages of all AssertionErrors thrown by the proxied method. */ protected final ErrorCollector collector = new ErrorCollector(); /** Creates a new{@link JUnitSoftAssertions}. */ public JUnitSoftAssertions() { super(); } /** * TestRule implementation that verifies that no proxied assertion methods have failed. */ public Statement apply(final Statement base, Description description) { return new Statement() { @Override public void evaluate() throws Throwable { base.evaluate(); MultipleFailureException.assertEmpty(collector.errors()); } }; } @SuppressWarnings("unchecked") protectedV proxy(Class assertClass, Class actualClass, T actual) { Enhancer enhancer = new Enhancer(); enhancer.setSuperclass(assertClass); enhancer.setCallback(collector); return (V) enhancer.create(new Class[] { actualClass }, new Object[] { actual }); } ${all_assertions_entry_points} } 
© 2015 - 2025 Weber Informatics LLC | Privacy Policy