Search in sources :

Example 46 with PackageExamples

use of examples.PackageExamples in project openj9 by eclipse.

the class HelperConstructorClass method test_asCollector_CrossPackage_Virtual_WrongType.

/**
 * Negative test : asCollector using wrong type on a MH obtained through a findVirtual call to a class in a different package
 * @throws Throwable
 */
@Test(expectedExceptions = IllegalArgumentException.class, groups = { "level.extended" })
public void test_asCollector_CrossPackage_Virtual_WrongType() throws Throwable {
    MethodHandle mh = MethodHandles.lookup().findVirtual(PackageExamples.class, "getLength", MethodType.methodType(int.class, String[].class));
    PackageExamples g = new PackageExamples();
    mh = mh.bindTo(g);
    mh = mh.asCollector(int[].class, 2);
    Assert.fail("The test case failed to throw an IllegalArgumentException in the case of the wrong method type");
}
Also used : PackageExamples(examples.PackageExamples) MethodHandle(java.lang.invoke.MethodHandle) Test(org.testng.annotations.Test)

Aggregations

PackageExamples (examples.PackageExamples)46 Test (org.testng.annotations.Test)46 MethodHandle (java.lang.invoke.MethodHandle)41 CrossPackageSingleMethodInterfaceExample (examples.CrossPackageSingleMethodInterfaceExample)8 Lookup (java.lang.invoke.MethodHandles.Lookup)7 Method (java.lang.reflect.Method)6 Constructor (java.lang.reflect.Constructor)2 Field (java.lang.reflect.Field)2 SamePackageInnerClass (com.ibm.j9.jsr292.SamePackageExample.SamePackageInnerClass)1 CrossPackageInnerClass (examples.PackageExamples.CrossPackageInnerClass)1 ArrayList (java.util.ArrayList)1