package org.bindgen.processor;
import static org.junit.Assert.*;
import org.junit.Test;
public class InnerClassTest extends AbstractBindgenTestCase {
@Test
public void testGenerateBindingsForInnerClasses() throws Exception {
ClassLoader loader = this.compile("org/bindgen/processor/inner/SomeClass.java");
Class<?> actualClass = loader.loadClass("org.bindgen.processor.inner.SomeClass$InnerClass");
assertNotNull(actualClass);
Class<?> bindingClass = loader.loadClass("org.bindgen.processor.inner.someClass.InnerClassBindingPath");
assertNotNull(bindingClass);
assertMethodDeclared(bindingClass, "x");
assertMethodDeclared(bindingClass, "squared");
assertMethodNotDeclared(bindingClass, "foobar"); // does not have access to protected from different package (someClass)
}
@Test
public void testGenerateBindingsForNastyInnerClasses() throws Exception {
ClassLoader loader = this.compile("org/bindgen/processor/inner/nastyClass.java");
Class<?> actualClass = loader.loadClass("org.bindgen.processor.inner.nastyClass$InnerClass");
assertNotNull(actualClass);
Class<?> bindingClass = loader.loadClass("org.bindgen.processor.inner.bindgen_nastyClass.InnerClassBindingPath");
assertNotNull(bindingClass);
assertMethodDeclared(bindingClass, "x");
}
}