@Override public void testPreconditions() { Supplier<Void> fn = () -> { super.testPreconditions(); return null; }; AccessibleRunner.run(constructor, fn); } }
@Override public void testValidCombinations() { Supplier<Void> fn = () -> { super.testValidCombinations(); return null; }; AccessibleRunner.run(constructor, fn); }
/** * Tests all possible combinations valid of arguments on the invokable (constructor or method). * <p> * This requires at least one valid argument for <b>each</b> parameter. * * @throws AssertionError * if invoking the constructor with a valid set of arguments * throws an exception */ public void testValidCombinations() { validArguments.checkAllArgumentsSet(); testArguments(validArguments.getCapturedArgumentsSets(), null); }
@Test public void testPreconditions() throws NoSuchMethodException, SecurityException { new ConstructorPreconditionsTester( InstanceFactoryDefinition.class.getDeclaredConstructor(Object.class, Class.class, Class.class)) .addValidArgs(0, "String") .addInvalidNpeArg(0) .addValidArgs(1, String.class) .addInvalidNpeArg(1) .addValidArgs(2, RequestScoped.class) .addInvalidNpeArg(2) .testPreconditionsAndValidCombinations(); }
@Test public void testPreconditions() { new ConstructorPreconditionsTester(getConstructor()) .addValidArgs(0, ApiInterface1.class) .addInvalidNpeArg(0) .addValidArgs(1, "some name") .addInvalidNpeArg(1) .testPreconditions(); }
@Test public void testEquals() { new CopyConstructorEqualsTester(getConstructor()) .addArguments(0, null, "a", 1, 2) .testEquals(); }
/** * Converts the given input stream into a string with UTF8 as charset. * * @see #toString(InputStream, Charset) * @param is * the input stream to read from * @return the string created from the given input stream */ public static String toString(InputStream is) { return toString(is, StandardCharsets.UTF_8); }
public void testPreconditionsAndValidCombinations() { testValidCombinations(); testPreconditions(); }
@Test public void testPassesJerseyTestToConsumer() throws Exception { runner.runJerseyTest(jerseyTest, consumer); verify(consumer).accept(jerseyTest); }
/** * Shortcut for {@link #addInvalidArgs(int, Class, Object...) * addInvalidArgs(paramIndex, IllegalArgumentException.class, arguments}. * * @param paramIndex * @return */ public PreconditionsTester addInvalidIaeArgs(int paramIndex, Object... arguments) { addInvalidArgs(paramIndex, IllegalArgumentException.class, arguments); return this; }
/** * Add a list of <b>invalid</b> arguments for the parameter and the expected * exception. * * @param paramIndex * @param expectedException * @param arguments * @return */ public PreconditionsTester addInvalidArgs(int paramIndex, Class<? extends Exception> expectedException, Object... arguments) { invalidArguments.addArg(paramIndex, a -> new InvalidArgument(a, expectedException), arguments); return this; }
public CopyConstructorEqualsTester addArguments(int argIndex, Object... args) { this.arguments.addArg(argIndex, Argument::new, args); return this; }
@Override public boolean equals(Object obj) { /* * do not take expectedException into account * since only the argument's value is essential */ return super.equals(obj); }
protected PreconditionsTester(Invokable invokable, Class<?>[] parameterTypes) { this.validArguments = new InvokableArguments<>(parameterTypes); this.invalidArguments = new InvokableArguments<>(parameterTypes); this.invokable = invokable; }
@Override public int hashCode() { /* * do not take expectedException into account * since only the argument's value is essential */ return super.hashCode(); } @Override
Set<List<T>> getCartesianProduct() { return getCartesianProduct(argumentsSets); }
public static ByteArrayOutputStream emptyBaos() { return eqBaos(""); } public static ByteArrayOutputStream eqBaos(final String expected) {
/** * Shortcut for {@link #addInvalidArgs(int, Class, Object...) * addInvalidArgs(paramIndex, NullpointerException.class, new Object[] * ${null}}. * * @param paramIndex * @return */ public PreconditionsTester addInvalidNpeArg(int paramIndex) { addInvalidArgs(paramIndex, NullPointerException.class, new Object[] {null}); return this; }
/** * Add a list of <b>valid</b> arguments for the parameter. * * @param paramIndex * the index of the parameter * @param arguments * valid arguments for the parameter * @return */ public PreconditionsTester addValidArgs(int paramIndex, Object... arguments) { validArguments.addArg(paramIndex, Argument::new, arguments); return this; }