📄 methodutilstestcase.java
字号:
assertEquals("Bug in PrimitiveBean (1)", 20.0f, bean.getFloat(), 0.01f); assertEquals("Bug in PrimitiveBean (2)", 10, bean.getLong()); assertEquals("Bug in PrimitiveBean (3)", true, bean.getBoolean()); assertEquals("Bug in PrimitiveBean (4)", 12, bean.getInt()); assertEquals("Bug in PrimitiveBean (5)", 25.5d, bean.getDouble(), 0.01f); bean = new PrimitiveBean(); MethodUtils.invokeMethod(bean, "setBoolean", new Boolean(true)); assertEquals("Call boolean property using invokeMethod", true, bean.getBoolean()); bean = new PrimitiveBean(); MethodUtils.invokeMethod(bean, "setFloat", new Float(20.0f)); assertEquals("Call float property using invokeMethod", 20.0f, bean.getFloat(), 0.01f); bean = new PrimitiveBean(); MethodUtils.invokeMethod(bean, "setLong", new Long(10)); assertEquals("Call float property using invokeMethod", 10, bean.getLong()); bean = new PrimitiveBean(); MethodUtils.invokeMethod(bean, "setInt", new Integer(12)); assertEquals("Set float property using invokeMethod", 12, bean.getInt()); bean = new PrimitiveBean(); MethodUtils.invokeMethod(bean, "setDouble", new Double(25.5d)); assertEquals("Set float property using invokeMethod", 25.5d, bean.getDouble(), 0.01d); } /** * Simple tests for accessing static methods via invokeMethod(). */ public void testSimpleStatic1() { TestBean bean = new TestBean(); Object value = null; int current = TestBean.currentCounter(); try { // Return initial value of the counter value = MethodUtils.invokeMethod (bean, "currentCounter", new Object[0], new Class[0]); assertNotNull("currentCounter exists", value); assertTrue("currentCounter type", value instanceof Integer); assertEquals("currentCounter value", current, ((Integer) value).intValue()); // Increment via no-arguments version MethodUtils.invokeMethod (bean, "incrementCounter", new Object[0], new Class[0]); // Validate updated value current++; value = MethodUtils.invokeMethod (bean, "currentCounter", new Object[0], new Class[0]); assertNotNull("currentCounter exists", value); assertTrue("currentCounter type", value instanceof Integer); assertEquals("currentCounter value", current, ((Integer) value).intValue()); // Increment via specified-argument version MethodUtils.invokeMethod (bean, "incrementCounter", new Object[] { new Integer(5) }, new Class[] { Integer.TYPE }); // Validate updated value current += 5; value = MethodUtils.invokeMethod (bean, "currentCounter", new Object[0], new Class[0]); assertNotNull("currentCounter exists", value); assertTrue("currentCounter type", value instanceof Integer); assertEquals("currentCounter value", current, ((Integer) value).intValue()); } catch (Exception e) { fail("Threw exception" + e); } } /** * Simple tests for accessing static methods via invokeExactMethod(). */ public void testSimpleStatic2() { TestBean bean = new TestBean(); Object value = null; int current = TestBean.currentCounter(); try { // Return initial value of the counter value = MethodUtils.invokeExactMethod (bean, "currentCounter", new Object[0], new Class[0]); assertNotNull("currentCounter exists", value); assertTrue("currentCounter type", value instanceof Integer); assertEquals("currentCounter value", current, ((Integer) value).intValue()); // Increment via no-arguments version MethodUtils.invokeExactMethod (bean, "incrementCounter", new Object[0], new Class[0]); // Validate updated value current++; value = MethodUtils.invokeExactMethod (bean, "currentCounter", new Object[0], new Class[0]); assertNotNull("currentCounter exists", value); assertTrue("currentCounter type", value instanceof Integer); assertEquals("currentCounter value", current, ((Integer) value).intValue()); // Increment via specified-argument version MethodUtils.invokeExactMethod (bean, "incrementCounter", new Object[] { new Integer(5) }, new Class[] { Integer.TYPE }); // Validate updated value current += 5; value = MethodUtils.invokeExactMethod (bean, "currentCounter", new Object[0], new Class[0]); assertNotNull("currentCounter exists", value); assertTrue("currentCounter type", value instanceof Integer); assertEquals("currentCounter value", current, ((Integer) value).intValue()); } catch (Exception e) { fail("Threw exception" + e); } } /** * Simple tests for accessing static methods via getAccessibleMethod() */ public void testSimpleStatic3() { Object value = null; int current = TestBean.currentCounter(); try { // Acquire the methods we need Method currentCounterMethod = MethodUtils.getAccessibleMethod (TestBean.class, "currentCounter", new Class[0]); assertNotNull("currentCounterMethod exists", currentCounterMethod); assertEquals("currentCounterMethod name", "currentCounter", currentCounterMethod.getName()); assertEquals("currentCounterMethod args", 0, currentCounterMethod.getParameterTypes().length); assertTrue("currentCounterMethod public", Modifier.isPublic(currentCounterMethod.getModifiers())); assertTrue("currentCounterMethod static", Modifier.isStatic(currentCounterMethod.getModifiers())); Method incrementCounterMethod1 = MethodUtils.getAccessibleMethod (TestBean.class, "incrementCounter", new Class[0]); assertNotNull("incrementCounterMethod1 exists", incrementCounterMethod1); assertEquals("incrementCounterMethod1 name", "incrementCounter", incrementCounterMethod1.getName()); assertEquals("incrementCounterMethod1 args", 0, incrementCounterMethod1.getParameterTypes().length); assertTrue("incrementCounterMethod1 public", Modifier.isPublic(incrementCounterMethod1.getModifiers())); assertTrue("incrementCounterMethod1 static", Modifier.isStatic(incrementCounterMethod1.getModifiers())); Method incrementCounterMethod2 = MethodUtils.getAccessibleMethod (TestBean.class, "incrementCounter", new Class[] { Integer.TYPE }); assertNotNull("incrementCounterMethod2 exists", incrementCounterMethod2); assertEquals("incrementCounterMethod2 name", "incrementCounter", incrementCounterMethod2.getName()); assertEquals("incrementCounterMethod2 args", 1, incrementCounterMethod2.getParameterTypes().length); assertTrue("incrementCounterMethod2 public", Modifier.isPublic(incrementCounterMethod2.getModifiers())); assertTrue("incrementCounterMethod2 static", Modifier.isStatic(incrementCounterMethod2.getModifiers())); // Return initial value of the counter value = currentCounterMethod.invoke(null, new Object[0]); assertNotNull("currentCounter exists", value); assertTrue("currentCounter type", value instanceof Integer); assertEquals("currentCounter value", current, ((Integer) value).intValue()); // Increment via no-arguments version incrementCounterMethod1.invoke(null, new Object[0]); // Validate updated value current++; value = currentCounterMethod.invoke(null, new Object[0]); assertNotNull("currentCounter exists", value); assertTrue("currentCounter type", value instanceof Integer); assertEquals("currentCounter value", current, ((Integer) value).intValue()); // Increment via specified-argument version incrementCounterMethod2.invoke(null, new Object[] { new Integer(5) }); // Validate updated value current += 5; value = currentCounterMethod.invoke(null, new Object[0]); assertNotNull("currentCounter exists", value); assertTrue("currentCounter type", value instanceof Integer); assertEquals("currentCounter value", current, ((Integer) value).intValue()); } catch (Exception e) { fail("Threw exception" + e); } } public void testPublicSub() throws Exception { // make sure that bean does what it should PublicSubBean bean = new PublicSubBean(); assertEquals("Start value (foo)", bean.getFoo(), "This is foo"); assertEquals("Start value (bar)", bean.getBar(), "This is bar"); bean.setFoo("new foo"); bean.setBar("new bar"); assertEquals("Set value (foo)", bean.getFoo(), "new foo"); assertEquals("Set value (bar)", bean.getBar(), "new bar"); // see if we can access public methods in a default access superclass // from a public access subclass instance MethodUtils.invokeMethod(bean, "setFoo", "alpha"); assertEquals("Set value (foo:2)", bean.getFoo(), "alpha"); MethodUtils.invokeMethod(bean, "setBar", "beta"); assertEquals("Set value (bar:2)", bean.getFoo(), "alpha"); } public void testParentMethod() throws Exception { OutputStream os = new PrintStream(System.out); PrintStream ps = new PrintStream(System.out); A a = new A(); MethodUtils.invokeMethod(a, "foo", os); assertTrue("Method Invoked(1)", a.called); a = new A(); MethodUtils.invokeMethod(a, "foo", ps); assertTrue("Method Invoked(2)", a.called); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -