/** * RUL 012 * * <p>Class: SuperTypeRule Unit: processRuleOnNode(Declaration d, ArrayList<Declaration> * allDecls); * * <p>Tests that the unit scores correctly for this class by evaluating three different instances. */ @Test public void superTwo() { ArrayList<Declaration> allDecls = new ArrayList<Declaration>(); Declaration a = new ClassDeclaration("Class A", false); Declaration b = new ClassDeclaration("Class B", false); Declaration c = new ClassDeclaration("Class C", false); Declaration d = new ClassDeclaration("Class D", false); allDecls.add(a); allDecls.add(b); allDecls.add(c); allDecls.add(d); // B and D used as super types here. c.addSuperClass(b.getName()); a.addSuperClass(d.getName()); SuperTypeRule rule = new SuperTypeRule(); rule.processRuleOnNode(b, allDecls); assertEquals(1, rule.getScore()); rule.processRuleOnNode(d, allDecls); assertEquals(1, rule.getScore()); }
/** * RUL 011 * * <p>Class: SuperTypeRule Unit: processRuleOnNode(Declaration d, ArrayList<Declaration> * allDecls); * * <p>Tests that the unit scores correctly for this class by evaluating three different instances. */ @Test public void superOne() { ArrayList<Declaration> allDecls = new ArrayList<Declaration>(); Declaration a = new InterfaceDeclaration("Interface A"); Declaration b = new InterfaceDeclaration("Interface B"); Declaration c = new InterfaceDeclaration("Interface C"); Declaration d = new InterfaceDeclaration("Interface D"); allDecls.add(a); allDecls.add(b); allDecls.add(c); allDecls.add(d); // C and A used as super types here. d.addSuperClass(c.getName()); c.addSuperClass(a.getName()); // A used as super type here. b.addSuperClass(a.getName()); SuperTypeRule rule = new SuperTypeRule(); rule.processRuleOnNode(a, allDecls); assertEquals(2, rule.getScore()); rule.processRuleOnNode(b, allDecls); assertEquals(0, rule.getScore()); rule.processRuleOnNode(c, allDecls); assertEquals(1, rule.getScore()); }