@Test
public void testCall() {

	JreJsonFactory jsonFactory = new JreJsonFactory();
	JsonArray params = jsonFactory.createArray();
	params.set(0, true);
	params.set(1, "hey");
	params.set(2, 88.0);
	JsonArray innerArray = jsonFactory.createArray();
	innerArray.set(0, "inner");
	params.set(3, innerArray);
	TestTarget target = new TestTarget();
	Method testMethod = Arrays
			.stream(TestTarget.class.getDeclaredMethods())
			.filter(m -> "testMethod".equals(m.getName())).findFirst()
			.get();
	MethodInvoker invoker = new MethodInvoker(target, testMethod);
	invoker.call(params);
	assertEquals(Boolean.TRUE, target.getArg1());
	assertEquals("hey", target.getArg2());
	assertEquals(new Double(88.0), target.getArg3());
	assertEquals(1, target.getArg4().length());
	assertEquals("inner",
			((JsonString) target.getArg4().get(0)).getString());
}