summaryrefslogtreecommitdiffstats
path: root/luni/src/test/java/tests/api/java/lang/reflect/ProxyTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'luni/src/test/java/tests/api/java/lang/reflect/ProxyTest.java')
-rw-r--r--luni/src/test/java/tests/api/java/lang/reflect/ProxyTest.java319
1 files changed, 0 insertions, 319 deletions
diff --git a/luni/src/test/java/tests/api/java/lang/reflect/ProxyTest.java b/luni/src/test/java/tests/api/java/lang/reflect/ProxyTest.java
deleted file mode 100644
index dd496b1..0000000
--- a/luni/src/test/java/tests/api/java/lang/reflect/ProxyTest.java
+++ /dev/null
@@ -1,319 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package tests.api.java.lang.reflect;
-
-import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.Method;
-import java.lang.reflect.Proxy;
-import java.lang.reflect.UndeclaredThrowableException;
-
-import tests.support.Support_Proxy_I1;
-import tests.support.Support_Proxy_I2;
-import tests.support.Support_Proxy_ParentException;
-import tests.support.Support_Proxy_SubException;
-
-public class ProxyTest extends junit.framework.TestCase {
-
- /*
- * When multiple interfaces define the same method, the list of thrown
- * exceptions are those which can be mapped to another exception in the
- * other method:
- *
- * String foo(String s) throws SubException, LinkageError;
- *
- * UndeclaredThrowableException wrappers any checked exception which is not
- * in the merged list. So ParentException would be wrapped, BUT LinkageError
- * would not be since its not an Error/RuntimeException.
- *
- * interface I1 { String foo(String s) throws ParentException, LinkageError; }
- * interface I2 { String foo(String s) throws SubException, Error; }
- */
-
- interface Broken1 {
- public float method(float _number0, float _number1);
- }
-
- class Broken1Invoke implements InvocationHandler {
- public Object invoke(Object proxy, Method method, Object[] args)
- throws Throwable {
- return args[1];
- }
- }
-
- class ProxyCoonstructorTest extends Proxy {
- protected ProxyCoonstructorTest(InvocationHandler h) {
- super(h);
- }
- }
-
- /**
- * java.lang.reflect.Proxy#getProxyClass(java.lang.ClassLoader,
- * java.lang.Class[])
- */
- public void test_getProxyClassLjava_lang_ClassLoader$Ljava_lang_Class() {
- Class proxy = Proxy.getProxyClass(Support_Proxy_I1.class
- .getClassLoader(), new Class[] { Support_Proxy_I1.class });
-
- assertTrue("Did not create a Proxy subclass ",
- proxy.getSuperclass() == Proxy.class);
- assertTrue("Does not believe its a Proxy class ", Proxy
- .isProxyClass(proxy));
-
- assertTrue("Does not believe it's a Proxy class ", Proxy
- .isProxyClass(Proxy.getProxyClass(null,
- new Class[] { Comparable.class })));
-
- try {
- Proxy.getProxyClass(Support_Proxy_I1.class.getClassLoader(),
- (Class<?>[]) null);
- fail("NPE expected");
- } catch (NullPointerException expected) {
- }
-
- try {
- Proxy.getProxyClass(Support_Proxy_I1.class.getClassLoader(),
- new Class<?>[] {Support_Proxy_I1.class, null});
- fail("NPE expected");
- } catch (NullPointerException expected) {
- }
- }
-
- /**
- * java.lang.reflect.Proxy#Proxy(java.lang.reflect.InvocationHandler)
- */
- public void test_ProxyLjava_lang_reflect_InvocationHandler() {
- assertNotNull(new ProxyCoonstructorTest(new InvocationHandler() {
- public Object invoke(Object proxy, Method method, Object[] args)
- throws Throwable {
- return null;
- }
- }));
- }
-
-
-
- /**
- * java.lang.reflect.Proxy#newProxyInstance(java.lang.ClassLoader,
- * java.lang.Class[], java.lang.reflect.InvocationHandler)
- */
- public void test_newProxyInstanceLjava_lang_ClassLoader$Ljava_lang_ClassLjava_lang_reflect_InvocationHandler() {
- Object p = Proxy.newProxyInstance(Support_Proxy_I1.class
- .getClassLoader(), new Class[] { Support_Proxy_I1.class,
- Support_Proxy_I2.class }, new InvocationHandler() {
- public Object invoke(Object proxy, Method method, Object[] args)
- throws Throwable {
- if (method.getName().equals("equals"))
- return new Boolean(proxy == args[0]);
- if (method.getName().equals("array"))
- return new int[] { (int) ((long[]) args[0])[1], -1 };
- if (method.getName().equals("string")) {
- if ("".equals(args[0]))
- throw new Support_Proxy_SubException();
- if ("clone".equals(args[0]))
- throw new Support_Proxy_ParentException();
- if ("error".equals(args[0]))
- throw new ArrayStoreException();
- if ("any".equals(args[0]))
- throw new IllegalAccessException();
- }
- return null;
- }
- });
-
- Support_Proxy_I1 proxy = (Support_Proxy_I1) p;
- assertTrue("Failed identity test ", proxy.equals(proxy));
- assertTrue("Failed not equals test ", !proxy.equals(""));
- int[] result = (int[]) proxy.array(new long[] { 100L, -200L });
- assertEquals("Failed primitive type conversion test ", -200, result[0]);
-
- boolean worked = false;
- try {
- proxy.string("");
- } catch (Support_Proxy_SubException e) {
- worked = true;
- } catch (Support_Proxy_ParentException e) { // is never thrown
- }
- assertTrue("Problem converting exception ", worked);
-
- worked = false;
- try {
- proxy.string("clone");
- } catch (Support_Proxy_ParentException e) { // is never thrown
- } catch (UndeclaredThrowableException e) {
- worked = true;
- }
- assertTrue("Problem converting exception ", worked);
-
- worked = false;
- try {
- proxy.string("error");
- } catch (Support_Proxy_ParentException e) { // is never thrown
- } catch (UndeclaredThrowableException e) {
- } catch (RuntimeException e) {
- worked = e.getClass() == ArrayStoreException.class;
- }
- assertTrue("Problem converting exception ", worked);
-
- worked = false;
- try {
- proxy.string("any");
- } catch (Support_Proxy_ParentException e) { // is never thrown
- } catch (UndeclaredThrowableException e) {
- worked = true;
- }
- assertTrue("Problem converting exception ", worked);
-
- Broken1 proxyObject = null;
- try {
- proxyObject = (Broken1) Proxy.newProxyInstance(Broken1.class
- .getClassLoader(), new Class[] { Broken1.class },
- new Broken1Invoke());
- } catch (Throwable e) {
- fail("Failed to create proxy for class: " + Broken1.class + " - "
- + e);
- }
- float brokenResult = proxyObject.method(2.1f, 5.8f);
- assertTrue("Invalid invoke result", brokenResult == 5.8f);
- }
-
- /**
- * java.lang.reflect.Proxy#isProxyClass(java.lang.Class)
- */
- public void test_isProxyClassLjava_lang_Class() {
- Class proxy = Proxy.getProxyClass(Support_Proxy_I1.class
- .getClassLoader(), new Class[] { Support_Proxy_I1.class });
-
- class Fake extends Proxy {
- Fake() {
- super(null);
- }
- }
-
- Proxy fake = new Proxy(new InvocationHandler() {
- public Object invoke(Object proxy, Method method, Object[] args)
- throws Throwable {
- return null;
- }
- }) {
- };
-
- assertTrue("Does not believe its a Proxy class ", Proxy
- .isProxyClass(proxy));
- assertTrue("Proxy subclasses do not count ", !Proxy
- .isProxyClass(Fake.class));
- assertTrue("Is not a runtime generated Proxy class ", !Proxy
- .isProxyClass(fake.getClass()));
- boolean thrown = false;
- try{
- Proxy.isProxyClass(null);
- } catch (NullPointerException ex){
- thrown = true;
- }
- assertTrue("NPE not thrown.", thrown);
- }
-
- /**
- * java.lang.reflect.Proxy#getInvocationHandler(java.lang.Object)
- */
- public void test_getInvocationHandlerLjava_lang_Object() {
- InvocationHandler handler = new InvocationHandler() {
- public Object invoke(Object proxy, Method method, Object[] args)
- throws Throwable {
- return null;
- }
- };
-
- Object p = Proxy.newProxyInstance(Support_Proxy_I1.class
- .getClassLoader(), new Class[] { Support_Proxy_I1.class },
- handler);
-
- assertTrue("Did not return invocation handler ", Proxy
- .getInvocationHandler(p) == handler);
- boolean aborted = false;
- try {
- Proxy.getInvocationHandler("");
- } catch (IllegalArgumentException e) {
- aborted = true;
- }
- assertTrue("Did not detect non proxy object ", aborted);
- }
-
- //Regression Test for HARMONY-2355
- public void test_newProxyInstance_withCompatibleReturnTypes() {
- Object o = Proxy
- .newProxyInstance(this.getClass().getClassLoader(),
- new Class[] { ITestReturnObject.class,
- ITestReturnString.class },
- new TestProxyHandler(new TestProxyImpl()));
- assertNotNull(o);
- }
-
- public void test_newProxyInstance_withNonCompatibleReturnTypes() {
- try {
- Proxy.newProxyInstance(this.getClass().getClassLoader(),
- new Class[] { ITestReturnInteger.class,
- ITestReturnString.class }, new TestProxyHandler(
- new TestProxyImpl()));
- fail("should throw IllegalArgumentException");
- } catch (IllegalArgumentException e) {
- // expected
- }
-
- }
-
- public static interface ITestReturnObject {
- Object f();
- }
-
- public static interface ITestReturnString {
- String f();
- }
-
- public static interface ITestReturnInteger {
- Integer f();
- }
-
- public static class TestProxyImpl implements ITestReturnObject,
- ITestReturnString {
- public String f() {
- // do nothing
- return null;
- }
- }
-
- public static class TestProxyHandler implements InvocationHandler {
- private Object proxied;
-
- public TestProxyHandler(Object object) {
- proxied = object;
- }
-
- public Object invoke(Object object, Method method, Object[] args)
- throws Throwable {
- // do nothing
- return method.invoke(proxied, args);
- }
-
- }
-
- protected void setUp() {
- }
-
- protected void tearDown() {
- }
-}