import static org.junit.Assert.assertEquals; import org.junit.Test; import com.fasterxml.classmate.MemberResolver; import com.fasterxml.classmate.ResolvedType; import com.fasterxml.classmate.ResolvedTypeWithMembers; import com.fasterxml.classmate.TypeResolver; import com.fasterxml.classmate.members.ResolvedMethod; public class InheritanceTest { private final TypeResolver typeResolver; private final MemberResolver memberResolver; public InheritanceTest() { typeResolver = new TypeResolver(); memberResolver = new MemberResolver(typeResolver); } private static class PrivateParent { private void function() { } } private static class PrivateChild extends PrivateParent { private void function() { } } @Test public void testPrivate() { ResolvedType type = typeResolver.resolve(PrivateChild.class); ResolvedTypeWithMembers members = memberResolver.resolve(type, null, null); ResolvedMethod[] memberMethods = members.getMemberMethods(); assertEquals(2, memberMethods.length); } private static class VirtualParent { protected void function() { } } private static class VirtualChild extends VirtualParent { @Override protected void function() { } } @Test public void testVirtual() { ResolvedType type = typeResolver.resolve(VirtualChild.class); ResolvedTypeWithMembers members = memberResolver.resolve(type, null, null); ResolvedMethod[] memberMethods = members.getMemberMethods(); assertEquals(1, memberMethods.length); } }