private static Object[] expandVarArgs(final boolean isVarArgs, final Object[] args) { if (!isVarArgs || args[args.length - 1] != null && !args[args.length - 1].getClass().isArray()) { return args == null ? new Object[0] : args; } final int nonVarArgsCount = args.length - 1; Object[] varArgs; if (args[nonVarArgsCount] == null) { // in case someone deliberately passed null varArg array varArgs = new Object[] { null }; } else { varArgs = ArrayEquals.createObjectArray(args[nonVarArgsCount]); } final int varArgsCount = varArgs.length; Object[] newArgs = new Object[nonVarArgsCount + varArgsCount]; System.arraycopy(args, 0, newArgs, 0, nonVarArgsCount); System.arraycopy(varArgs, 0, newArgs, nonVarArgsCount, varArgsCount); return newArgs; }
public static Object[] expandVarArgs(final boolean isVarArgs, final Object[] args) { if (!isVarArgs || new ArrayUtils().isEmpty(args) || args[args.length - 1] != null && !args[args.length - 1].getClass().isArray()) { return args == null ? new Object[0] : args; } final int nonVarArgsCount = args.length - 1; Object[] varArgs; if (args[nonVarArgsCount] == null) { // in case someone deliberately passed null varArg array varArgs = new Object[] { null }; } else { varArgs = ArrayEquals.createObjectArray(args[nonVarArgsCount]); } final int varArgsCount = varArgs.length; Object[] newArgs = new Object[nonVarArgsCount + varArgsCount]; System.arraycopy(args, 0, newArgs, 0, nonVarArgsCount); System.arraycopy(varArgs, 0, newArgs, nonVarArgsCount, varArgsCount); return newArgs; }
@Override public boolean matches(Object varargArgument) { if (varargArgument instanceof Header[]) { Header[] actualHeaders = (Header[]) varargArgument; return new ArrayEquals(expectedHeaders).matches(actualHeaders); } return false; }
private void verifyCohortSuccessful(List<String> cohortNames, SubprocedureFactory subprocFactory, Iterable<Subprocedure> cohortTasks, VerificationMode prepare, VerificationMode commit, VerificationMode cleanup, VerificationMode finish, boolean opHasError) throws Exception { // make sure we build the correct number of cohort members Mockito.verify(subprocFactory, Mockito.times(cohortNames.size())).buildSubprocedure( Mockito.eq(opName), (byte[]) Mockito.argThat(new ArrayEquals(data))); // verify that we ran each of the operations cleanly int j = 0; for (Subprocedure op : cohortTasks) { LOG.debug("Checking mock:" + (j++)); waitAndVerifySubproc(op, prepare, commit, cleanup, finish, opHasError); } }
protected List<Matcher> argumentsToMatchers() { List<Matcher> matchers = new ArrayList<Matcher>(arguments.length); for (Object arg : arguments) { if (arg != null && arg.getClass().isArray()) { matchers.add(new ArrayEquals(arg)); } else { matchers.add(new Equals(arg)); } } return matchers; }
@Test public void shouldTransformArgumentsToMatchers() throws Exception { Invocation i = new InvocationBuilder().args("foo", new String[] {"bar"}).toInvocation(); List matchers = i.argumentsToMatchers(); assertEquals(2, matchers.size()); assertEquals(Equals.class, matchers.get(0).getClass()); assertEquals(ArrayEquals.class, matchers.get(1).getClass()); }
public static List<Matcher> argumentsToMatchers(Object[] arguments) { List<Matcher> matchers = new ArrayList<Matcher>(arguments.length); for (Object arg : arguments) { if (arg != null && arg.getClass().isArray()) { matchers.add(new ArrayEquals(arg)); } else { matchers.add(new Equals(arg)); } } return matchers; }
@Test public void shouldTransformArgumentsToMatchers() throws Exception { Invocation i = new InvocationBuilder().args("foo", new String[]{"bar"}).toInvocation(); List matchers = ArgumentsProcessor.argumentsToMatchers(i.getArguments()); assertEquals(2, matchers.size()); assertEquals(Equals.class, matchers.get(0).getClass()); assertEquals(ArrayEquals.class, matchers.get(1).getClass()); }
/** * Object array argument that is equal to the given array, i.e. it has to * have the same type, length, and each element has to be equal. * <p> * See examples in javadoc for {@link AdditionalMatchers} class * * @param <T> * the type of the array, it is passed through to prevent casts. * @param value * the given array. * @return <code>null</code>. */ public static <T> T[] aryEq(T[] value) { return reportMatcher(new ArrayEquals(value)).returnNull(); }
/** * short array argument that is equal to the given array, i.e. it has to * have the same length, and each element has to be equal. * <p> * See examples in javadoc for {@link AdditionalMatchers} class * * @param value * the given array. * @return <code>null</code>. */ public static short[] aryEq(short[] value) { return reportMatcher(new ArrayEquals(value)).returnNull(); }
/** * long array argument that is equal to the given array, i.e. it has to have * the same length, and each element has to be equal. * <p> * See examples in javadoc for {@link AdditionalMatchers} class * * @param value * the given array. * @return <code>null</code>. */ public static long[] aryEq(long[] value) { return reportMatcher(new ArrayEquals(value)).returnNull(); }
/** * int array argument that is equal to the given array, i.e. it has to have * the same length, and each element has to be equal. * <p> * See examples in javadoc for {@link AdditionalMatchers} class * * @param value * the given array. * @return <code>null</code>. */ public static int[] aryEq(int[] value) { return reportMatcher(new ArrayEquals(value)).returnNull(); }
/** * float array argument that is equal to the given array, i.e. it has to * have the same length, and each element has to be equal. * <p> * See examples in javadoc for {@link AdditionalMatchers} class * * @param value * the given array. * @return <code>null</code>. */ public static float[] aryEq(float[] value) { return reportMatcher(new ArrayEquals(value)).returnNull(); }
/** * double array argument that is equal to the given array, i.e. it has to * have the same length, and each element has to be equal. * <p> * See examples in javadoc for {@link AdditionalMatchers} class * * @param value * the given array. * @return <code>null</code>. */ public static double[] aryEq(double[] value) { return reportMatcher(new ArrayEquals(value)).returnNull(); }
/** * char array argument that is equal to the given array, i.e. it has to have * the same length, and each element has to be equal. * <p> * See examples in javadoc for {@link AdditionalMatchers} class * * @param value * the given array. * @return <code>null</code>. */ public static char[] aryEq(char[] value) { return reportMatcher(new ArrayEquals(value)).returnNull(); }
/** * byte array argument that is equal to the given array, i.e. it has to have * the same length, and each element has to be equal. * <p> * See examples in javadoc for {@link AdditionalMatchers} class * * @param value * the given array. * @return <code>null</code>. */ public static byte[] aryEq(byte[] value) { return reportMatcher(new ArrayEquals(value)).returnNull(); }
/** * boolean array argument that is equal to the given array, i.e. it has to * have the same length, and each element has to be equal. * <p> * See examples in javadoc for {@link AdditionalMatchers} class * * @param value * the given array. * @return <code>null</code>. */ public static boolean[] aryEq(boolean[] value) { return reportMatcher(new ArrayEquals(value)).returnNull(); }