/** * Add a new class observed at runtime for container methods * * @param clazz */ public void addCastClassForContainer(Class<?> clazz) { if (TestUsageChecker.canUse(clazz)) { CastClassManager.getInstance().addCastClass(clazz, 1); clearGeneratorCache(new GenericClass(clazz)); } }
@Test public void testDefaultInnerClassInSamePackage() throws ClassNotFoundException { Properties.CLASS_PREFIX = "com.examples.with.different.packagename.otherpackage"; Properties.TARGET_CLASS = "com.examples.with.different.packagename.otherpackage.ExampleWithStaticPackagePrivateInnerClass"; Class<?> clazz = Class.forName("com.examples.with.different.packagename.otherpackage.ExampleWithStaticPackagePrivateInnerClass$Foo"); boolean result = TestUsageChecker.canUse(clazz); Assert.assertTrue(result); } }
@Test public void testDefaultInnerClass() throws ClassNotFoundException { Properties.CLASS_PREFIX = "some.package"; Properties.TARGET_CLASS = "some.package.Foo"; Class<?> clazz = Class.forName("com.examples.with.different.packagename.otherpackage.ExampleWithStaticPackagePrivateInnerClass$Foo"); boolean result = TestUsageChecker.canUse(clazz); Assert.assertFalse(result); }
@Test public void testPublicClass() { Properties.CLASS_PREFIX = "some.package"; Properties.TARGET_CLASS = "some.package.Foo"; boolean result = TestUsageChecker.canUse(ExampleWithStaticPackagePrivateInnerClass.class); Assert.assertTrue(result); }
@Test public void testPublicInnerClass() { Properties.CLASS_PREFIX = "some.package"; Properties.TARGET_CLASS = "some.package.Foo"; boolean result = TestUsageChecker.canUse(ExampleWithInnerClass.Foo.class); Assert.assertTrue(result); }
@Test public void testProtectedMethodTargetFromSubPackage() { Properties.CLASS_PREFIX = "com.examples.with.different.packagename"; Properties.TARGET_CLASS = "com.examples.with.different.packagename.Foo"; Method f = getMethod(com.examples.with.different.packagename.subpackage.AccessExamplesSubclass.class, "protectedMethod"); boolean result = TestUsageChecker.canUse(f, com.examples.with.different.packagename.subpackage.AccessExamplesSubclass.class); Assert.assertFalse(result); }
@Test public void testPublicMethodTargetSubPackage() { Properties.CLASS_PREFIX = "com.examples.with.different.packagename.subpackage"; Properties.TARGET_CLASS = "com.examples.with.different.packagename.subpackage.Foo"; Method f = getMethod(com.examples.with.different.packagename.subpackage.AccessExamplesSubclass.class, "publicMethod"); boolean result = TestUsageChecker.canUse(f, com.examples.with.different.packagename.subpackage.AccessExamplesSubclass.class); Assert.assertTrue(result); }
@Test public void testPrivateMethodTargetSubPackage() { Properties.CLASS_PREFIX = "com.examples.with.different.packagename.subpackage"; Properties.TARGET_CLASS = "com.examples.with.different.packagename.subpackage.Foo"; Method f = getMethod(com.examples.with.different.packagename.subpackage.AccessExamplesSubclass.class, "privateMethod"); boolean result = TestUsageChecker.canUse(f, com.examples.with.different.packagename.subpackage.AccessExamplesSubclass.class); Assert.assertFalse(result); }
@Test public void testDefaultField() { Properties.CLASS_PREFIX = "some.package"; Properties.TARGET_CLASS = "some.package.Foo"; Field f = FieldUtils.getField(com.examples.with.different.packagename.AccessExamples.class, "defaultField", true); boolean result = TestUsageChecker.canUse(f); Assert.assertFalse(result); }
@Test public void testPrivateField() { Properties.CLASS_PREFIX = "some.package"; Properties.TARGET_CLASS = "some.package.Foo"; Field f = FieldUtils.getField(com.examples.with.different.packagename.AccessExamples.class, "privateField", true); boolean result = TestUsageChecker.canUse(f); Assert.assertFalse(result); }
@Test public void testProtectedFieldTargetPackage() { Properties.CLASS_PREFIX = "com.examples.with.different.packagename"; Properties.TARGET_CLASS = "com.examples.with.different.packagename.Foo"; Field f = FieldUtils.getField(com.examples.with.different.packagename.AccessExamples.class, "protectedField", true); boolean result = TestUsageChecker.canUse(f); Assert.assertTrue(result); }
@Test public void testPublicMethod() { Properties.CLASS_PREFIX = "some.package"; Properties.TARGET_CLASS = "some.package.Foo"; Method f = getMethod(com.examples.with.different.packagename.AccessExamples.class, "publicMethod"); boolean result = TestUsageChecker.canUse(f); Assert.assertTrue(result); }
@Test public void testDefaultMethod() { Properties.CLASS_PREFIX = "some.package"; Properties.TARGET_CLASS = "some.package.Foo"; Method f = getMethod(com.examples.with.different.packagename.AccessExamples.class, "defaultMethod"); boolean result = TestUsageChecker.canUse(f); Assert.assertFalse(result); }
@Test public void testPublicMethodTargetPackage() { Properties.CLASS_PREFIX = "com.examples.with.different.packagename"; Properties.TARGET_CLASS = "com.examples.with.different.packagename.Foo"; Method f = getMethod(com.examples.with.different.packagename.AccessExamples.class, "publicMethod"); boolean result = TestUsageChecker.canUse(f); Assert.assertTrue(result); }
@Test public void testProtectedMethodTargetPackage() { Properties.CLASS_PREFIX = "com.examples.with.different.packagename"; Properties.TARGET_CLASS = "com.examples.with.different.packagename.Foo"; Method f = getMethod(com.examples.with.different.packagename.AccessExamples.class, "protectedMethod"); boolean result = TestUsageChecker.canUse(f); Assert.assertTrue(result); }
@Test public void testProtectedMethodTargetSubPackage() { Properties.CLASS_PREFIX = "com.examples.with.different.packagename.subpackage"; Properties.TARGET_CLASS = "com.examples.with.different.packagename.subpackage.Foo"; Method f = getMethod(com.examples.with.different.packagename.subpackage.AccessExamplesSubclass.class, "protectedMethod"); boolean result = TestUsageChecker.canUse(f, com.examples.with.different.packagename.subpackage.AccessExamplesSubclass.class); Assert.assertFalse(result); }
@Test public void testPublicMethodTargetFromSubPackage() { Properties.CLASS_PREFIX = "com.examples.with.different.packagename"; Properties.TARGET_CLASS = "com.examples.with.different.packagename.Foo"; Method f = getMethod(com.examples.with.different.packagename.subpackage.AccessExamplesSubclass.class, "publicMethod"); boolean result = TestUsageChecker.canUse(f, com.examples.with.different.packagename.subpackage.AccessExamplesSubclass.class); Assert.assertTrue(result); }
@Test public void testDefaultMethodTargetFromSubPackage() { Properties.CLASS_PREFIX = "com.examples.with.different.packagename"; Properties.TARGET_CLASS = "com.examples.with.different.packagename.Foo"; Method f = getMethod(com.examples.with.different.packagename.subpackage.AccessExamplesSubclass.class, "defaultMethod"); boolean result = TestUsageChecker.canUse(f, com.examples.with.different.packagename.subpackage.AccessExamplesSubclass.class); Assert.assertFalse(result); }
@Test public void testProtectedField() { Properties.CLASS_PREFIX = "some.package"; Properties.TARGET_CLASS = "some.package.Foo"; Field f = FieldUtils.getField(com.examples.with.different.packagename.AccessExamples.class, "protectedField", true); boolean result = TestUsageChecker.canUse(f); Assert.assertFalse(result); }
@Test public void testPrivateMethodTargetPackage() { Properties.CLASS_PREFIX = "com.examples.with.different.packagename"; Properties.TARGET_CLASS = "com.examples.with.different.packagename.Foo"; Method f = getMethod(com.examples.with.different.packagename.AccessExamples.class, "privateMethod"); boolean result = TestUsageChecker.canUse(f); Assert.assertFalse(result); }