package org.incha.core.jswingripples; import junit.framework.TestCase; import org.eclipse.jdt.core.IType; import org.eclipse.jdt.core.JavaModelException; import org.incha.core.simpledom.MockType; public class TypeHierarchySupportTest extends TestCase { /** * Default constructor. */ public TypeHierarchySupportTest() { super(); } /** * @param name the test case name. */ public TypeHierarchySupportTest(final String name) { super(name); } public void testGetSuperclass() throws JavaModelException { final MockType t1 = new MockType("a.b.c.T1"); final MockType t2 = new MockType("a.b.c.T2"); final MockType t3 = new MockType("a.b.c.T3"); t1.setSuperClassName(t2.getFullyQualifiedName()); final TypeHierarchySupport support = new TypeHierarchySupport(new IType[]{t1, t2, t3}); assertNotNull(support.getSuperclass(t1)); assertNull(support.getSuperclass(t2)); assertNull(support.getSuperclass(t3)); } public void testGetSuperInterface() throws JavaModelException { final MockType t1 = new MockType("a.b.c.T1"); final MockType t2 = new MockType("a.b.c.T2"); final MockType t3 = new MockType("a.b.c.T3"); t1.setSuperInterfaceNames(new String[]{t2.getFullyQualifiedName(), "arbrakadabra"}); final TypeHierarchySupport support = new TypeHierarchySupport(new IType[]{t1, t2, t3}); final IType[] sup = support.getSuperInterfaces(t1); assertEquals(1, sup.length); assertEquals(t2.getFullyQualifiedName(), sup[0].getFullyQualifiedName()); } public void testGetSuperSuperInterface() throws JavaModelException { final MockType t1 = new MockType("a.b.c.T1"); final MockType t2 = new MockType("a.b.c.T2"); final MockType t3 = new MockType("a.b.c.T3"); final MockType t4 = new MockType("a.b.c.T3"); t1.setSuperInterfaceNames(new String[]{t2.getFullyQualifiedName()}); t2.setSuperInterfaceNames(new String[]{t3.getFullyQualifiedName()}); final TypeHierarchySupport support = new TypeHierarchySupport(new IType[]{t1, t2, t3, t4}); final IType[] sup = support.getSuperInterfaces(t1); assertEquals(2, sup.length); } public void testCiclicInterfaces() throws JavaModelException { final MockType t1 = new MockType("a.b.c.T1"); final MockType t2 = new MockType("a.b.c.T2"); final MockType t3 = new MockType("a.b.c.T3"); final MockType t4 = new MockType("a.b.c.T3"); t1.setSuperInterfaceNames(new String[]{t2.getFullyQualifiedName()}); t2.setSuperInterfaceNames(new String[]{t3.getFullyQualifiedName()}); t3.setSuperInterfaceNames(new String[]{t2.getFullyQualifiedName()}); t3.setSuperInterfaceNames(new String[]{t1.getFullyQualifiedName()}); final TypeHierarchySupport support = new TypeHierarchySupport(new IType[]{t1, t2, t3, t4}); final IType[] sup = support.getSuperInterfaces(t1); assertEquals(2, sup.length); } }