@Test public void testDefineClassWithMethodsOfAllScopes() { final String cls = ClassBuilder .define("org.foo.Foo") .publicScope() .body() .publicMethod(void.class, "publicMethod") .finish() .protectedMethod(void.class, "protectedMethod") .finish() .packageMethod(void.class, "packagePrivateMethod") .finish() .privateMethod(void.class, "privateMethod") .finish() .toJavaString(); assertEquals("failed to generate class with methods of all scopes", CLASS_WITH_METHODS_OF_ALL_SCOPES, cls); }
@Test public void testDefineClassByImplementingInterface() { final String cls = ClassBuilder.implement(Baz.class) .publicMethod(void.class, "someMethod") .finish().toJavaString(); assertEquals("failed to generate class by implementing an interface", CLASS_DEFINITION_BY_IMPLEMENTING_INTERFACE, cls); }
cnqm.finish();
@Test public void testDefineAbstractClassWithAbstractMethods() { final String cls = ClassBuilder .define("org.foo.Foo") .publicScope() .abstractClass() .body() .publicConstructor() .finish() .publicAbstractMethod(void.class, "foo") .finish() .protectedAbstractMethod(void.class, "bar") .finish() .publicMethod(void.class, "baz") .finish() .toJavaString(); assertEquals("failed to generate abstract class with abstract method", ABSTRACT_CLASS_WITH_ABSTRACT_METHODS, cls); }
@SuppressWarnings("unchecked") @Test public void testDefineAbstractClassWithAbstractMethods2() { final String cls = ClassBuilder .define("org.foo.Foo") .publicScope() .abstractClass() .body() .publicConstructor() .finish() .publicAbstractMethod(MetaClassFactory.get(String.class), "someString").finish() .publicAbstractMethod(Integer.class, "someInteger", Parameter.finalOf(long.class, "aLong")).finish() .publicAbstractMethod(void.class, "foo", String.class, Integer.class).throws_(Throwable.class) .protectedAbstractMethod(void.class, "bar", Long.class, Double.class).throws_(UnsupportedOperationException.class) .protectedAbstractMethod(Long.class, "funTimes", Parameter.finalOf(String.class, "str")).finish() .packageAbstractMethod(void.class, "foobaz", Map.class) .throws_(MetaClassFactory.get(ClassNotFoundException.class)) .packageAbstractMethod(Float.class, "boringTimes", Parameter.of(byte[].class, "byteArr")).finish() .publicMethod(void.class, "baz") .finish() .toJavaString(); assertEquals(ABSTRACT_CLASS_WITH_ABSTRACT_METHODS_2, cls); }