private static String getMethodSimpleName(Method method) { return getMethodSimpleName(method.getReturnType(), method.getName(), method.getParameterTypes()); }
private static Object invokeStaticMethod(Method frameMethod, Object[] parameters) throws Throwable { try { return frameMethod.invoke(null, parameters); } catch (IllegalAccessException | IllegalArgumentException e) { System.err.println("Something went wrong when invoking the static method: " + getMethodSimpleName(frameMethod)); System.err.println("Objects used as parameters: " + getArgumentTypeString(parameters)); e.printStackTrace(); throw e; } catch (InvocationTargetException e) { throw e.getCause(); } }
private static Object invokeMethod(Object methodHolder, Method frameMethod, Object[] parameters) throws Throwable { try { return frameMethod.invoke(methodHolder, parameters); } catch (IllegalAccessException | IllegalArgumentException e) { System.err.println("Something went wrong when invoking the method: " + getMethodSimpleName(frameMethod)); System.err.println("Objects used as parameters: " + getArgumentTypeString(parameters)); e.printStackTrace(); throw e; } catch (InvocationTargetException e) { throw e.getCause(); } }
message += "\nOriginal method: " + getMethodSimpleName(originalMethod); message += "\nOverloading method: " + getMethodSimpleName(overloadingMethod); message += "\nOriginal type declaring method: " + typeWithOriginalMethod.getSimpleName(); message += "\nType overloading original: " + typeWithOverloadingMethods.getSimpleName(); throw new AssertionError("The original method in " + typeWithOriginalMethod.getSimpleName() + ":\n" + getMethodSimpleName(originalMethod) + "\nis not properly overloaded, expected to find in " + typeToSearchIn.getSimpleName() + ":\n" + getMethodSimpleName(originalMethod.getReturnType(), originalMethod.getName(), overloadingSignature));
message += "The method: " + getMethodSimpleName(frameMethod); message += "\ndid not throw the same exception as the original method: " + getMethodSimpleName(framelessMethod); message += "\nExpected exception class: " + (expectedException == null ? "none" : expectedException.getClass().getSimpleName()); message += "\nActual exception class: " + e.getClass().getSimpleName(); message += "\nInconsistent frame method: " + getMethodSimpleName(frameMethod); message += "\nOriginal frameless method: " + getMethodSimpleName(framelessMethod); message += "\nFrame arguments after call:\n" + Arrays.toString(frameMethodParameters); message += "\nFrameless arguments after call:\n" + toStringAsFramelessObjects(framelessMethodParameters); message += "\nInconsistent frame method: " + getMethodSimpleName(frameMethod); message += "\nOriginal frameless method: " + getMethodSimpleName(framelessMethod); message += "\nFrame method returned:" + frameMethodReturnObject; message += "\nFrameless method returned:" + toStringAsFramelessObject(framelessMethodReturnObject); message += "\nInconsistent frame method: " + getMethodSimpleName(frameMethod); message += "\nOriginal frameless method: " + getMethodSimpleName(framelessMethod); message += "\nFrame object after method call:" + frameObject; message += "\nFrameless object after method call:" + framelessObject; + getMethodSimpleName(frameMethod.getReturnType(), frameMethodName, frameMethodParameterTypes)); throw e;
message += "The method: " + getMethodSimpleName(frameMethod); message += "\ndid not throw the same exception as the original method: " + getMethodSimpleName(framelessMethod); message += "\nExpected exception class: " + expectedException.getClass().getSimpleName(); message += "\nActual exception class: " + e.getClass().getSimpleName(); message += "\nInconsistent frame method: " + getMethodSimpleName(frameMethod); message += "\nOriginal frameless method: " + getMethodSimpleName(framelessMethod); message += "\nFrame arguments after call:\n" + Arrays.toString(frameMethodParameters); message += "\nFrameless arguments after call:\n" + toStringAsFramelessObjects(framelessMethodParameters); message += "\nInconsistent frame method: " + getMethodSimpleName(frameMethod); message += "\nOriginal frameless method: " + getMethodSimpleName(framelessMethod); message += "\nFrame method returned:" + frameMethodReturnObject; message += "\nFrameless method returned:" + toStringAsFramelessObject(framelessMethodReturnObject);
String message = "Should have thrown a " + ReferenceFrameMismatchException.class.getSimpleName(); message += "\nType being tested: " + typeDeclaringStaticMethodsToTest.getSimpleName(); message += "\nMethod: " + getMethodSimpleName(frameMethod); message += "\nArguments used: " + Arrays.toString(parameters); message += "\nArgument types: " + getArgumentTypeString(parameters); if (newFrame != frameA) String message = "The method: " + getMethodSimpleName(frameMethod) + "\ndid not change the frame of the " + (i + 1) + "th parameter."; message += "\nType being tested: " + typeDeclaringStaticMethodsToTest.getSimpleName(); message += "\nArguments used: " + Arrays.toString(parameters); if (resultFrame != frameA) String message = "The method: " + getMethodSimpleName(frameMethod) + "\ndid not set the frame of the result."; message += "\nType being tested: " + typeDeclaringStaticMethodsToTest.getSimpleName(); message += "\nArguments used: " + Arrays.toString(parameters);
String message = "Should have thrown a " + ReferenceFrameMismatchException.class.getSimpleName(); message += "\nType being tested: " + frameType.getSimpleName(); message += "\nMethod: " + getMethodSimpleName(frameMethod); message += "\nArguments used: " + Arrays.toString(parameters); message += "\nArgument types: " + getArgumentTypeString(parameters); if (newFrame != frameA) String message = "The method: " + getMethodSimpleName(frameMethod) + "\ndid not change the frame of the " + (i + 1) + "th parameter."; message += "\nType being tested: " + frameType.getSimpleName(); message += "\nArguments used: " + Arrays.toString(parameters); if (resultFrame != frameA) String message = "The method: " + getMethodSimpleName(frameMethod) + "\ndid not set the frame of the result."; message += "\nType being tested: " + frameType.getSimpleName(); message += "\nArguments used: " + Arrays.toString(parameters);