/** * Factory for creating a new {@code ValueWrapper} for the supplied {@code value}. * * <p>If the supplied {@code value} is {@code null}, this method will return a * cached {@code ValueWrapper} suitable for all null values. * * @param value the value to wrap * @return a wrapper for the supplied value */ public static ValueWrapper create(Object value) { return (value == null ? nullValueWrapper : new ValueWrapper(value)); }
/** * Constructs an {@code AssertionFailedError} with a message, * expected/actual values, and a cause. * * @param message the detail message; {@code null} or blank will be * converted to the empty {@code String} because the {@link AssertionError} * superclass does not support {@code null} messages. */ public AssertionFailedError(String message, Object expected, Object actual, Throwable cause) { this(message, ValueWrapper.create(expected), ValueWrapper.create(actual), cause); }
static DecoratedAssertionFailedError create(Throwable src) { // The two constructors have different behaviour due to // parent constructor org.opentest4j.DecoratedAssertionFailedError DecoratedAssertionFailedError result; if (src instanceof AssertionFailedError && ((AssertionFailedError) src).getExpected() != null && ((AssertionFailedError) src).getActual() != null) { result = new DecoratedAssertionFailedError( src.toString(), ((AssertionFailedError) src).getExpected().getValue(), ((AssertionFailedError) src).getActual().getValue(), src ); } else { result = new DecoratedAssertionFailedError( src.toString(), src ); } result.setStackTrace(src.getStackTrace()); for (Throwable sp : src.getSuppressed()) { result.addSuppressed(sp); } return result; }