⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 invokemethodtest.java

📁 大名鼎鼎的java动态脚本语言。已经通过了sun的认证
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        Object value = invoke(this, "overloadedRemove", new Object[] { new Integer(5)});        assertEquals("called with integer", "int5", value);    }    public void testCallListRemove() throws Throwable {        List list = new ArrayList();        list.add("foo");        list.add("bar");        Object value = invoke(list, "remove", new Object[] { new Integer(0)});        assertEquals("Should have just 1 item left: " + list, 1, list.size());    }    public void testCoerceGStringToString() throws Throwable {        GString param = new GString(new Object[] { "James" }) {            public String[] getStrings() {                return new String[] { "Hello " };            }        };        Object value = invoke(this, "methodTakesString", new Object[] { param });        assertEquals("converted GString to string", param.toString(), value);    }    public void testCoerceGStringToStringOnGetBytes() throws Throwable {        GString param = new GString(new Object[] { "US-ASCII" }) {            public String[] getStrings() {                return new String[] { "" };            }        };        Object value = invoke("test", "getBytes", new Object[] { param });        assertEquals("converted GString to string", "test".getBytes("US-ASCII").getClass(), value.getClass());    }    public void testBadBDToDoubleCoerce() throws Throwable {        try {            Object value = invoke(Math.class, "floor", new BigDecimal("1.7E309"));        } catch (IllegalArgumentException e) {            assertTrue("Math.floor(1.7E309) should fail because it is out of range for a Double. "                    +e,e.getMessage().indexOf("out of range") > 0);            return;        }        fail("Math.floor(1.7E309) should fail because it is out of range for a Double.");            }    public void testClassMethod() throws Throwable {        Class c = String.class;        Object value = invoke(c, "getName", null);        assertEquals("Class.getName()", c.getName(), value);        c = getClass();        value = invoke(c, "getName", null);        assertEquals("Class.getName()", c.getName(), value);    }    public void testProtectedMethod() throws Throwable {        String param = "hello";        Object value = invoke(this, "aProtectedMethod", param);        assertEquals("protected method call", aProtectedMethod(param), value);    }    public void testPrivateMethod() throws Throwable {        String param = "hello";        Object value = invoke(this, "aPrivateMethod", param);        assertEquals("private method call", aPrivateMethod(param), value);    }    public void testStringSubstringMethod() throws Throwable {        String object = "hello";        Object value = invoke(object, "substring", new Integer(2));        assertEquals("substring(2)", object.substring(2), value);        value = invoke(object, "substring", new Object[] { new Integer(1), new Integer(3)});        assertEquals("substring(1,3)", object.substring(1, 3), value);    }    public void testListGetWithRange() throws Throwable {        List list = Arrays.asList(new Object[] { "a", "b", "c" });        Object range = new IntRange(0, 2);        Object value = invoke(list, "getAt", range);        assertTrue("Returned List: " + value, value instanceof List);        List retList = (List) value;        assertEquals("List size", 3, retList.size());    }    public void testSetLenientOnDateFormat() throws Throwable {        SimpleDateFormat a = new SimpleDateFormat( "MM/dd/yyyy" );                Object value = invoke(a, "setLenient", new Object[] { Boolean.FALSE });        assertEquals("void method", null, value);    }    public void testInvokeUnknownMethod() throws Throwable {        try {            Object value = invoke(this, "unknownMethod", "abc");            fail("Should have thrown an exception");        }        catch (GroovyRuntimeException e) {            // worked        }    }    public void testInvokeMethodWithWrongNumberOfParameters() throws Throwable {        try {            Object[] args = { "a", "b" };            Object value = invoke(this, "unknownMethod", args);            fail("Should have thrown an exception");        }        catch (GroovyRuntimeException e) {            // worked        }    }    public void testInvokeMethodOnNullObject() throws Throwable {        try {            invoke(null, "mockCallWithNoParams", null);            fail("Should have thrown an exception");        }        catch (NullPointerException e) {            // worked        }    }    // Mock methods used for testing    //-------------------------------------------------------------------------    public Object mockCallWithNoParams() {        return "NoParams";    }    public Object mockCallWithOneParam(Object value) {        assertEquals("Method not passed in the correct value", "abc", value);        return "OneParam";    }    public Object mockCallWithOneNullParam(Object value) {        assertEquals("Method not passed in the correct value", null, value);        return "OneParamWithNull";    }    public Integer mockCallWithOneCollectionParam(Object collection) {        Collection coll = InvokerHelper.asCollection(collection);        return new Integer(coll.size());    }    public Object mockOverloadedMethod() {        return "void";    }    public Object mockOverloadedMethod(Object object) {        return "Object";    }    public Object mockOverloadedMethod(Number object) {        return "Number";    }    public Object mockOverloadedMethod(String object) {        return "String";    }    public Object mockOverloadedMethod(Object object, Object bar) {        return "Object,Object";    }    public Object mockOverloadedMethod(Object object, Object[] array) {        return "Object,Object[]";    }    public Object badOverload(String a, Object b) {        return "String, Object";    }    public Object badOverload(Object a, String b) {        return "Object, String";    }    public Object methodTakesString(String x) {        return x;    }    public Object overloadedRemove(int idx) {        return "int" + idx;    }    public Object overloadedRemove(Object value) {        return "Object" + value;    }    // Implementation methods    //-------------------------------------------------------------------------    protected Object aProtectedMethod(String param) {        return param + " there!";    }    private Object aPrivateMethod(String param) {        return param + " James!";    }    protected void assertMethodCall(Object object, String method, Object param, Object expected) {        Object value = InvokerHelper.invokeMethod(object, method, new Object[] { param });        assertEquals("result of method: " + method, expected, value);    }    /**	 * Asserts that invoking the method chooser finds the right overloaded	 * method implementation	 * 	 * @param expected	 *            is the expected value of the method	 * @param arguments	 *            the argument(s) to the method invocation	 */    protected void assertMethodChooser(Object expected, Object arguments) throws Throwable {        Object value = invoke(this, "mockOverloadedMethod", arguments);        assertEquals("Invoking overloaded method for arguments: " + InvokerHelper.toString(arguments), expected, value);    }    protected Object invoke(Object object, String method, Object args) throws Throwable {        try {            return invoker.invokeMethod(object, method, args);        }        catch (InvokerInvocationException e) {            throw e.getCause();        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -