From de91b96293ca34cab75a9790b7cefa1b75d977ea Mon Sep 17 00:00:00 2001 From: Jean Tessier Date: Mon, 13 Jan 2025 12:12:57 -0800 Subject: [PATCH] Migrate unit tests to JUnit Jupiter --- .../jeantessier/dependency/TestClassNode.java | 150 ++++----- .../com/jeantessier/dependency/TestCycle.java | 211 ++++--------- .../dependency/TestCycleComparator.java | 55 ++-- .../dependency/TestCycleDetector.java | 113 +++---- .../dependency/TestFeatureNode.java | 100 +++--- .../dependency/TestGraphCopier.java | 92 +++--- .../TestGraphCopierWithConfirmed.java | 77 ++--- .../TestGraphCopierWithFiltering.java | 48 +-- .../dependency/TestGraphSummarizer.java | 259 ++++++++-------- .../TestGraphSummarizerWithConfirmed.java | 91 +++--- .../TestGraphSummarizerWithFiltering.java | 66 ++-- .../TestGraphSummarizerWithScoping.java | 30 +- .../dependency/TestHTMLCyclePrinter.java | 75 ++--- .../dependency/TestHTMLPrinterBase.java | 16 +- .../TestHTMLPrinterEscapeMetaCharacters.java | 125 ++++---- .../com/jeantessier/dependency/TestNode.java | 75 +++-- .../dependency/TestPackageNode.java | 80 ++--- .../dependency/TestTextCyclePrinter.java | 210 ++++++------- .../dependency/TestXMLCyclePrinter.java | 292 ++++++++---------- 19 files changed, 983 insertions(+), 1182 deletions(-) diff --git a/lib/src/test/java/com/jeantessier/dependency/TestClassNode.java b/lib/src/test/java/com/jeantessier/dependency/TestClassNode.java index 3e78bfc2..903520f8 100644 --- a/lib/src/test/java/com/jeantessier/dependency/TestClassNode.java +++ b/lib/src/test/java/com/jeantessier/dependency/TestClassNode.java @@ -32,111 +32,115 @@ package com.jeantessier.dependency; -import java.util.*; +import org.junit.jupiter.api.*; -import junit.framework.*; +import java.util.*; -public class TestClassNode extends TestCase { - private NodeFactory factory; +import static org.junit.jupiter.api.Assertions.*; - protected void setUp() throws Exception { - super.setUp(); - - factory = new NodeFactory(); - } +public class TestClassNode { + private final NodeFactory factory = new NodeFactory(); - public void testSwitchClassNodeFromReferencedToConcrete() { + @Test + void testSwitchClassNodeFromReferencedToConcrete() { ClassNode classNode = factory.createClass("a.A", false); - assertFalse("Not referenced", classNode.getPackageNode().isConfirmed()); - assertFalse("Not referenced", classNode.isConfirmed()); + assertFalse(classNode.getPackageNode().isConfirmed(), "Not referenced"); + assertFalse(classNode.isConfirmed(), "Not referenced"); classNode.setConfirmed(true); - assertTrue("Not concrete", classNode.getPackageNode().isConfirmed()); - assertTrue("Not concrete", classNode.isConfirmed()); + assertTrue(classNode.getPackageNode().isConfirmed(), "Not concrete"); + assertTrue(classNode.isConfirmed(), "Not concrete"); } - public void testSwitchOneClassNodeOutOfTwoFromReferencedToConcrete() { + @Test + void testSwitchOneClassNodeOutOfTwoFromReferencedToConcrete() { ClassNode classNode = factory.createClass("a.A", false); ClassNode otherClassNode = factory.createClass("a.B", false); - assertSame("Different package node", classNode.getPackageNode(), otherClassNode.getPackageNode()); + assertSame(classNode.getPackageNode(), otherClassNode.getPackageNode(), "Different package node"); - assertFalse("Not referenced", classNode.getPackageNode().isConfirmed()); - assertFalse("Not referenced", classNode.isConfirmed()); - assertFalse("Not referenced", otherClassNode.getPackageNode().isConfirmed()); - assertFalse("Not referenced", otherClassNode.isConfirmed()); + assertFalse(classNode.getPackageNode().isConfirmed(), "Not referenced"); + assertFalse(classNode.isConfirmed(), "Not referenced"); + assertFalse(otherClassNode.getPackageNode().isConfirmed(), "Not referenced"); + assertFalse(otherClassNode.isConfirmed(), "Not referenced"); classNode.setConfirmed(true); - assertTrue("Not concrete", classNode.getPackageNode().isConfirmed()); - assertTrue("Not concrete", classNode.isConfirmed()); - assertTrue("Not concrete", otherClassNode.getPackageNode().isConfirmed()); - assertFalse("Not referenced", otherClassNode.isConfirmed()); + assertTrue(classNode.getPackageNode().isConfirmed(), "Not concrete"); + assertTrue(classNode.isConfirmed(), "Not concrete"); + assertTrue(otherClassNode.getPackageNode().isConfirmed(), "Not concrete"); + assertFalse(otherClassNode.isConfirmed(), "Not referenced"); } - public void testMakingClassNodeConcreteDoesNotChangeItsFeatures() { + @Test + void testMakingClassNodeConcreteDoesNotChangeItsFeatures() { ClassNode classNode = factory.createClass("a.A", false); FeatureNode featureNode = factory.createFeature("a.A.a", false); - assertFalse("Not referenced", classNode.getPackageNode().isConfirmed()); - assertFalse("Not referenced", classNode.isConfirmed()); - assertFalse("Not referenced", featureNode.isConfirmed()); + assertFalse(classNode.getPackageNode().isConfirmed(), "Not referenced"); + assertFalse(classNode.isConfirmed(), "Not referenced"); + assertFalse(featureNode.isConfirmed(), "Not referenced"); classNode.setConfirmed(true); - assertTrue("Not concrete", classNode.getPackageNode().isConfirmed()); - assertTrue("Not concrete", classNode.isConfirmed()); - assertFalse("Not referenced", featureNode.isConfirmed()); + assertTrue(classNode.getPackageNode().isConfirmed(), "Not concrete"); + assertTrue(classNode.isConfirmed(), "Not concrete"); + assertFalse(featureNode.isConfirmed(), "Not referenced"); } - public void testSwitchEmptyClassNodeFromConcreteToReferenced() { + @Test + void testSwitchEmptyClassNodeFromConcreteToReferenced() { ClassNode classNode = factory.createClass("a.A", true); - assertTrue("Not concrete", classNode.getPackageNode().isConfirmed()); - assertTrue("Not concrete", classNode.isConfirmed()); + assertTrue(classNode.getPackageNode().isConfirmed(), "Not concrete"); + assertTrue(classNode.isConfirmed(), "Not concrete"); classNode.setConfirmed(false); - assertFalse("Not referenced", classNode.getPackageNode().isConfirmed()); - assertFalse("Not referenced", classNode.isConfirmed()); + assertFalse(classNode.getPackageNode().isConfirmed(), "Not referenced"); + assertFalse(classNode.isConfirmed(), "Not referenced"); } - public void testSwitchOneClassNodeOutOfTwoFromConcreteToReferenced() { + @Test + void testSwitchOneClassNodeOutOfTwoFromConcreteToReferenced() { ClassNode classNode = factory.createClass("a.A", true); ClassNode otherClassNode = factory.createClass("a.B", true); - assertSame("Different package node", classNode.getPackageNode(), otherClassNode.getPackageNode()); + assertSame(classNode.getPackageNode(), otherClassNode.getPackageNode(), "Different package node"); - assertTrue("Not concrete", classNode.getPackageNode().isConfirmed()); - assertTrue("Not concrete", classNode.isConfirmed()); - assertTrue("Not concrete", otherClassNode.getPackageNode().isConfirmed()); - assertTrue("Not concrete", otherClassNode.isConfirmed()); + assertTrue(classNode.getPackageNode().isConfirmed(), "Not concrete"); + assertTrue(classNode.isConfirmed(), "Not concrete"); + assertTrue(otherClassNode.getPackageNode().isConfirmed(), "Not concrete"); + assertTrue(otherClassNode.isConfirmed(), "Not concrete"); classNode.setConfirmed(false); - assertTrue("Not concrete", classNode.getPackageNode().isConfirmed()); - assertFalse("Not referenced", classNode.isConfirmed()); - assertTrue("Not concrete", classNode.getPackageNode().isConfirmed()); - assertTrue("Not concrete", otherClassNode.isConfirmed()); + assertTrue(classNode.getPackageNode().isConfirmed(), "Not concrete"); + assertFalse(classNode.isConfirmed(), "Not referenced"); + assertTrue(classNode.getPackageNode().isConfirmed(), "Not concrete"); + assertTrue(otherClassNode.isConfirmed(), "Not concrete"); } - public void testSwitchClassNodeWithConcreteFeatureFromConcreteToReferenced() { + @Test + void testSwitchClassNodeWithConcreteFeatureFromConcreteToReferenced() { ClassNode classNode = factory.createClass("a.A", true); FeatureNode featureNode = factory.createFeature("a.A.a", true); - assertTrue("Not concrete", classNode.getPackageNode().isConfirmed()); - assertTrue("Not concrete", classNode.isConfirmed()); - assertTrue("Not concrete", featureNode.isConfirmed()); + assertTrue(classNode.getPackageNode().isConfirmed(), "Not concrete"); + assertTrue(classNode.isConfirmed(), "Not concrete"); + assertTrue(featureNode.isConfirmed(), "Not concrete"); classNode.setConfirmed(false); - assertFalse("Not referenced", classNode.getPackageNode().isConfirmed()); - assertFalse("Not referenced", classNode.isConfirmed()); - assertFalse("Not referenced", featureNode.isConfirmed()); + assertFalse(classNode.getPackageNode().isConfirmed(), "Not referenced"); + assertFalse(classNode.isConfirmed(), "Not referenced"); + assertFalse(featureNode.isConfirmed(), "Not referenced"); } - public void testSwitchClassNodeWithReferencedClassFromConcreteToReferenced() { + @Test + void testSwitchClassNodeWithReferencedClassFromConcreteToReferenced() { ClassNode classNode = factory.createClass("a.A", true); FeatureNode featureNode = factory.createFeature("a.A.a", false); - assertTrue("Not concrete", classNode.getPackageNode().isConfirmed()); - assertTrue("Not concrete", classNode.isConfirmed()); - assertFalse("Not referenced", featureNode.isConfirmed()); + assertTrue(classNode.getPackageNode().isConfirmed(), "Not concrete"); + assertTrue(classNode.isConfirmed(), "Not concrete"); + assertFalse(featureNode.isConfirmed(), "Not referenced"); classNode.setConfirmed(false); - assertFalse("Not referenced", classNode.getPackageNode().isConfirmed()); - assertFalse("Not referenced", classNode.isConfirmed()); - assertFalse("Not referenced", featureNode.isConfirmed()); + assertFalse(classNode.getPackageNode().isConfirmed(), "Not referenced"); + assertFalse(classNode.isConfirmed(), "Not referenced"); + assertFalse(featureNode.isConfirmed(), "Not referenced"); } - public void testAddParent() { + @Test + void testAddParent() { ClassNode classNode = factory.createClass("a.A"); ClassNode parentClass = factory.createClass("a.B"); @@ -145,7 +149,8 @@ public void testAddParent() { assertTrue(parentClass.getChildren().contains(classNode)); } - public void testGetSimpleName_DefaultPackage() { + @Test + void testGetSimpleName_DefaultPackage() { String packageName = ""; PackageNode packageNode = new PackageNode(packageName, true); @@ -155,7 +160,8 @@ public void testGetSimpleName_DefaultPackage() { assertEquals(className, sut.getSimpleName()); } - public void testGetSimpleName_SomePackage() { + @Test + void testGetSimpleName_SomePackage() { String packageName = "foo"; PackageNode packageNode = new PackageNode(packageName, true); @@ -165,7 +171,8 @@ public void testGetSimpleName_SomePackage() { assertEquals(className, sut.getSimpleName()); } - public void testGetFeature_Trivial() { + @Test + void testGetFeature_Trivial() { String packageName = "foo"; PackageNode packageNode = new PackageNode(packageName, true); @@ -180,7 +187,8 @@ public void testGetFeature_Trivial() { assertSame(featureNode, actualFeatureNode); } - public void testGetFeature_NoSuchFeature() { + @Test + void testGetFeature_NoSuchFeature() { String packageName = "foo"; PackageNode packageNode = new PackageNode(packageName, true); @@ -193,7 +201,8 @@ public void testGetFeature_NoSuchFeature() { assertNull(actualFeatureNode); } - public void testGetFeature_MethodWithParameterOfSameClassType() { + @Test + void testGetFeature_MethodWithParameterOfSameClassType() { String packageName = "foo"; PackageNode packageNode = new PackageNode(packageName, true); @@ -208,7 +217,8 @@ public void testGetFeature_MethodWithParameterOfSameClassType() { assertSame(featureNode, actualFeatureNode); } - public void testGetInheritedFeatures_FeatureOnlyInParent() { + @Test + void testGetInheritedFeatures_FeatureOnlyInParent() { PackageNode packageNode = new PackageNode("", true); ClassNode parentNode = new ClassNode(packageNode, "Foo", true); @@ -225,7 +235,8 @@ public void testGetInheritedFeatures_FeatureOnlyInParent() { assertSame(parentFeatureNode, actualFeatureNodes.iterator().next()); } - public void testGetInheritedFeatures_FeatureInParentAndChild() { + @Test + void testGetInheritedFeatures_FeatureInParentAndChild() { PackageNode packageNode = new PackageNode("", true); ClassNode parentNode = new ClassNode(packageNode, "Foo", true); @@ -247,7 +258,8 @@ public void testGetInheritedFeatures_FeatureInParentAndChild() { assertSame(parentFeatureNode, i.next()); } - public void testGetInheritedFeatures_FeatureOnlyInAncestor() { + @Test + void testGetInheritedFeatures_FeatureOnlyInAncestor() { PackageNode packageNode = new PackageNode("", true); ClassNode ancestorNode = new ClassNode(packageNode, "F", true); diff --git a/lib/src/test/java/com/jeantessier/dependency/TestCycle.java b/lib/src/test/java/com/jeantessier/dependency/TestCycle.java index 6621f291..4df64c81 100644 --- a/lib/src/test/java/com/jeantessier/dependency/TestCycle.java +++ b/lib/src/test/java/com/jeantessier/dependency/TestCycle.java @@ -32,194 +32,119 @@ package com.jeantessier.dependency; -import java.util.*; +import org.junit.jupiter.api.*; -import junit.framework.*; +import java.util.*; -public class TestCycle extends TestCase { - private Node a; - private Node b; - private Node c; - private Node d; - private Node e; +import static org.junit.jupiter.api.Assertions.*; - protected void setUp() throws Exception { - NodeFactory factory = new NodeFactory(); +public class TestCycle { + private final NodeFactory factory = new NodeFactory(); - a = factory.createPackage("a"); - b = factory.createPackage("b"); - c = factory.createPackage("c"); - d = factory.createPackage("d"); - e = factory.createPackage("e"); - } + private final Node a = factory.createPackage("a"); + private final Node b = factory.createPackage("b"); + private final Node c = factory.createPackage("c"); + private final Node d = factory.createPackage("d"); + private final Node e = factory.createPackage("e"); - public void testConstructEmptyCycle() { - try { - new Cycle(new ArrayList<>()); - fail("Constructed empty cycle"); - } catch (Exception ex) { - // expected - } + @Test + void testConstructEmptyCycle() { + assertThrows(Exception.class, () -> new Cycle(List.of())); } - public void testConstructLength1Cycle() { - List path = new ArrayList<>(); - path.add(a); - Cycle cycle = new Cycle(path); + @Test + void testConstructLength1Cycle() { + Cycle cycle = new Cycle(List.of(a)); - assertEquals("length", 1, cycle.getLength()); - assertEquals("a", a, cycle.getPath().iterator().next()); + assertEquals(1, cycle.getLength(), "length"); + assertEquals(a, cycle.getPath().iterator().next(), "a"); } - public void testEquals_Identical() { - List path1 = new ArrayList<>(); - path1.add(a); - path1.add(b); - Cycle cycle1 = new Cycle(path1); + @Test + void testEquals_Identical() { + Cycle cycle1 = new Cycle(List.of(a, b)); + Cycle cycle2 = new Cycle(List.of(a, b)); - List path2 = new ArrayList<>(); - path2.add(a); - path2.add(b); - Cycle cycle2 = new Cycle(path2); - - assertTrue(cycle1.equals(cycle2)); - assertTrue(cycle2.equals(cycle1)); + assertEquals(cycle1, cycle2); + assertEquals(cycle2, cycle1); } - public void testEquals_Reversed() { - List path1 = new ArrayList<>(); - path1.add(a); - path1.add(b); - Cycle cycle1 = new Cycle(path1); - - List path2 = new ArrayList<>(); - path2.add(b); - path2.add(a); - Cycle cycle2 = new Cycle(path2); + @Test + void testEquals_Reversed() { + Cycle cycle1 = new Cycle(List.of(a, b)); + Cycle cycle2 = new Cycle(List.of(b, a)); - assertTrue(cycle1.equals(cycle2)); - assertTrue(cycle2.equals(cycle1)); + assertEquals(cycle1, cycle2); + assertEquals(cycle2, cycle1); } - public void testEquals_SameLength() { - List path1 = new ArrayList<>(); - path1.add(a); - path1.add(b); - Cycle cycle1 = new Cycle(path1); - - List path2 = new ArrayList<>(); - path2.add(c); - path2.add(d); - Cycle cycle2 = new Cycle(path2); + @Test + void testEquals_SameLength() { + Cycle cycle1 = new Cycle(List.of(a, b)); + Cycle cycle2 = new Cycle(List.of(c, d)); - assertFalse(cycle1.equals(cycle2)); - assertFalse(cycle2.equals(cycle1)); + assertNotEquals(cycle1, cycle2); + assertNotEquals(cycle2, cycle1); } - public void testEquals_DifferentLength() { - List path1 = new ArrayList<>(); - path1.add(a); - path1.add(b); - Cycle cycle1 = new Cycle(path1); + @Test + void testEquals_DifferentLength() { + Cycle cycle1 = new Cycle(List.of(a, b)); + Cycle cycle2 = new Cycle(List.of(c, d, e)); - List path2 = new ArrayList<>(); - path2.add(c); - path2.add(d); - path2.add(e); - Cycle cycle2 = new Cycle(path2); - - assertFalse(cycle1.equals(cycle2)); - assertFalse(cycle2.equals(cycle1)); + assertNotEquals(cycle1, cycle2); + assertNotEquals(cycle2, cycle1); } - public void testEquals_LengthTrumpsContent() { - List path1 = new ArrayList<>(); - path1.add(a); - path1.add(b); - path1.add(c); - Cycle cycle1 = new Cycle(path1); - - List path2 = new ArrayList<>(); - path2.add(d); - path2.add(e); - Cycle cycle2 = new Cycle(path2); + @Test + void testEquals_LengthTrumpsContent() { + Cycle cycle1 = new Cycle(List.of(a, b, c)); + Cycle cycle2 = new Cycle(List.of(d, e)); - assertFalse(cycle1.equals(cycle2)); - assertFalse(cycle2.equals(cycle1)); + assertNotEquals(cycle1, cycle2); + assertNotEquals(cycle2, cycle1); } - public void testCompareTo_Identical() { - List path1 = new ArrayList<>(); - path1.add(a); - path1.add(b); - Cycle cycle1 = new Cycle(path1); - - List path2 = new ArrayList<>(); - path2.add(a); - path2.add(b); - Cycle cycle2 = new Cycle(path2); + @Test + void testCompareTo_Identical() { + Cycle cycle1 = new Cycle(List.of(a, b)); + Cycle cycle2 = new Cycle(List.of(a, b)); assertEquals(0, cycle1.compareTo(cycle2)); assertEquals(0, cycle2.compareTo(cycle1)); } - public void testCompareTo_Reversed() { - List path1 = new ArrayList<>(); - path1.add(a); - path1.add(b); - Cycle cycle1 = new Cycle(path1); - - List path2 = new ArrayList<>(); - path2.add(b); - path2.add(a); - Cycle cycle2 = new Cycle(path2); + @Test + void testCompareTo_Reversed() { + Cycle cycle1 = new Cycle(List.of(a, b)); + Cycle cycle2 = new Cycle(List.of(b, a)); assertEquals(0, cycle1.compareTo(cycle2)); assertEquals(0, cycle2.compareTo(cycle1)); } - public void testCompareTo_SameLength() { - List path1 = new ArrayList<>(); - path1.add(a); - path1.add(b); - Cycle cycle1 = new Cycle(path1); - - List path2 = new ArrayList<>(); - path2.add(c); - path2.add(d); - Cycle cycle2 = new Cycle(path2); + @Test + void testCompareTo_SameLength() { + Cycle cycle1 = new Cycle(List.of(a, b)); + Cycle cycle2 = new Cycle(List.of(c, d)); assertTrue(cycle1.compareTo(cycle2) < 0); assertTrue(cycle2.compareTo(cycle1) > 0); } - public void testCompareTo_DifferentLength() { - List path1 = new ArrayList<>(); - path1.add(a); - path1.add(b); - Cycle cycle1 = new Cycle(path1); - - List path2 = new ArrayList<>(); - path2.add(c); - path2.add(d); - path2.add(e); - Cycle cycle2 = new Cycle(path2); + @Test + void testCompareTo_DifferentLength() { + Cycle cycle1 = new Cycle(List.of(a, b)); + Cycle cycle2 = new Cycle(List.of(c, d, e)); assertTrue(cycle1.compareTo(cycle2) < 0); assertTrue(cycle2.compareTo(cycle1) > 0); } - public void testCompareTo_LengthTrumpsContent() { - List path1 = new ArrayList<>(); - path1.add(a); - path1.add(b); - path1.add(c); - Cycle cycle1 = new Cycle(path1); - - List path2 = new ArrayList<>(); - path2.add(d); - path2.add(e); - Cycle cycle2 = new Cycle(path2); + @Test + void testCompareTo_LengthTrumpsContent() { + Cycle cycle1 = new Cycle(List.of(a, b, c)); + Cycle cycle2 = new Cycle(List.of(d, e)); assertTrue(cycle1.compareTo(cycle2) > 0); assertTrue(cycle2.compareTo(cycle1) < 0); diff --git a/lib/src/test/java/com/jeantessier/dependency/TestCycleComparator.java b/lib/src/test/java/com/jeantessier/dependency/TestCycleComparator.java index 23545f2f..ccf1d075 100644 --- a/lib/src/test/java/com/jeantessier/dependency/TestCycleComparator.java +++ b/lib/src/test/java/com/jeantessier/dependency/TestCycleComparator.java @@ -32,53 +32,46 @@ package com.jeantessier.dependency; -import java.util.*; - -import junit.framework.*; +import org.junit.jupiter.api.*; -public class TestCycleComparator extends TestCase { - public void testCompareBasedOnLength() { - Node node = new PackageNode("node", true); +import java.util.*; - List shortPath = new ArrayList<>(); - shortPath.add(node); - shortPath.add(node); +import static org.junit.jupiter.api.Assertions.*; - List longPath = new ArrayList<>(); - longPath.add(node); - longPath.add(node); - longPath.add(node); +public class TestCycleComparator { + @Test + void testCompareBasedOnLength() { + var node = new PackageNode("node", true); + var shortPath = List.of(node, node); Cycle shortCycle = new Cycle(shortPath); + + var longPath = List.of(node, node, node); Cycle longCycle = new Cycle(longPath); var comparator = new CycleComparator(); - assertTrue("2 < 3", comparator.compare(shortCycle, longCycle) < 0); - assertTrue("2 == 2", comparator.compare(shortCycle, shortCycle) == 0); - assertTrue("3 > 2", comparator.compare(longCycle, shortCycle) > 0); + assertTrue(comparator.compare(shortCycle, longCycle) < 0, "2 < 3"); + assertTrue(comparator.compare(shortCycle, shortCycle) == 0, "2 == 2"); + assertTrue(comparator.compare(longCycle, shortCycle) > 0, "3 > 2"); } - public void testCompareBasedOnPath() { - Node node1 = new PackageNode("node1", true); - Node node2 = new PackageNode("node2", true); - Node node3 = new PackageNode("node3", true); - - List path1 = new ArrayList<>(); - path1.add(node1); - path1.add(node2); - - List path2 = new ArrayList<>(); - path2.add(node2); - path2.add(node3); + @Test + void testCompareBasedOnPath() { + var node1 = new PackageNode("node1", true); + var node2 = new PackageNode("node2", true); + var node3 = new PackageNode("node3", true); + var path1 = List.of(node1, node2); Cycle cycle1 = new Cycle(path1); + + var path2 = List.of(node2, node3); Cycle cycle2 = new Cycle(path2); var comparator = new CycleComparator(); - assertTrue("1 < 2", comparator.compare(cycle1, cycle2) < 0); - assertTrue("1 == 1", comparator.compare(cycle1, cycle1) == 0); - assertTrue("2 > 1", comparator.compare(cycle2, cycle1) > 0); + assertTrue(comparator.compare(cycle1, cycle2) < 0, "1 < 2"); + assertTrue(comparator.compare(cycle1, cycle1) == 0, "1 == 1"); + assertTrue(comparator.compare(cycle2, cycle1) > 0, "2 > 1"); } } diff --git a/lib/src/test/java/com/jeantessier/dependency/TestCycleDetector.java b/lib/src/test/java/com/jeantessier/dependency/TestCycleDetector.java index 623eb322..d6126fd0 100644 --- a/lib/src/test/java/com/jeantessier/dependency/TestCycleDetector.java +++ b/lib/src/test/java/com/jeantessier/dependency/TestCycleDetector.java @@ -32,10 +32,12 @@ package com.jeantessier.dependency; -import junit.framework.*; +import org.junit.jupiter.api.*; -public class TestCycleDetector extends TestCase { - private NodeFactory factory; +import static org.junit.jupiter.api.Assertions.*; + +public class TestCycleDetector { + private final NodeFactory factory = new NodeFactory(); private Node a_package; private Node a_A_a_feature; @@ -47,11 +49,10 @@ public class TestCycleDetector extends TestCase { private Node d_package; private Node e_package; - private CycleDetector detector; - - protected void setUp() throws Exception { - factory = new NodeFactory(); + private final CycleDetector detector = new CycleDetector(); + @BeforeEach + void setUp() { a_package = factory.createPackage("a"); a_A_a_feature = factory.createFeature("a.A.a"); @@ -61,54 +62,57 @@ protected void setUp() throws Exception { c_package = factory.createPackage("c"); d_package = factory.createPackage("d"); e_package = factory.createPackage("e"); - - detector = new CycleDetector(); } - public void testNoDependencies() { + @Test + void testNoDependencies() { detector.traverseNodes(factory.getPackages().values()); - assertEquals("Nb cycles", 0, detector.getCycles().size()); + assertEquals(0, detector.getCycles().size(), "Nb cycles"); } - public void testNoCycles() { + @Test + void testNoCycles() { a_package.addDependency(b_package); detector.traverseNodes(factory.getPackages().values()); - assertEquals("Nb cycles", 0, detector.getCycles().size()); + assertEquals(0, detector.getCycles().size(), "Nb cycles"); } - public void testOneLength2PackageCycle() { + @Test + void testOneLength2PackageCycle() { a_package.addDependency(b_package); b_package.addDependency(a_package); detector.traverseNodes(factory.getPackages().values()); - assertEquals("Nb cycles", 1, detector.getCycles().size()); + assertEquals(1, detector.getCycles().size(), "Nb cycles"); var cycles = detector.getCycles().iterator(); var cycle = cycles.next(); - assertEquals("cycle length", 2, cycle.getLength()); + assertEquals(2, cycle.getLength(), "cycle length"); var i = cycle.getPath().iterator(); - assertEquals("a", a_package, i.next()); - assertEquals("b", b_package, i.next()); + assertEquals(a_package, i.next(), "a"); + assertEquals(b_package, i.next(), "b"); } - public void testOneLength3PackageCycle() { + @Test + void testOneLength3PackageCycle() { a_package.addDependency(b_package); b_package.addDependency(c_package); c_package.addDependency(a_package); detector.traverseNodes(factory.getPackages().values()); - assertEquals("Nb cycles", 1, detector.getCycles().size()); + assertEquals(1, detector.getCycles().size(), "Nb cycles"); var cycles = detector.getCycles().iterator(); var cycle = cycles.next(); - assertEquals("cycle length", 3, cycle.getLength()); + assertEquals(3, cycle.getLength(), "cycle length"); var i = cycle.getPath().iterator(); - assertEquals("a", a_package, i.next()); - assertEquals("b", b_package, i.next()); - assertEquals("c", c_package, i.next()); + assertEquals(a_package, i.next(), "a"); + assertEquals(b_package, i.next(), "b"); + assertEquals(c_package, i.next(), "c"); } - public void testTwoLength3PackageCycles() { + @Test + void testTwoLength3PackageCycles() { a_package.addDependency(b_package); b_package.addDependency(c_package); c_package.addDependency(a_package); @@ -116,51 +120,53 @@ public void testTwoLength3PackageCycles() { d_package.addDependency(e_package); e_package.addDependency(c_package); detector.traverseNodes(factory.getPackages().values()); - assertEquals("Nb cycles", 2, detector.getCycles().size()); + assertEquals(2, detector.getCycles().size(), "Nb cycles"); var cycles = detector.getCycles().iterator(); var cycle = cycles.next(); - assertEquals("cycle length", 3, cycle.getLength()); + assertEquals(3, cycle.getLength(), "cycle length"); var i = cycle.getPath().iterator(); - assertEquals("a", a_package, i.next()); - assertEquals("b", b_package, i.next()); - assertEquals("c", c_package, i.next()); + assertEquals(a_package, i.next(), "a"); + assertEquals(b_package, i.next(), "b"); + assertEquals(c_package, i.next(), "c"); cycle = cycles.next(); - assertEquals("cycle length", 3, cycle.getLength()); + assertEquals(3, cycle.getLength(), "cycle length"); i = cycle.getPath().iterator(); - assertEquals("c", c_package, i.next()); - assertEquals("d", d_package, i.next()); - assertEquals("e", e_package, i.next()); + assertEquals(c_package, i.next(), "c"); + assertEquals(d_package, i.next(), "d"); + assertEquals(e_package, i.next(), "e"); } - public void testOneLength2AndOneLength3PackageCycles() { + @Test + void testOneLength2AndOneLength3PackageCycles() { a_package.addDependency(b_package); b_package.addDependency(a_package); c_package.addDependency(d_package); d_package.addDependency(e_package); e_package.addDependency(c_package); detector.traverseNodes(factory.getPackages().values()); - assertEquals("Nb cycles", 2, detector.getCycles().size()); + assertEquals(2, detector.getCycles().size(), "Nb cycles"); var cycles = detector.getCycles().iterator(); var cycle = cycles.next(); - assertEquals("cycle length", 2, cycle.getLength()); + assertEquals(2, cycle.getLength(), "cycle length"); var i = cycle.getPath().iterator(); - assertEquals("a", a_package, i.next()); - assertEquals("b", b_package, i.next()); + assertEquals(a_package, i.next(), "a"); + assertEquals(b_package, i.next(), "b"); cycle = cycles.next(); - assertEquals("cycle length", 3, cycle.getLength()); + assertEquals(3, cycle.getLength(), "cycle length"); i = cycle.getPath().iterator(); - assertEquals("c", c_package, i.next()); - assertEquals("d", d_package, i.next()); - assertEquals("e", e_package, i.next()); + assertEquals(c_package, i.next(), "c"); + assertEquals(d_package, i.next(), "d"); + assertEquals(e_package, i.next(), "e"); } - public void testMaximumLength() { + @Test + void testMaximumLength() { a_package.addDependency(b_package); b_package.addDependency(a_package); c_package.addDependency(d_package); @@ -168,29 +174,30 @@ public void testMaximumLength() { e_package.addDependency(c_package); detector.setMaximumCycleLength(2); detector.traverseNodes(factory.getPackages().values()); - assertEquals("Nb cycles", 1, detector.getCycles().size()); + assertEquals(1, detector.getCycles().size(), "Nb cycles"); var cycles = detector.getCycles().iterator(); var cycle = cycles.next(); - assertEquals("cycle length", 2, cycle.getLength()); + assertEquals(2, cycle.getLength(), "cycle length"); var i = cycle.getPath().iterator(); - assertEquals("a", a_package, i.next()); - assertEquals("b", b_package, i.next()); + assertEquals(a_package, i.next(), "a"); + assertEquals(b_package, i.next(), "b"); } - public void testOneLength2FeatureCycle() { + @Test + void testOneLength2FeatureCycle() { a_A_a_feature.addDependency(b_B_b_feature); b_B_b_feature.addDependency(a_A_a_feature); detector.traverseNodes(factory.getPackages().values()); - assertEquals("Nb cycles", 1, detector.getCycles().size()); + assertEquals(1, detector.getCycles().size(), "Nb cycles"); var cycles = detector.getCycles().iterator(); var cycle = cycles.next(); - assertEquals("cycle length", 2, cycle.getLength()); + assertEquals(2, cycle.getLength(), "cycle length"); var i = cycle.getPath().iterator(); - assertEquals("a.A.a", a_A_a_feature, i.next()); - assertEquals("b.B.b", b_B_b_feature, i.next()); + assertEquals(a_A_a_feature, i.next(), "a.A.a"); + assertEquals(b_B_b_feature, i.next(), "b.B.b"); } } diff --git a/lib/src/test/java/com/jeantessier/dependency/TestFeatureNode.java b/lib/src/test/java/com/jeantessier/dependency/TestFeatureNode.java index 4089352d..9ca5af10 100644 --- a/lib/src/test/java/com/jeantessier/dependency/TestFeatureNode.java +++ b/lib/src/test/java/com/jeantessier/dependency/TestFeatureNode.java @@ -32,67 +32,69 @@ package com.jeantessier.dependency; -import junit.framework.*; +import org.junit.jupiter.api.*; -public class TestFeatureNode extends TestCase { - private NodeFactory factory; - private FeatureNode node; - - protected void setUp() throws Exception { - factory = new NodeFactory(); - } +import static org.junit.jupiter.api.Assertions.*; - public void testSwitchFeatureNodeFromReferencedToConcrete() { - node = factory.createFeature("a.A.a", false); +public class TestFeatureNode { + private final NodeFactory factory = new NodeFactory(); + + @Test + void testSwitchFeatureNodeFromReferencedToConcrete() { + var sut = factory.createFeature("a.A.a", false); - assertFalse("Not referenced", node.getClassNode().getPackageNode().isConfirmed()); - assertFalse("Not referenced", node.getClassNode().isConfirmed()); - assertFalse("Not referenced", node.isConfirmed()); - node.setConfirmed(true); - assertTrue("Not concrete", node.getClassNode().getPackageNode().isConfirmed()); - assertTrue("Not concrete", node.getClassNode().isConfirmed()); - assertTrue("Not concrete", node.isConfirmed()); + assertFalse(sut.getClassNode().getPackageNode().isConfirmed(), "Not referenced"); + assertFalse(sut.getClassNode().isConfirmed(), "Not referenced"); + assertFalse(sut.isConfirmed(), "Not referenced"); + sut.setConfirmed(true); + assertTrue(sut.getClassNode().getPackageNode().isConfirmed(), "Not concrete"); + assertTrue(sut.getClassNode().isConfirmed(), "Not concrete"); + assertTrue(sut.isConfirmed(), "Not concrete"); } - public void testSwitchOneFeatureNodeOutOfTwoFromReferencedToConcrete() { - node = factory.createFeature("a.A.a", false); + @Test + void testSwitchOneFeatureNodeOutOfTwoFromReferencedToConcrete() { + var sut = factory.createFeature("a.A.a", false); factory.createFeature("a.A.b", false); - assertFalse("Not referenced", node.getClassNode().getPackageNode().isConfirmed()); - assertFalse("Not referenced", node.getClassNode().isConfirmed()); - assertFalse("Not referenced", node.isConfirmed()); - node.setConfirmed(true); - assertTrue("Not concrete", node.getClassNode().getPackageNode().isConfirmed()); - assertTrue("Not concrete", node.getClassNode().isConfirmed()); - assertTrue("Not concrete", node.isConfirmed()); + assertFalse(sut.getClassNode().getPackageNode().isConfirmed(), "Not referenced"); + assertFalse(sut.getClassNode().isConfirmed(), "Not referenced"); + assertFalse(sut.isConfirmed(), "Not referenced"); + sut.setConfirmed(true); + assertTrue(sut.getClassNode().getPackageNode().isConfirmed(), "Not concrete"); + assertTrue(sut.getClassNode().isConfirmed(), "Not concrete"); + assertTrue(sut.isConfirmed(), "Not concrete"); } - public void testSwitchFeatureNodeFromConcreteToReferenced() { - node = factory.createFeature("a.A.a", true); - - assertTrue("Not concrete", node.getClassNode().getPackageNode().isConfirmed()); - assertTrue("Not concrete", node.getClassNode().isConfirmed()); - assertTrue("Not concrete", node.isConfirmed()); - node.setConfirmed(false); - assertTrue("Not concrete", node.getClassNode().getPackageNode().isConfirmed()); - assertTrue("Not concrete", node.getClassNode().isConfirmed()); - assertFalse("Not referenced", node.isConfirmed()); + @Test + void testSwitchFeatureNodeFromConcreteToReferenced() { + var sut = factory.createFeature("a.A.a", true); + + assertTrue(sut.getClassNode().getPackageNode().isConfirmed(), "Not concrete"); + assertTrue(sut.getClassNode().isConfirmed(), "Not concrete"); + assertTrue(sut.isConfirmed(), "Not concrete"); + sut.setConfirmed(false); + assertTrue(sut.getClassNode().getPackageNode().isConfirmed(), "Not concrete"); + assertTrue(sut.getClassNode().isConfirmed(), "Not concrete"); + assertFalse(sut.isConfirmed(), "Not referenced"); } - public void testSwitchOneFeatureNodeOutOfTwoFromConcreteToReferenced() { - node = factory.createFeature("a.A.a", true); + @Test + void testSwitchOneFeatureNodeOutOfTwoFromConcreteToReferenced() { + var sut = factory.createFeature("a.A.a", true); factory.createFeature("a.A.b", true); - assertTrue("Not concrete", node.getClassNode().getPackageNode().isConfirmed()); - assertTrue("Not concrete", node.getClassNode().isConfirmed()); - assertTrue("Not concrete", node.isConfirmed()); - node.setConfirmed(false); - assertTrue("Not concrete", node.getClassNode().getPackageNode().isConfirmed()); - assertTrue("Not concrete", node.getClassNode().isConfirmed()); - assertFalse("Not referenced", node.isConfirmed()); + assertTrue(sut.getClassNode().getPackageNode().isConfirmed(), "Not concrete"); + assertTrue(sut.getClassNode().isConfirmed(), "Not concrete"); + assertTrue(sut.isConfirmed(), "Not concrete"); + sut.setConfirmed(false); + assertTrue(sut.getClassNode().getPackageNode().isConfirmed(), "Not concrete"); + assertTrue(sut.getClassNode().isConfirmed(), "Not concrete"); + assertFalse(sut.isConfirmed(), "Not referenced"); } - public void testGetSimpleName_DefaultPackage() { + @Test + void testGetSimpleName_DefaultPackage() { String packageName = ""; PackageNode packageNode = new PackageNode(packageName, true); @@ -105,7 +107,8 @@ public void testGetSimpleName_DefaultPackage() { assertEquals(featureName, sut.getSimpleName()); } - public void testGetSimpleName_SomePackage() { + @Test + void testGetSimpleName_SomePackage() { String packageName = "foo"; PackageNode packageNode = new PackageNode(packageName, true); @@ -118,7 +121,8 @@ public void testGetSimpleName_SomePackage() { assertEquals(featureName, sut.getSimpleName()); } - public void testGetSimpleName_MethodWithParameterOfSameClassType() { + @Test + void testGetSimpleName_MethodWithParameterOfSameClassType() { String packageName = "foo"; PackageNode packageNode = new PackageNode(packageName, true); diff --git a/lib/src/test/java/com/jeantessier/dependency/TestGraphCopier.java b/lib/src/test/java/com/jeantessier/dependency/TestGraphCopier.java index 0f10a059..3377669b 100644 --- a/lib/src/test/java/com/jeantessier/dependency/TestGraphCopier.java +++ b/lib/src/test/java/com/jeantessier/dependency/TestGraphCopier.java @@ -32,20 +32,19 @@ package com.jeantessier.dependency; -import junit.framework.*; +import org.junit.jupiter.api.*; -public class TestGraphCopier extends TestCase { - private RegularExpressionSelectionCriteria scopeCriteria; - private RegularExpressionSelectionCriteria filterCriteria; - private NodeFactory factory; +import static org.junit.jupiter.api.Assertions.*; - private GraphCopier copier; +public class TestGraphCopier { + private final RegularExpressionSelectionCriteria scopeCriteria = new RegularExpressionSelectionCriteria("//"); + private final RegularExpressionSelectionCriteria filterCriteria = new RegularExpressionSelectionCriteria("//"); + private final NodeFactory factory = new NodeFactory(); - protected void setUp() throws Exception { - scopeCriteria = new RegularExpressionSelectionCriteria("//"); - filterCriteria = new RegularExpressionSelectionCriteria("//"); - factory = new NodeFactory(); + private final GraphCopier copier = new GraphCopier(new SelectiveTraversalStrategy(scopeCriteria, filterCriteria)); + @BeforeEach + void setUp() { Node test_class = factory.createClass("test"); Node test_main_method = factory.createFeature("test.main(String[])"); Node test_Test_method = factory.createFeature("test.Test()"); @@ -62,22 +61,15 @@ protected void setUp() throws Exception { test_main_method.addDependency(java_lang_String_class); test_main_method.addDependency(java_util_Collections_singleton_method); test_Test_method.addDependency(java_lang_Object_Object_method); - - copier = new GraphCopier(new SelectiveTraversalStrategy(scopeCriteria, filterCriteria)); } - public void testCopyFullGraph() { + @Test + void testCopyFullGraph() { copier.traverseNodes(factory.getPackages().values()); - assertEquals("Different number of packages", - factory.getPackages().size(), - copier.getScopeFactory().getPackages().size()); - assertEquals("Different number of classes", - factory.getClasses().size(), - copier.getScopeFactory().getClasses().size()); - assertEquals("Different number of features", - factory.getFeatures().size(), - copier.getScopeFactory().getFeatures().size()); + assertEquals(factory.getPackages().size(), copier.getScopeFactory().getPackages().size(), "Different number of packages"); + assertEquals(factory.getClasses().size(), copier.getScopeFactory().getClasses().size(), "Different number of classes"); + assertEquals(factory.getFeatures().size(), copier.getScopeFactory().getFeatures().size(), "Different number of features"); factory.getPackages().keySet().forEach(key -> { assertEquals(factory.getPackages().get(key), copier.getScopeFactory().getPackages().get(key)); @@ -107,22 +99,17 @@ public void testCopyFullGraph() { }); } - public void testCopyAllNodesOnly() { + @Test + void testCopyAllNodesOnly() { filterCriteria.setMatchingPackages(false); filterCriteria.setMatchingClasses(false); filterCriteria.setMatchingFeatures(false); copier.traverseNodes(factory.getPackages().values()); - assertEquals("Different number of packages", - factory.getPackages().size(), - copier.getScopeFactory().getPackages().size()); - assertEquals("Different number of classes", - factory.getClasses().size(), - copier.getScopeFactory().getClasses().size()); - assertEquals("Different number of features", - factory.getFeatures().size(), - copier.getScopeFactory().getFeatures().size()); + assertEquals(factory.getPackages().size(), copier.getScopeFactory().getPackages().size(), "Different number of packages"); + assertEquals(factory.getClasses().size(), copier.getScopeFactory().getClasses().size(), "Different number of classes"); + assertEquals(factory.getFeatures().size(), copier.getScopeFactory().getFeatures().size(), "Different number of features"); factory.getPackages().keySet().forEach(key -> { assertEquals(factory.getPackages().get(key), copier.getScopeFactory().getPackages().get(key)); @@ -146,7 +133,8 @@ public void testCopyAllNodesOnly() { }); } - public void testCopyPackageNodesOnly() { + @Test + void testCopyPackageNodesOnly() { scopeCriteria.setMatchingClasses(false); scopeCriteria.setMatchingFeatures(false); filterCriteria.setMatchingPackages(false); @@ -155,9 +143,7 @@ public void testCopyPackageNodesOnly() { copier.traverseNodes(factory.getPackages().values()); - assertEquals("Different number of packages", - factory.getPackages().size(), - copier.getScopeFactory().getPackages().size()); + assertEquals(factory.getPackages().size(), copier.getScopeFactory().getPackages().size(), "Different number of packages"); assertTrue(copier.getScopeFactory().getClasses().isEmpty()); assertTrue(copier.getScopeFactory().getFeatures().isEmpty()); @@ -169,7 +155,8 @@ public void testCopyPackageNodesOnly() { }); } - public void testCopyClassNodesOnly() { + @Test + void testCopyClassNodesOnly() { scopeCriteria.setMatchingPackages(false); scopeCriteria.setMatchingFeatures(false); filterCriteria.setMatchingPackages(false); @@ -178,12 +165,8 @@ public void testCopyClassNodesOnly() { copier.traverseNodes(factory.getPackages().values()); - assertEquals("Different number of packages", - factory.getPackages().size(), - copier.getScopeFactory().getPackages().size()); - assertEquals("Different number of classes", - factory.getClasses().size(), - copier.getScopeFactory().getClasses().size()); + assertEquals(factory.getPackages().size(), copier.getScopeFactory().getPackages().size(), "Different number of packages"); + assertEquals(factory.getClasses().size(), copier.getScopeFactory().getClasses().size(), "Different number of classes"); assertTrue(copier.getScopeFactory().getFeatures().isEmpty()); factory.getPackages().keySet().forEach(key -> { @@ -201,7 +184,8 @@ public void testCopyClassNodesOnly() { }); } - public void testCopyFeatureNodesOnly() { + @Test + void testCopyFeatureNodesOnly() { scopeCriteria.setMatchingPackages(false); scopeCriteria.setMatchingClasses(false); filterCriteria.setMatchingPackages(false); @@ -210,15 +194,9 @@ public void testCopyFeatureNodesOnly() { copier.traverseNodes(factory.getPackages().values()); - assertEquals("Different number of packages", - factory.getPackages().size(), - copier.getScopeFactory().getPackages().size()); - assertEquals("Different number of classes", - 3, - copier.getScopeFactory().getClasses().size()); - assertEquals("Different number of features", - factory.getFeatures().size(), - copier.getScopeFactory().getFeatures().size()); + assertEquals(factory.getPackages().size(), copier.getScopeFactory().getPackages().size(), "Different number of packages"); + assertEquals(3, copier.getScopeFactory().getClasses().size(), "Different number of classes"); + assertEquals(factory.getFeatures().size(), copier.getScopeFactory().getFeatures().size(), "Different number of features"); copier.getScopeFactory().getPackages().keySet().forEach(key -> { assertEquals(factory.getPackages().get(key), copier.getScopeFactory().getPackages().get(key)); @@ -242,7 +220,8 @@ public void testCopyFeatureNodesOnly() { }); } - public void testCopyNothing() { + @Test + void testCopyNothing() { scopeCriteria.setMatchingPackages(false); scopeCriteria.setMatchingClasses(false); scopeCriteria.setMatchingFeatures(false); @@ -254,7 +233,8 @@ public void testCopyNothing() { assertTrue(copier.getScopeFactory().getFeatures().isEmpty()); } - public void testC2CasP2CSamePackage() { + @Test + void testC2CasP2CSamePackage() { NodeFactory factory = new NodeFactory(); Node a_A = factory.createClass("a.A"); @@ -276,7 +256,7 @@ public void testC2CasP2CSamePackage() { copier.traverseNodes(factory.getPackages().values()); - assertTrue(copier.getScopeFactory().getPackages().keySet().toString(), copier.getScopeFactory().getPackages().containsKey("a")); + assertTrue(copier.getScopeFactory().getPackages().containsKey("a"), copier.getScopeFactory().getPackages().keySet().toString()); assertTrue(copier.getScopeFactory().getClasses().isEmpty()); assertTrue(copier.getScopeFactory().getFeatures().isEmpty()); diff --git a/lib/src/test/java/com/jeantessier/dependency/TestGraphCopierWithConfirmed.java b/lib/src/test/java/com/jeantessier/dependency/TestGraphCopierWithConfirmed.java index 31135e0e..f32a00ac 100644 --- a/lib/src/test/java/com/jeantessier/dependency/TestGraphCopierWithConfirmed.java +++ b/lib/src/test/java/com/jeantessier/dependency/TestGraphCopierWithConfirmed.java @@ -32,44 +32,29 @@ package com.jeantessier.dependency; -import junit.framework.*; - -public class TestGraphCopierWithConfirmed extends TestCase { - private NodeFactory factory; - - private Node a; - private Node a_A; - private Node a_A_a; - - private Node b; - private Node b_B; - private Node b_B_b; - - private Node c; - private Node c_C; - private Node c_C_c; - - private GraphCopier copier; - - protected void setUp() throws Exception { - factory = new NodeFactory(); - - a = factory.createPackage("a"); - a_A = factory.createClass("a.A"); - a_A_a = factory.createFeature("a.A.a"); - - b = factory.createPackage("b"); - b_B = factory.createClass("b.B"); - b_B_b = factory.createFeature("b.B.b"); - - c = factory.createPackage("c"); - c_C = factory.createClass("c.C"); - c_C_c = factory.createFeature("c.C.c"); - - copier = new GraphCopier(); - } +import org.junit.jupiter.api.*; + +import static org.junit.jupiter.api.Assertions.*; + +public class TestGraphCopierWithConfirmed { + private final NodeFactory factory = new NodeFactory(); + + private final Node a = factory.createPackage("a"); + private final Node a_A = factory.createClass("a.A"); + private final Node a_A_a = factory.createFeature("a.A.a"); + + private final Node b = factory.createPackage("b"); + private final Node b_B = factory.createClass("b.B"); + private final Node b_B_b = factory.createFeature("b.B.b"); + + private final Node c = factory.createPackage("c"); + private final Node c_C = factory.createClass("c.C"); + private final Node c_C_c = factory.createFeature("c.C.c"); + + private final GraphCopier copier = new GraphCopier(); - public void testConfirmedPackage2ConfirmedPackage() { + @Test + void testConfirmedPackage2ConfirmedPackage() { a.addDependency(b); b.addDependency(c); @@ -90,7 +75,8 @@ public void testConfirmedPackage2ConfirmedPackage() { assertNull(copier.getFilterFactory().getFeatures().get("c.C.c")); } - public void testUnconfirmedPackage2UnconfirmedPackage() { + @Test + void testUnconfirmedPackage2UnconfirmedPackage() { a.addDependency(b); b.addDependency(c); @@ -107,7 +93,8 @@ public void testUnconfirmedPackage2UnconfirmedPackage() { assertNull(copier.getFilterFactory().getFeatures().get("c.C.c")); } - public void testConfirmedClass2ConfirmedClass() { + @Test + void testConfirmedClass2ConfirmedClass() { a_A.addDependency(b_B); b_B.addDependency(c_C); @@ -128,7 +115,8 @@ public void testConfirmedClass2ConfirmedClass() { assertNull(copier.getFilterFactory().getFeatures().get("c.C.c")); } - public void testUnconfirmedClass2UnconfirmedClass() { + @Test + void testUnconfirmedClass2UnconfirmedClass() { a_A.addDependency(b_B); b_B.addDependency(c_C); @@ -145,7 +133,8 @@ public void testUnconfirmedClass2UnconfirmedClass() { assertNull(copier.getFilterFactory().getFeatures().get("c.C.c")); } - public void testConfirmedFeature2ConfirmedFeature() { + @Test + void testConfirmedFeature2ConfirmedFeature() { a_A_a.addDependency(b_B_b); b_B_b.addDependency(c_C_c); @@ -166,7 +155,8 @@ public void testConfirmedFeature2ConfirmedFeature() { assertTrue(copier.getFilterFactory().createFeature("c.C.c").isConfirmed()); } - public void testUnconfirmedFeature2UnconfirmedFeature() { + @Test + void testUnconfirmedFeature2UnconfirmedFeature() { a_A_a.addDependency(b_B_b); b_B_b.addDependency(c_C_c); @@ -183,7 +173,8 @@ public void testUnconfirmedFeature2UnconfirmedFeature() { assertFalse(copier.getFilterFactory().createFeature("c.C.c").isConfirmed()); } - public void testUnconfirmedFeatureInConfirmedClass2UnconfirmedFeature() { + @Test + void testUnconfirmedFeatureInConfirmedClass2UnconfirmedFeature() { a_A_a.addDependency(b_B_b); b_B_b.addDependency(c_C_c); diff --git a/lib/src/test/java/com/jeantessier/dependency/TestGraphCopierWithFiltering.java b/lib/src/test/java/com/jeantessier/dependency/TestGraphCopierWithFiltering.java index 5430b4b0..6b75b287 100644 --- a/lib/src/test/java/com/jeantessier/dependency/TestGraphCopierWithFiltering.java +++ b/lib/src/test/java/com/jeantessier/dependency/TestGraphCopierWithFiltering.java @@ -32,43 +32,28 @@ package com.jeantessier.dependency; +import org.junit.jupiter.api.*; + import java.util.*; -import junit.framework.*; +import static org.junit.jupiter.api.Assertions.*; -public class TestGraphCopierWithFiltering extends TestCase { - private RegularExpressionSelectionCriteria scopeCriteria; - private RegularExpressionSelectionCriteria filterCriteria; - private NodeFactory factory; +public class TestGraphCopierWithFiltering { + private final RegularExpressionSelectionCriteria scopeCriteria = new RegularExpressionSelectionCriteria(); + private final RegularExpressionSelectionCriteria filterCriteria = new RegularExpressionSelectionCriteria(); + private final NodeFactory factory = new NodeFactory(); - private Node a_A_a; - private Node b_B_b; - private Node c_C_c; - - private List includeFilter; - private List excludeFilter; + private final Node a_A_a = factory.createFeature("a.A.a"); + private final Node b_B_b = factory.createFeature("b.B.b"); + private final Node c_C_c = factory.createFeature("c.C.c"); - private GraphCopier copier; + private final List includeFilter = List.of("/^b/"); + private final List excludeFilter = List.of("/^c/"); - protected void setUp() throws Exception { - scopeCriteria = new RegularExpressionSelectionCriteria(); - filterCriteria = new RegularExpressionSelectionCriteria(); - factory = new NodeFactory(); - - a_A_a = factory.createFeature("a.A.a"); - b_B_b = factory.createFeature("b.B.b"); - c_C_c = factory.createFeature("c.C.c"); - - includeFilter = new LinkedList<>(); - includeFilter.add("/^b/"); - - excludeFilter = new LinkedList<>(); - excludeFilter.add("/^c/"); - - copier = new GraphCopier(new SelectiveTraversalStrategy(scopeCriteria, filterCriteria)); - } + private final GraphCopier copier = new GraphCopier(new SelectiveTraversalStrategy(scopeCriteria, filterCriteria)); - public void testIncludeFilterF2FtoP2P() { + @Test + void testIncludeFilterF2FtoP2P() { a_A_a.addDependency(b_B_b); a_A_a.addDependency(c_C_c); @@ -84,7 +69,8 @@ public void testIncludeFilterF2FtoP2P() { assertTrue(copier.getScopeFactory().createPackage("a").getOutboundDependencies().isEmpty()); } - public void testExcludeFilterF2FtoP2P() { + @Test + void testExcludeFilterF2FtoP2P() { a_A_a.addDependency(b_B_b); a_A_a.addDependency(c_C_c); diff --git a/lib/src/test/java/com/jeantessier/dependency/TestGraphSummarizer.java b/lib/src/test/java/com/jeantessier/dependency/TestGraphSummarizer.java index bf657c78..b2c3b799 100644 --- a/lib/src/test/java/com/jeantessier/dependency/TestGraphSummarizer.java +++ b/lib/src/test/java/com/jeantessier/dependency/TestGraphSummarizer.java @@ -32,44 +32,28 @@ package com.jeantessier.dependency; -import junit.framework.*; +import org.junit.jupiter.api.*; -public class TestGraphSummarizer extends TestCase { - private RegularExpressionSelectionCriteria scopeCriteria; - private RegularExpressionSelectionCriteria filterCriteria; - private NodeFactory factory; - - private Node a_package; - private Node a_A_class; - private Node a_A_a_method; - private Node a_B_class; - - private Node b_package; - private Node b_B_class; - private Node b_B_b_method; +import static org.junit.jupiter.api.Assertions.*; - private GraphSummarizer summarizer; - - protected void setUp() throws Exception { - super.setUp(); +public class TestGraphSummarizer { + private final RegularExpressionSelectionCriteria scopeCriteria = new RegularExpressionSelectionCriteria("//"); + private final RegularExpressionSelectionCriteria filterCriteria = new RegularExpressionSelectionCriteria("//"); + private final NodeFactory factory = new NodeFactory(); + + private final Node a_package = factory.createPackage("a"); + private final Node a_A_class = factory.createClass("a.A"); + private final Node a_A_a_method = factory.createFeature("a.A.a"); + private final Node a_B_class = factory.createClass("a.B"); - scopeCriteria = new RegularExpressionSelectionCriteria("//"); - filterCriteria = new RegularExpressionSelectionCriteria("//"); - factory = new NodeFactory(); + private final Node b_package = factory.createPackage("b"); + private final Node b_B_class = factory.createClass("b.B"); + private final Node b_B_b_method = factory.createFeature("b.B.b"); - a_package = factory.createPackage("a"); - a_A_class = factory.createClass("a.A"); - a_A_a_method = factory.createFeature("a.A.a"); - a_B_class = factory.createClass("a.B"); - - b_package = factory.createPackage("b"); - b_B_class = factory.createClass("b.B"); - b_B_b_method = factory.createFeature("b.B.b"); - - summarizer = new GraphSummarizer(scopeCriteria, filterCriteria); - } + private final GraphSummarizer summarizer = new GraphSummarizer(scopeCriteria, filterCriteria); - public void testP2PasP2P() { + @Test + void testP2PasP2P() { a_package.addDependency(b_package); scopeCriteria.setMatchingClasses(false); @@ -79,10 +63,10 @@ public void testP2PasP2P() { summarizer.traverseNodes(factory.getPackages().values()); - assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().containsKey("a")); - assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().containsKey("b")); - assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().isEmpty()); - assertTrue(summarizer.getScopeFactory().getFeatures().keySet().toString(), summarizer.getScopeFactory().getFeatures().isEmpty()); + assertTrue(summarizer.getScopeFactory().getPackages().containsKey("a"), summarizer.getScopeFactory().getPackages().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getPackages().containsKey("b"), summarizer.getScopeFactory().getPackages().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getClasses().isEmpty(), summarizer.getScopeFactory().getClasses().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getFeatures().isEmpty(), summarizer.getScopeFactory().getFeatures().keySet().toString()); assertEquals(0, summarizer.getScopeFactory().createPackage("a").getInboundDependencies().size()); assertEquals(1, summarizer.getScopeFactory().createPackage("a").getOutboundDependencies().size()); @@ -92,7 +76,8 @@ public void testP2PasP2P() { assertEquals(0, summarizer.getScopeFactory().createPackage("b").getOutboundDependencies().size()); } - public void testP2PasC2C() { + @Test + void testP2PasC2C() { a_package.addDependency(b_package); scopeCriteria.setMatchingPackages(false); @@ -102,11 +87,11 @@ public void testP2PasC2C() { summarizer.traverseNodes(factory.getPackages().values()); - assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().containsKey("a")); - assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().containsKey("b")); - assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().containsKey("a.A")); - assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().containsKey("b.B")); - assertTrue(summarizer.getScopeFactory().getFeatures().keySet().toString(), summarizer.getScopeFactory().getFeatures().isEmpty()); + assertTrue(summarizer.getScopeFactory().getPackages().containsKey("a"), summarizer.getScopeFactory().getPackages().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getPackages().containsKey("b"), summarizer.getScopeFactory().getPackages().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getClasses().containsKey("a.A"), summarizer.getScopeFactory().getClasses().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getClasses().containsKey("b.B"), summarizer.getScopeFactory().getClasses().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getFeatures().isEmpty(), summarizer.getScopeFactory().getFeatures().keySet().toString()); assertEquals(0, summarizer.getScopeFactory().createPackage("a").getInboundDependencies().size()); assertEquals(0, summarizer.getScopeFactory().createPackage("a").getOutboundDependencies().size()); @@ -119,7 +104,8 @@ public void testP2PasC2C() { assertEquals(0, summarizer.getScopeFactory().createClass("b.B").getOutboundDependencies().size()); } - public void testP2PasF2F() { + @Test + void testP2PasF2F() { a_package.addDependency(b_package); scopeCriteria.setMatchingPackages(false); @@ -129,12 +115,12 @@ public void testP2PasF2F() { summarizer.traverseNodes(factory.getPackages().values()); - assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().containsKey("a")); - assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().containsKey("b")); - assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().containsKey("a.A")); - assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().containsKey("b.B")); - assertTrue(summarizer.getScopeFactory().getFeatures().keySet().toString(), summarizer.getScopeFactory().getFeatures().containsKey("a.A.a")); - assertTrue(summarizer.getScopeFactory().getFeatures().keySet().toString(), summarizer.getScopeFactory().getFeatures().containsKey("b.B.b")); + assertTrue(summarizer.getScopeFactory().getPackages().containsKey("a"), summarizer.getScopeFactory().getPackages().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getPackages().containsKey("b"), summarizer.getScopeFactory().getPackages().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getClasses().containsKey("a.A"), summarizer.getScopeFactory().getClasses().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getClasses().containsKey("b.B"), summarizer.getScopeFactory().getClasses().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getFeatures().containsKey("a.A.a"), summarizer.getScopeFactory().getFeatures().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getFeatures().containsKey("b.B.b"), summarizer.getScopeFactory().getFeatures().keySet().toString()); assertEquals(0, summarizer.getScopeFactory().createPackage("a").getInboundDependencies().size()); assertEquals(0, summarizer.getScopeFactory().createPackage("a").getOutboundDependencies().size()); @@ -152,7 +138,8 @@ public void testP2PasF2F() { assertEquals(0, summarizer.getScopeFactory().createFeature("b.B.b").getOutboundDependencies().size()); } - public void testC2CasP2P() { + @Test + void testC2CasP2P() { a_A_class.addDependency(b_B_class); scopeCriteria.setMatchingClasses(false); @@ -162,10 +149,10 @@ public void testC2CasP2P() { summarizer.traverseNodes(factory.getPackages().values()); - assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().containsKey("a")); - assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().containsKey("b")); - assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().isEmpty()); - assertTrue(summarizer.getScopeFactory().getFeatures().keySet().toString(), summarizer.getScopeFactory().getFeatures().isEmpty()); + assertTrue(summarizer.getScopeFactory().getPackages().containsKey("a"), summarizer.getScopeFactory().getPackages().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getPackages().containsKey("b"), summarizer.getScopeFactory().getPackages().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getClasses().isEmpty(), summarizer.getScopeFactory().getClasses().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getFeatures().isEmpty(), summarizer.getScopeFactory().getFeatures().keySet().toString()); assertEquals(0, summarizer.getScopeFactory().createPackage("a").getInboundDependencies().size()); assertEquals(1, summarizer.getScopeFactory().createPackage("a").getOutboundDependencies().size()); @@ -175,7 +162,8 @@ public void testC2CasP2P() { assertEquals(0, summarizer.getScopeFactory().createPackage("b").getOutboundDependencies().size()); } - public void testC2CasP2CSamePackage() { + @Test + void testC2CasP2CSamePackage() { a_A_class.addDependency(a_B_class); scopeCriteria.setMatchingClasses(false); @@ -185,10 +173,10 @@ public void testC2CasP2CSamePackage() { summarizer.traverseNodes(factory.getPackages().values()); - assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().containsKey("a")); - assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().containsKey("b")); - assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().isEmpty()); - assertTrue(summarizer.getScopeFactory().getFeatures().keySet().toString(), summarizer.getScopeFactory().getFeatures().isEmpty()); + assertTrue(summarizer.getScopeFactory().getPackages().containsKey("a"), summarizer.getScopeFactory().getPackages().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getPackages().containsKey("b"), summarizer.getScopeFactory().getPackages().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getClasses().isEmpty(), summarizer.getScopeFactory().getClasses().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getFeatures().isEmpty(), summarizer.getScopeFactory().getFeatures().keySet().toString()); assertEquals(0, summarizer.getScopeFactory().createPackage("a").getInboundDependencies().size()); assertEquals(0, summarizer.getScopeFactory().createPackage("a").getOutboundDependencies().size()); @@ -196,7 +184,8 @@ public void testC2CasP2CSamePackage() { assertEquals(0, summarizer.getScopeFactory().createPackage("b").getOutboundDependencies().size()); } - public void testC2CasC2C() { + @Test + void testC2CasC2C() { a_A_class.addDependency(b_B_class); scopeCriteria.setMatchingPackages(false); @@ -206,11 +195,11 @@ public void testC2CasC2C() { summarizer.traverseNodes(factory.getPackages().values()); - assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().containsKey("a")); - assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().containsKey("b")); - assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().containsKey("a.A")); - assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().containsKey("b.B")); - assertTrue(summarizer.getScopeFactory().getFeatures().keySet().toString(), summarizer.getScopeFactory().getFeatures().isEmpty()); + assertTrue(summarizer.getScopeFactory().getPackages().containsKey("a"), summarizer.getScopeFactory().getPackages().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getPackages().containsKey("b"), summarizer.getScopeFactory().getPackages().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getClasses().containsKey("a.A"), summarizer.getScopeFactory().getClasses().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getClasses().containsKey("b.B"), summarizer.getScopeFactory().getClasses().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getFeatures().isEmpty(), summarizer.getScopeFactory().getFeatures().keySet().toString()); assertEquals(0, summarizer.getScopeFactory().createPackage("a").getInboundDependencies().size()); assertEquals(0, summarizer.getScopeFactory().createPackage("a").getOutboundDependencies().size()); @@ -225,7 +214,8 @@ public void testC2CasC2C() { assertEquals(0, summarizer.getScopeFactory().createClass("b.B").getOutboundDependencies().size()); } - public void testC2CasF2F() { + @Test + void testC2CasF2F() { a_A_class.addDependency(b_B_class); scopeCriteria.setMatchingPackages(false); @@ -235,12 +225,12 @@ public void testC2CasF2F() { summarizer.traverseNodes(factory.getPackages().values()); - assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().containsKey("a")); - assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().containsKey("b")); - assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().containsKey("a.A")); - assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().containsKey("b.B")); - assertTrue(summarizer.getScopeFactory().getFeatures().keySet().toString(), summarizer.getScopeFactory().getFeatures().containsKey("a.A.a")); - assertTrue(summarizer.getScopeFactory().getFeatures().keySet().toString(), summarizer.getScopeFactory().getFeatures().containsKey("b.B.b")); + assertTrue(summarizer.getScopeFactory().getPackages().containsKey("a"), summarizer.getScopeFactory().getPackages().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getPackages().containsKey("b"), summarizer.getScopeFactory().getPackages().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getClasses().containsKey("a.A"), summarizer.getScopeFactory().getClasses().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getClasses().containsKey("b.B"), summarizer.getScopeFactory().getClasses().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getFeatures().containsKey("a.A.a"), summarizer.getScopeFactory().getFeatures().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getFeatures().containsKey("b.B.b"), summarizer.getScopeFactory().getFeatures().keySet().toString()); assertEquals(0, summarizer.getScopeFactory().createPackage("a").getInboundDependencies().size()); assertEquals(0, summarizer.getScopeFactory().createPackage("a").getOutboundDependencies().size()); @@ -258,7 +248,8 @@ public void testC2CasF2F() { assertEquals(0, summarizer.getScopeFactory().createFeature("b.B.b").getOutboundDependencies().size()); } - public void testF2FasP2P() { + @Test + void testF2FasP2P() { a_A_a_method.addDependency(b_B_b_method); scopeCriteria.setMatchingClasses(false); @@ -268,10 +259,10 @@ public void testF2FasP2P() { summarizer.traverseNodes(factory.getPackages().values()); - assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().containsKey("a")); - assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().containsKey("b")); - assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().isEmpty()); - assertTrue(summarizer.getScopeFactory().getFeatures().keySet().toString(), summarizer.getScopeFactory().getFeatures().isEmpty()); + assertTrue(summarizer.getScopeFactory().getPackages().containsKey("a"), summarizer.getScopeFactory().getPackages().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getPackages().containsKey("b"), summarizer.getScopeFactory().getPackages().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getClasses().isEmpty(), summarizer.getScopeFactory().getClasses().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getFeatures().isEmpty(), summarizer.getScopeFactory().getFeatures().keySet().toString()); assertEquals(0, summarizer.getScopeFactory().createPackage("a").getInboundDependencies().size()); assertEquals(1, summarizer.getScopeFactory().createPackage("a").getOutboundDependencies().size()); @@ -281,7 +272,8 @@ public void testF2FasP2P() { assertEquals(0, summarizer.getScopeFactory().createPackage("b").getOutboundDependencies().size()); } - public void testF2FasC2C() { + @Test + void testF2FasC2C() { a_A_a_method.addDependency(b_B_b_method); scopeCriteria.setMatchingPackages(false); @@ -291,11 +283,11 @@ public void testF2FasC2C() { summarizer.traverseNodes(factory.getPackages().values()); - assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().containsKey("a")); - assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().containsKey("b")); - assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().containsKey("a.A")); - assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().containsKey("b.B")); - assertTrue(summarizer.getScopeFactory().getFeatures().keySet().toString(), summarizer.getScopeFactory().getFeatures().isEmpty()); + assertTrue(summarizer.getScopeFactory().getPackages().containsKey("a"), summarizer.getScopeFactory().getPackages().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getPackages().containsKey("b"), summarizer.getScopeFactory().getPackages().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getClasses().containsKey("a.A"), summarizer.getScopeFactory().getClasses().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getClasses().containsKey("b.B"), summarizer.getScopeFactory().getClasses().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getFeatures().isEmpty(), summarizer.getScopeFactory().getFeatures().keySet().toString()); assertEquals(0, summarizer.getScopeFactory().createPackage("a").getInboundDependencies().size()); assertEquals(0, summarizer.getScopeFactory().createPackage("a").getOutboundDependencies().size()); @@ -310,7 +302,8 @@ public void testF2FasC2C() { assertEquals(0, summarizer.getScopeFactory().createClass("b.B").getOutboundDependencies().size()); } - public void testF2FasF2F() { + @Test + void testF2FasF2F() { a_A_a_method.addDependency(b_B_b_method); scopeCriteria.setMatchingPackages(false); @@ -320,12 +313,12 @@ public void testF2FasF2F() { summarizer.traverseNodes(factory.getPackages().values()); - assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().containsKey("a")); - assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().containsKey("b")); - assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().containsKey("a.A")); - assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().containsKey("b.B")); - assertTrue(summarizer.getScopeFactory().getFeatures().keySet().toString(), summarizer.getScopeFactory().getFeatures().containsKey("a.A.a")); - assertTrue(summarizer.getScopeFactory().getFeatures().keySet().toString(), summarizer.getScopeFactory().getFeatures().containsKey("b.B.b")); + assertTrue(summarizer.getScopeFactory().getPackages().containsKey("a"), summarizer.getScopeFactory().getPackages().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getPackages().containsKey("b"), summarizer.getScopeFactory().getPackages().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getClasses().containsKey("a.A"), summarizer.getScopeFactory().getClasses().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getClasses().containsKey("b.B"), summarizer.getScopeFactory().getClasses().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getFeatures().containsKey("a.A.a"), summarizer.getScopeFactory().getFeatures().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getFeatures().containsKey("b.B.b"), summarizer.getScopeFactory().getFeatures().keySet().toString()); assertEquals(0, summarizer.getScopeFactory().createPackage("a").getInboundDependencies().size()); assertEquals(0, summarizer.getScopeFactory().createPackage("a").getOutboundDependencies().size()); @@ -345,7 +338,8 @@ public void testF2FasF2F() { assertEquals(0, summarizer.getScopeFactory().createFeature("b.B.b").getOutboundDependencies().size()); } - public void testF2CasP2P() { + @Test + void testF2CasP2P() { a_A_a_method.addDependency(b_B_class); scopeCriteria.setMatchingClasses(false); @@ -355,10 +349,10 @@ public void testF2CasP2P() { summarizer.traverseNodes(factory.getPackages().values()); - assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().containsKey("a")); - assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().containsKey("b")); - assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().isEmpty()); - assertTrue(summarizer.getScopeFactory().getFeatures().keySet().toString(), summarizer.getScopeFactory().getFeatures().isEmpty()); + assertTrue(summarizer.getScopeFactory().getPackages().containsKey("a"), summarizer.getScopeFactory().getPackages().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getPackages().containsKey("b"), summarizer.getScopeFactory().getPackages().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getClasses().isEmpty(), summarizer.getScopeFactory().getClasses().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getFeatures().isEmpty(), summarizer.getScopeFactory().getFeatures().keySet().toString()); assertEquals(0, summarizer.getScopeFactory().createPackage("a").getInboundDependencies().size()); assertEquals(1, summarizer.getScopeFactory().createPackage("a").getOutboundDependencies().size()); @@ -368,7 +362,8 @@ public void testF2CasP2P() { assertEquals(0, summarizer.getScopeFactory().createPackage("b").getOutboundDependencies().size()); } - public void testF2CasC2C() { + @Test + void testF2CasC2C() { a_A_a_method.addDependency(b_B_class); scopeCriteria.setMatchingPackages(false); @@ -378,11 +373,11 @@ public void testF2CasC2C() { summarizer.traverseNodes(factory.getPackages().values()); - assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().containsKey("a")); - assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().containsKey("b")); - assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().containsKey("a.A")); - assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().containsKey("b.B")); - assertTrue(summarizer.getScopeFactory().getFeatures().keySet().toString(), summarizer.getScopeFactory().getFeatures().isEmpty()); + assertTrue(summarizer.getScopeFactory().getPackages().containsKey("a"), summarizer.getScopeFactory().getPackages().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getPackages().containsKey("b"), summarizer.getScopeFactory().getPackages().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getClasses().containsKey("a.A"), summarizer.getScopeFactory().getClasses().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getClasses().containsKey("b.B"), summarizer.getScopeFactory().getClasses().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getFeatures().isEmpty(), summarizer.getScopeFactory().getFeatures().keySet().toString()); assertEquals(0, summarizer.getScopeFactory().createPackage("a").getInboundDependencies().size()); assertEquals(0, summarizer.getScopeFactory().createPackage("a").getOutboundDependencies().size()); @@ -397,7 +392,8 @@ public void testF2CasC2C() { assertEquals(0, summarizer.getScopeFactory().createClass("b.B").getOutboundDependencies().size()); } - public void testF2CasF2F() { + @Test + void testF2CasF2F() { a_A_a_method.addDependency(b_B_class); scopeCriteria.setMatchingPackages(false); @@ -407,12 +403,12 @@ public void testF2CasF2F() { summarizer.traverseNodes(factory.getPackages().values()); - assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().containsKey("a")); - assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().containsKey("b")); - assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().containsKey("a.A")); - assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().containsKey("b.B")); - assertTrue(summarizer.getScopeFactory().getFeatures().keySet().toString(), summarizer.getScopeFactory().getFeatures().containsKey("a.A.a")); - assertTrue(summarizer.getScopeFactory().getFeatures().keySet().toString(), summarizer.getScopeFactory().getFeatures().containsKey("b.B.b")); + assertTrue(summarizer.getScopeFactory().getPackages().containsKey("a"), summarizer.getScopeFactory().getPackages().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getPackages().containsKey("b"), summarizer.getScopeFactory().getPackages().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getClasses().containsKey("a.A"), summarizer.getScopeFactory().getClasses().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getClasses().containsKey("b.B"), summarizer.getScopeFactory().getClasses().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getFeatures().containsKey("a.A.a"), summarizer.getScopeFactory().getFeatures().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getFeatures().containsKey("b.B.b"), summarizer.getScopeFactory().getFeatures().keySet().toString()); assertEquals(0, summarizer.getScopeFactory().createPackage("a").getInboundDependencies().size()); assertEquals(0, summarizer.getScopeFactory().createPackage("a").getOutboundDependencies().size()); @@ -430,17 +426,18 @@ public void testF2CasF2F() { assertEquals(0, summarizer.getScopeFactory().createFeature("b").getOutboundDependencies().size()); } - public void testF2FasPCF2PCF() { + @Test + void testF2FasPCF2PCF() { a_A_a_method.addDependency(b_B_b_method); summarizer.traverseNodes(factory.getPackages().values()); - assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().containsKey("a")); - assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().containsKey("b")); - assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().containsKey("a.A")); - assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().containsKey("b.B")); - assertTrue(summarizer.getScopeFactory().getFeatures().keySet().toString(), summarizer.getScopeFactory().getFeatures().containsKey("a.A.a")); - assertTrue(summarizer.getScopeFactory().getFeatures().keySet().toString(), summarizer.getScopeFactory().getFeatures().containsKey("b.B.b")); + assertTrue(summarizer.getScopeFactory().getPackages().containsKey("a"), summarizer.getScopeFactory().getPackages().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getPackages().containsKey("b"), summarizer.getScopeFactory().getPackages().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getClasses().containsKey("a.A"), summarizer.getScopeFactory().getClasses().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getClasses().containsKey("b.B"), summarizer.getScopeFactory().getClasses().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getFeatures().containsKey("a.A.a"), summarizer.getScopeFactory().getFeatures().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getFeatures().containsKey("b.B.b"), summarizer.getScopeFactory().getFeatures().keySet().toString()); assertEquals(0, summarizer.getScopeFactory().createPackage("a").getInboundDependencies().size()); assertEquals(0, summarizer.getScopeFactory().createPackage("a").getOutboundDependencies().size()); @@ -460,17 +457,18 @@ public void testF2FasPCF2PCF() { assertEquals(0, summarizer.getScopeFactory().createFeature("b.B.b").getOutboundDependencies().size()); } - public void testC2CasPCF2PCF() { + @Test + void testC2CasPCF2PCF() { a_A_class.addDependency(b_B_class); summarizer.traverseNodes(factory.getPackages().values()); - assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().containsKey("a")); - assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().containsKey("b")); - assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().containsKey("a.A")); - assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().containsKey("b.B")); - assertTrue(summarizer.getScopeFactory().getFeatures().keySet().toString(), summarizer.getScopeFactory().getFeatures().containsKey("a.A.a")); - assertTrue(summarizer.getScopeFactory().getFeatures().keySet().toString(), summarizer.getScopeFactory().getFeatures().containsKey("b.B.b")); + assertTrue(summarizer.getScopeFactory().getPackages().containsKey("a"), summarizer.getScopeFactory().getPackages().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getPackages().containsKey("b"), summarizer.getScopeFactory().getPackages().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getClasses().containsKey("a.A"), summarizer.getScopeFactory().getClasses().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getClasses().containsKey("b.B"), summarizer.getScopeFactory().getClasses().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getFeatures().containsKey("a.A.a"), summarizer.getScopeFactory().getFeatures().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getFeatures().containsKey("b.B.b"), summarizer.getScopeFactory().getFeatures().keySet().toString()); assertEquals(0, summarizer.getScopeFactory().createPackage("a").getInboundDependencies().size()); assertEquals(0, summarizer.getScopeFactory().createPackage("a").getOutboundDependencies().size()); @@ -490,17 +488,18 @@ public void testC2CasPCF2PCF() { assertEquals(0, summarizer.getScopeFactory().createFeature("b.B.b").getOutboundDependencies().size()); } - public void testP2PasPCF2PCF() { + @Test + void testP2PasPCF2PCF() { a_package.addDependency(b_package); summarizer.traverseNodes(factory.getPackages().values()); - assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().containsKey("a")); - assertTrue(summarizer.getScopeFactory().getPackages().keySet().toString(), summarizer.getScopeFactory().getPackages().containsKey("b")); - assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().containsKey("a.A")); - assertTrue(summarizer.getScopeFactory().getClasses().keySet().toString(), summarizer.getScopeFactory().getClasses().containsKey("b.B")); - assertTrue(summarizer.getScopeFactory().getFeatures().keySet().toString(), summarizer.getScopeFactory().getFeatures().containsKey("a.A.a")); - assertTrue(summarizer.getScopeFactory().getFeatures().keySet().toString(), summarizer.getScopeFactory().getFeatures().containsKey("b.B.b")); + assertTrue(summarizer.getScopeFactory().getPackages().containsKey("a"), summarizer.getScopeFactory().getPackages().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getPackages().containsKey("b"), summarizer.getScopeFactory().getPackages().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getClasses().containsKey("a.A"), summarizer.getScopeFactory().getClasses().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getClasses().containsKey("b.B"), summarizer.getScopeFactory().getClasses().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getFeatures().containsKey("a.A.a"), summarizer.getScopeFactory().getFeatures().keySet().toString()); + assertTrue(summarizer.getScopeFactory().getFeatures().containsKey("b.B.b"), summarizer.getScopeFactory().getFeatures().keySet().toString()); assertEquals(0, summarizer.getScopeFactory().createPackage("a").getInboundDependencies().size()); assertEquals(1, summarizer.getScopeFactory().createPackage("a").getOutboundDependencies().size()); diff --git a/lib/src/test/java/com/jeantessier/dependency/TestGraphSummarizerWithConfirmed.java b/lib/src/test/java/com/jeantessier/dependency/TestGraphSummarizerWithConfirmed.java index a820e719..a422bfac 100644 --- a/lib/src/test/java/com/jeantessier/dependency/TestGraphSummarizerWithConfirmed.java +++ b/lib/src/test/java/com/jeantessier/dependency/TestGraphSummarizerWithConfirmed.java @@ -32,48 +32,31 @@ package com.jeantessier.dependency; -import junit.framework.*; +import org.junit.jupiter.api.*; -public class TestGraphSummarizerWithConfirmed extends TestCase { - private NodeFactory factory; +import static org.junit.jupiter.api.Assertions.*; + +public class TestGraphSummarizerWithConfirmed { + private final NodeFactory factory = new NodeFactory(); - private Node a; - private Node a_A; - private Node a_A_a; + private final Node a = factory.createPackage("a"); + private final Node a_A = factory.createClass("a.A"); + private final Node a_A_a = factory.createFeature("a.A.a"); - private Node b; - private Node b_B; - private Node b_B_b; + private final Node b = factory.createPackage("b"); + private final Node b_B = factory.createClass("b.B"); + private final Node b_B_b = factory.createFeature("b.B.b"); - private Node c; - private Node c_C; - private Node c_C_c; - - private CollectionSelectionCriteria scopeSelector; - private CollectionSelectionCriteria filterSelector; - private GraphSummarizer summarizer; - - protected void setUp() throws Exception { - factory = new NodeFactory(); - - a = factory.createPackage("a"); - a_A = factory.createClass("a.A"); - a_A_a = factory.createFeature("a.A.a"); - - b = factory.createPackage("b"); - b_B = factory.createClass("b.B"); - b_B_b = factory.createFeature("b.B.b"); - - c = factory.createPackage("c"); - c_C = factory.createClass("c.C"); - c_C_c = factory.createFeature("c.C.c"); + private final Node c = factory.createPackage("c"); + private final Node c_C = factory.createClass("c.C"); + private final Node c_C_c = factory.createFeature("c.C.c"); - scopeSelector = new CollectionSelectionCriteria(null, null); - filterSelector = new CollectionSelectionCriteria(null, null); - summarizer = new GraphSummarizer(scopeSelector, filterSelector); - } + private final CollectionSelectionCriteria scopeSelector = new CollectionSelectionCriteria(null, null); + private final CollectionSelectionCriteria filterSelector = new CollectionSelectionCriteria(null, null); + private final GraphSummarizer summarizer = new GraphSummarizer(scopeSelector, filterSelector); - public void testConfirmedPackage2ConfirmedPackage() { + @Test + void testConfirmedPackage2ConfirmedPackage() { a.addDependency(b); b.addDependency(c); @@ -94,7 +77,8 @@ public void testConfirmedPackage2ConfirmedPackage() { assertNull(summarizer.getFilterFactory().getFeatures().get("c.C.c")); } - public void testUnconfirmedPackage2UnconfirmedPackage() { + @Test + void testUnconfirmedPackage2UnconfirmedPackage() { a.addDependency(b); b.addDependency(c); @@ -111,7 +95,8 @@ public void testUnconfirmedPackage2UnconfirmedPackage() { assertNull(summarizer.getFilterFactory().getFeatures().get("c.C.c")); } - public void testConfirmedClass2ConfirmedClass() { + @Test + void testConfirmedClass2ConfirmedClass() { a_A.addDependency(b_B); b_B.addDependency(c_C); @@ -132,7 +117,8 @@ public void testConfirmedClass2ConfirmedClass() { assertNull(summarizer.getFilterFactory().getFeatures().get("c.C.c")); } - public void testUnconfirmedClass2UnconfirmedClass() { + @Test + void testUnconfirmedClass2UnconfirmedClass() { a_A.addDependency(b_B); b_B.addDependency(c_C); @@ -149,7 +135,8 @@ public void testUnconfirmedClass2UnconfirmedClass() { assertNull(summarizer.getFilterFactory().getFeatures().get("c.C.c")); } - public void testConfirmedPackage2ConfirmedPackageFromClasses() { + @Test + void testConfirmedPackage2ConfirmedPackageFromClasses() { scopeSelector.setMatchingPackages(true); scopeSelector.setMatchingClasses(false); scopeSelector.setMatchingFeatures(false); @@ -177,7 +164,8 @@ public void testConfirmedPackage2ConfirmedPackageFromClasses() { assertNull(summarizer.getFilterFactory().getFeatures().get("c.C.c")); } - public void testUnconfirmedPackage2UnconfirmedPackageFromClasses() { + @Test + void testUnconfirmedPackage2UnconfirmedPackageFromClasses() { scopeSelector.setMatchingPackages(true); scopeSelector.setMatchingClasses(false); scopeSelector.setMatchingFeatures(false); @@ -201,7 +189,8 @@ public void testUnconfirmedPackage2UnconfirmedPackageFromClasses() { assertNull(summarizer.getFilterFactory().getFeatures().get("c.C.c")); } - public void testConfirmedFeature2ConfirmedFeature() { + @Test + void testConfirmedFeature2ConfirmedFeature() { a_A_a.addDependency(b_B_b); b_B_b.addDependency(c_C_c); @@ -222,7 +211,8 @@ public void testConfirmedFeature2ConfirmedFeature() { assertTrue(summarizer.getFilterFactory().createFeature("c.C.c").isConfirmed()); } - public void testUnconfirmedFeature2UnconfirmedFeature() { + @Test + void testUnconfirmedFeature2UnconfirmedFeature() { a_A_a.addDependency(b_B_b); b_B_b.addDependency(c_C_c); @@ -239,7 +229,8 @@ public void testUnconfirmedFeature2UnconfirmedFeature() { assertFalse(summarizer.getFilterFactory().createFeature("c.C.c").isConfirmed()); } - public void testConfirmedClass2ConfirmedClassFromFeature() { + @Test + void testConfirmedClass2ConfirmedClassFromFeature() { scopeSelector.setMatchingPackages(false); scopeSelector.setMatchingClasses(true); scopeSelector.setMatchingFeatures(false); @@ -267,7 +258,8 @@ public void testConfirmedClass2ConfirmedClassFromFeature() { assertNull(summarizer.getFilterFactory().getFeatures().get("c.C.c")); } - public void testUnconfirmedClass2UnconfirmedClassFromFeature() { + @Test + void testUnconfirmedClass2UnconfirmedClassFromFeature() { scopeSelector.setMatchingPackages(false); scopeSelector.setMatchingClasses(true); scopeSelector.setMatchingFeatures(false); @@ -291,7 +283,8 @@ public void testUnconfirmedClass2UnconfirmedClassFromFeature() { assertNull(summarizer.getFilterFactory().getFeatures().get("c.C.c")); } - public void testConfirmedPackage2ConfirmedPackageFromFeature() { + @Test + void testConfirmedPackage2ConfirmedPackageFromFeature() { scopeSelector.setMatchingPackages(true); scopeSelector.setMatchingClasses(false); scopeSelector.setMatchingFeatures(false); @@ -319,7 +312,8 @@ public void testConfirmedPackage2ConfirmedPackageFromFeature() { assertNull(summarizer.getFilterFactory().getFeatures().get("c.C.c")); } - public void testUnconfirmedPackage2UnconfirmedPackageFromFeature() { + @Test + void testUnconfirmedPackage2UnconfirmedPackageFromFeature() { scopeSelector.setMatchingPackages(true); scopeSelector.setMatchingClasses(false); scopeSelector.setMatchingFeatures(false); @@ -343,7 +337,8 @@ public void testUnconfirmedPackage2UnconfirmedPackageFromFeature() { assertNull(summarizer.getFilterFactory().getFeatures().get("c.C.c")); } - public void testUnconfirmedFeatureInConfirmedClass2UnconfirmedFeature() { + @Test + void testUnconfirmedFeatureInConfirmedClass2UnconfirmedFeature() { scopeSelector.setMatchingPackages(false); scopeSelector.setMatchingClasses(false); scopeSelector.setMatchingFeatures(true); diff --git a/lib/src/test/java/com/jeantessier/dependency/TestGraphSummarizerWithFiltering.java b/lib/src/test/java/com/jeantessier/dependency/TestGraphSummarizerWithFiltering.java index 65058fb3..9f6f0dec 100644 --- a/lib/src/test/java/com/jeantessier/dependency/TestGraphSummarizerWithFiltering.java +++ b/lib/src/test/java/com/jeantessier/dependency/TestGraphSummarizerWithFiltering.java @@ -32,49 +32,30 @@ package com.jeantessier.dependency; +import org.junit.jupiter.api.*; + import java.util.*; -import junit.framework.*; +import static org.junit.jupiter.api.Assertions.*; -public class TestGraphSummarizerWithFiltering extends TestCase { - private RegularExpressionSelectionCriteria scopeCriteria; - private RegularExpressionSelectionCriteria filterCriteria; - private NodeFactory factory; +public class TestGraphSummarizerWithFiltering { + private final RegularExpressionSelectionCriteria scopeCriteria = new RegularExpressionSelectionCriteria("//"); + private final RegularExpressionSelectionCriteria filterCriteria = new RegularExpressionSelectionCriteria("//"); + private final NodeFactory factory = new NodeFactory(); - private Node a_A_a; - private Node b; - private Node b_B_b; - private Node c_C_c; - - private List includeScope; - private List includeFilter; - private List excludeFilter; - - private GraphCopier copier; - - protected void setUp() throws Exception { - scopeCriteria = new RegularExpressionSelectionCriteria("//"); - filterCriteria = new RegularExpressionSelectionCriteria("//"); - factory = new NodeFactory(); + private final Node a_A_a = factory.createFeature("a.A.a"); + private final Node b = factory.createPackage("b"); + private final Node b_B_b = factory.createFeature("b.B.b"); + private final Node c_C_c = factory.createFeature("c.C.c"); - a_A_a = factory.createFeature("a.A.a"); - b = factory.createPackage("b"); - b_B_b = factory.createFeature("b.B.b"); - c_C_c = factory.createFeature("c.C.c"); - - includeScope = new LinkedList<>(); - includeScope.add("/^a/"); - - includeFilter = new LinkedList<>(); - includeFilter.add("/^b/"); - - excludeFilter = new LinkedList<>(); - excludeFilter.add("/^c/"); + private final List includeScope = List.of("/^a/"); + private final List includeFilter = List.of("/^b/"); + private final List excludeFilter = List.of("/^c/"); - copier = new GraphSummarizer(scopeCriteria, filterCriteria); - } + private final GraphCopier copier = new GraphSummarizer(scopeCriteria, filterCriteria); - public void testIncludeFilterF2FtoP2P() { + @Test + void testIncludeFilterF2FtoP2P() { a_A_a.addDependency(b_B_b); a_A_a.addDependency(c_C_c); @@ -87,13 +68,12 @@ public void testIncludeFilterF2FtoP2P() { copier.traverseNodes(factory.getPackages().values()); assertTrue(copier.getScopeFactory().createPackage("a").getInboundDependencies().isEmpty()); - assertEquals(copier.getScopeFactory().createPackage("a").getOutboundDependencies().toString(), - 1, - copier.getScopeFactory().createPackage("a").getOutboundDependencies().size()); + assertEquals(1, copier.getScopeFactory().createPackage("a").getOutboundDependencies().size(), copier.getScopeFactory().createPackage("a").getOutboundDependencies().toString()); assertTrue(copier.getScopeFactory().createPackage("a").getOutboundDependencies().contains(b)); } - public void testExcludeFilterF2FtoP2P() { + @Test + void testExcludeFilterF2FtoP2P() { a_A_a.addDependency(b_B_b); a_A_a.addDependency(c_C_c); @@ -104,14 +84,12 @@ public void testExcludeFilterF2FtoP2P() { filterCriteria.setMatchingFeatures(false); filterCriteria.setGlobalExcludes(excludeFilter); - assertTrue(!filterCriteria.matchesFeatureName(c_C_c.getName())); + assertFalse(filterCriteria.matchesFeatureName(c_C_c.getName())); copier.traverseNodes(factory.getPackages().values()); assertTrue(copier.getScopeFactory().createPackage("a").getInboundDependencies().isEmpty()); - assertEquals(copier.getScopeFactory().createPackage("a").getOutboundDependencies().toString(), - 1, - copier.getScopeFactory().createPackage("a").getOutboundDependencies().size()); + assertEquals(1, copier.getScopeFactory().createPackage("a").getOutboundDependencies().size(), copier.getScopeFactory().createPackage("a").getOutboundDependencies().toString()); assertTrue(copier.getScopeFactory().createPackage("a").getOutboundDependencies().contains(b)); } } diff --git a/lib/src/test/java/com/jeantessier/dependency/TestGraphSummarizerWithScoping.java b/lib/src/test/java/com/jeantessier/dependency/TestGraphSummarizerWithScoping.java index c27a03bb..fb1fc724 100644 --- a/lib/src/test/java/com/jeantessier/dependency/TestGraphSummarizerWithScoping.java +++ b/lib/src/test/java/com/jeantessier/dependency/TestGraphSummarizerWithScoping.java @@ -32,20 +32,21 @@ package com.jeantessier.dependency; +import org.junit.jupiter.api.*; + import java.util.*; -import junit.framework.*; +import static org.junit.jupiter.api.Assertions.*; -public class TestGraphSummarizerWithScoping extends TestCase { - private NodeFactory factory; +public class TestGraphSummarizerWithScoping { + private final NodeFactory factory = new NodeFactory(); private Node b; private GraphSummarizer summarizer; - protected void setUp() throws Exception { - factory = new NodeFactory(); - + @BeforeEach + void setUp() { Node a_A_a = factory.createFeature("a.A.a"); Node a_A_b = factory.createFeature("a.A.b"); @@ -55,29 +56,24 @@ protected void setUp() throws Exception { a_A_a.addDependency(a_A_b); a_A_a.addDependency(b_B_b); - List includeScope = new LinkedList<>(); - includeScope.add("/^a/"); - - RegularExpressionSelectionCriteria scopeCriteria = new RegularExpressionSelectionCriteria("//"); - + var scopeCriteria = new RegularExpressionSelectionCriteria("//"); scopeCriteria.setMatchingClasses(false); scopeCriteria.setMatchingFeatures(false); - scopeCriteria.setGlobalIncludes(includeScope); + scopeCriteria.setGlobalIncludes(List.of("/^a/")); - RegularExpressionSelectionCriteria filterCriteria = new RegularExpressionSelectionCriteria("//"); + var filterCriteria = new RegularExpressionSelectionCriteria("//"); filterCriteria.setMatchingClasses(false); filterCriteria.setMatchingFeatures(false); summarizer = new GraphSummarizer(scopeCriteria, filterCriteria); } - public void testIncludeF2F() { + @Test + void testIncludeF2F() { summarizer.traverseNodes(factory.getPackages().values()); assertTrue(summarizer.getScopeFactory().createPackage("a").getInboundDependencies().isEmpty()); - assertEquals(summarizer.getScopeFactory().createPackage("a").getOutboundDependencies().toString(), - 1, - summarizer.getScopeFactory().createPackage("a").getOutboundDependencies().size()); + assertEquals(1, summarizer.getScopeFactory().createPackage("a").getOutboundDependencies().size(), summarizer.getScopeFactory().createPackage("a").getOutboundDependencies().toString()); assertTrue(summarizer.getScopeFactory().createPackage("a").getOutboundDependencies().contains(b)); } } diff --git a/lib/src/test/java/com/jeantessier/dependency/TestHTMLCyclePrinter.java b/lib/src/test/java/com/jeantessier/dependency/TestHTMLCyclePrinter.java index f920d402..5d260a67 100644 --- a/lib/src/test/java/com/jeantessier/dependency/TestHTMLCyclePrinter.java +++ b/lib/src/test/java/com/jeantessier/dependency/TestHTMLCyclePrinter.java @@ -32,69 +32,58 @@ package com.jeantessier.dependency; +import org.junit.jupiter.api.*; + import java.io.*; import java.util.*; +import java.util.stream.*; -public class TestHTMLCyclePrinter extends TestHTMLPrinterBase { - private HTMLCyclePrinter visitor; - - private Node a_package; - private Node b_package; - private Node c_package; - - protected void setUp() throws Exception { - super.setUp(); +import static org.junit.jupiter.api.Assertions.*; - visitor = new HTMLCyclePrinter(new PrintWriter(out), FORMAT); +public class TestHTMLCyclePrinter extends TestHTMLPrinterBase { + private final HTMLCyclePrinter visitor = new HTMLCyclePrinter(new PrintWriter(writer), FORMAT); - a_package = factory.createPackage("a"); - b_package = factory.createPackage("b"); - c_package = factory.createPackage("c"); - } + private final Node a_package = factory.createPackage("a"); + private final Node b_package = factory.createPackage("b"); + private final Node c_package = factory.createPackage("c"); - public void testEmptyCycles() throws IOException { + @Test + void testEmptyCycles() { visitor.visitCycles(Collections.emptyList()); - var in = new BufferedReader(new StringReader(out.toString())); + var expectedLines = Stream.empty(); - assertEquals("End of file", null, in.readLine()); + assertLinesMatch(expectedLines, writer.toString().lines()); } - public void test2NodesCycle() throws IOException { - List nodes = new ArrayList<>(); - nodes.add(a_package); - nodes.add(b_package); - Cycle cycle = new Cycle(nodes); + @Test + void test2NodesCycle() { + var cycle = new Cycle(List.of(a_package, b_package)); visitor.visitCycles(Collections.singletonList(cycle)); - var lineNumber = 0; - var in = new BufferedReader(new StringReader(out.toString())); + var expectedLines = Stream.of( + "a", + " --> b", + " --> a" + ); - assertEquals("line " + ++lineNumber, "a", in.readLine()); - assertEquals("line " + ++lineNumber, " --> b", in.readLine()); - assertEquals("line " + ++lineNumber, " --> a", in.readLine()); - - assertEquals("End of file", null, in.readLine()); + assertLinesMatch(expectedLines, writer.toString().lines()); } - public void test3NodesCycle() throws IOException { - List nodes = new ArrayList<>(); - nodes.add(a_package); - nodes.add(b_package); - nodes.add(c_package); - Cycle cycle = new Cycle(nodes); + @Test + void test3NodesCycle() { + var cycle = new Cycle(List.of(a_package, b_package, c_package)); visitor.visitCycles(Collections.singletonList(cycle)); - var lineNumber = 0; - var in = new BufferedReader(new StringReader(out.toString())); - - assertEquals("line " + ++lineNumber, "a", in.readLine()); - assertEquals("line " + ++lineNumber, " --> b", in.readLine()); - assertEquals("line " + ++lineNumber, " --> c", in.readLine()); - assertEquals("line " + ++lineNumber, " --> a", in.readLine()); + var expectedLines = Stream.of( + "a", + " --> b", + " --> c", + " --> a" + ); - assertEquals("End of file", null, in.readLine()); + assertLinesMatch(expectedLines, writer.toString().lines()); } } diff --git a/lib/src/test/java/com/jeantessier/dependency/TestHTMLPrinterBase.java b/lib/src/test/java/com/jeantessier/dependency/TestHTMLPrinterBase.java index 59fa7ad5..228e76a0 100644 --- a/lib/src/test/java/com/jeantessier/dependency/TestHTMLPrinterBase.java +++ b/lib/src/test/java/com/jeantessier/dependency/TestHTMLPrinterBase.java @@ -32,23 +32,13 @@ package com.jeantessier.dependency; -import java.text.*; import java.io.*; -import junit.framework.*; - -public abstract class TestHTMLPrinterBase extends TestCase { +public abstract class TestHTMLPrinterBase { protected static final String PREFIX = "prefix ("; protected static final String SUFFIX = ") suffix"; protected static final String FORMAT = PREFIX + "%s" + SUFFIX; - protected NodeFactory factory; - protected StringWriter out; - - protected void setUp() throws Exception { - super.setUp(); - - factory = new NodeFactory(); - out = new StringWriter(); - } + protected NodeFactory factory = new NodeFactory(); + protected StringWriter writer = new StringWriter(); } diff --git a/lib/src/test/java/com/jeantessier/dependency/TestHTMLPrinterEscapeMetaCharacters.java b/lib/src/test/java/com/jeantessier/dependency/TestHTMLPrinterEscapeMetaCharacters.java index b73a127d..4a1a78e7 100644 --- a/lib/src/test/java/com/jeantessier/dependency/TestHTMLPrinterEscapeMetaCharacters.java +++ b/lib/src/test/java/com/jeantessier/dependency/TestHTMLPrinterEscapeMetaCharacters.java @@ -33,12 +33,14 @@ package com.jeantessier.dependency; import java.io.*; +import java.util.regex.*; -import org.apache.oro.text.perl.*; +import org.junit.jupiter.api.*; + +import static org.junit.jupiter.api.Assertions.*; public class TestHTMLPrinterEscapeMetaCharacters extends TestHTMLPrinterBase { private HTMLPrinter visitor; - private Perl5Util perl; private PackageNode fooPackage; private ClassNode fooClass; @@ -47,18 +49,17 @@ public class TestHTMLPrinterEscapeMetaCharacters extends TestHTMLPrinterBase { private ClassNode barClass; private FeatureNode barFeature; - protected void setUp() throws Exception { - super.setUp(); - - SelectionCriteria scopeCriteria = new RegularExpressionSelectionCriteria("/foo/"); - SelectionCriteria filterCriteria = new RegularExpressionSelectionCriteria("/bar/"); - SelectiveTraversalStrategy strategy = new SelectiveTraversalStrategy(scopeCriteria, filterCriteria); + @BeforeEach + void setUp() throws Exception { + var scopeCriteria = new RegularExpressionSelectionCriteria("/foo/"); + var filterCriteria = new RegularExpressionSelectionCriteria("/bar/"); + var strategy = new SelectiveTraversalStrategy(scopeCriteria, filterCriteria); - visitor = new HTMLPrinter(strategy, new PrintWriter(out), FORMAT); - perl = new Perl5Util(); + visitor = new HTMLPrinter(strategy, new PrintWriter(writer), FORMAT); } - public void testEscapeOpeningParenthesisInScope() throws Exception { + @Test + void testEscapeOpeningParenthesisInScope() { setupGraph("("); visitor.traverseNodes(factory.getPackages().values()); @@ -68,7 +69,8 @@ public void testEscapeOpeningParenthesisInScope() throws Exception { assertScopeLine(" ", "foo\\(.Foo\\(.foo\\(", fooFeature.getName(), "foo("); } - public void testEscapeOpeningParenthesisInInboundFilter() throws Exception { + @Test + void testEscapeOpeningParenthesisInInboundFilter() { setupGraph("("); setupInboundDependencies(); @@ -79,7 +81,8 @@ public void testEscapeOpeningParenthesisInInboundFilter() throws Exception { assertInboundLine(" ", "bar\\(.Bar\\(.bar\\(", fooFeature.getName(), barFeature.getName()); } - public void testEscapeOpeningParenthesisInOutboundFilter() throws Exception { + @Test + void testEscapeOpeningParenthesisInOutboundFilter() { setupGraph("("); setupOutboundDependencies(); @@ -90,7 +93,8 @@ public void testEscapeOpeningParenthesisInOutboundFilter() throws Exception { assertOutboundLine(" ", "bar\\(.Bar\\(.bar\\(", fooFeature.getName(), barFeature.getName()); } - public void testEscapeClosingParenthesisInScope() throws Exception { + @Test + void testEscapeClosingParenthesisInScope() { setupGraph(")"); visitor.traverseNodes(factory.getPackages().values()); @@ -100,7 +104,8 @@ public void testEscapeClosingParenthesisInScope() throws Exception { assertScopeLine(" ", "foo\\).Foo\\).foo\\)", fooFeature.getName(), "foo)"); } - public void testEscapeClosingParenthesisInInboundFilter() throws Exception { + @Test + void testEscapeClosingParenthesisInInboundFilter() { setupGraph(")"); setupInboundDependencies(); @@ -111,7 +116,8 @@ public void testEscapeClosingParenthesisInInboundFilter() throws Exception { assertInboundLine(" ", "bar\\).Bar\\).bar\\)", fooFeature.getName(), barFeature.getName()); } - public void testEscapeClosingParenthesisInOutboundFilter() throws Exception { + @Test + void testEscapeClosingParenthesisInOutboundFilter() { setupGraph(")"); setupOutboundDependencies(); @@ -122,7 +128,8 @@ public void testEscapeClosingParenthesisInOutboundFilter() throws Exception { assertOutboundLine(" ", "bar\\).Bar\\).bar\\)", fooFeature.getName(), barFeature.getName()); } - public void testEscapeDollarSignInScope() throws Exception { + @Test + void testEscapeDollarSignInScope() { setupGraph("$"); visitor.traverseNodes(factory.getPackages().values()); @@ -132,7 +139,8 @@ public void testEscapeDollarSignInScope() throws Exception { assertScopeLine(" ", "foo\\$.Foo\\$.foo\\$", fooFeature.getName(), "foo$"); } - public void testEscapeDollarSignInInboundFilter() throws Exception { + @Test + void testEscapeDollarSignInInboundFilter() { setupGraph("$"); setupInboundDependencies(); @@ -143,7 +151,8 @@ public void testEscapeDollarSignInInboundFilter() throws Exception { assertInboundLine(" ", "bar\\$.Bar\\$.bar\\$", fooFeature.getName(), barFeature.getName()); } - public void testEscapeDollarSignInOutboundFilter() throws Exception { + @Test + void testEscapeDollarSignInOutboundFilter() { setupGraph("$"); setupOutboundDependencies(); @@ -154,7 +163,8 @@ public void testEscapeDollarSignInOutboundFilter() throws Exception { assertOutboundLine(" ", "bar\\$.Bar\\$.bar\\$", fooFeature.getName(), barFeature.getName()); } - public void testEscapeOpeningSquareBracketInScope() throws Exception { + @Test + void testEscapeOpeningSquareBracketInScope() { setupGraph("["); visitor.traverseNodes(factory.getPackages().values()); @@ -164,7 +174,8 @@ public void testEscapeOpeningSquareBracketInScope() throws Exception { assertScopeLine(" ", "foo\\[.Foo\\[.foo\\[", fooFeature.getName(), "foo["); } - public void testEscapeOpeningSquareBracketInInboundFilter() throws Exception { + @Test + void testEscapeOpeningSquareBracketInInboundFilter() { setupGraph("["); setupInboundDependencies(); @@ -175,7 +186,8 @@ public void testEscapeOpeningSquareBracketInInboundFilter() throws Exception { assertInboundLine(" ", "bar\\[.Bar\\[.bar\\[", fooFeature.getName(), barFeature.getName()); } - public void testEscapeOpeningSquareBracketInOutboundFilter() throws Exception { + @Test + void testEscapeOpeningSquareBracketInOutboundFilter() { setupGraph("["); setupOutboundDependencies(); @@ -186,7 +198,8 @@ public void testEscapeOpeningSquareBracketInOutboundFilter() throws Exception { assertOutboundLine(" ", "bar\\[.Bar\\[.bar\\[", fooFeature.getName(), barFeature.getName()); } - public void testEscapeClosingSquareBracketInScope() throws Exception { + @Test + void testEscapeClosingSquareBracketInScope() { setupGraph("]"); visitor.traverseNodes(factory.getPackages().values()); @@ -196,7 +209,8 @@ public void testEscapeClosingSquareBracketInScope() throws Exception { assertScopeLine(" ", "foo\\].Foo\\].foo\\]", fooFeature.getName(), "foo]"); } - public void testEscapeClosingSquareBracketInInboundFilter() throws Exception { + @Test + void testEscapeClosingSquareBracketInInboundFilter() { setupGraph("]"); setupInboundDependencies(); @@ -207,7 +221,8 @@ public void testEscapeClosingSquareBracketInInboundFilter() throws Exception { assertInboundLine(" ", "bar\\].Bar\\].bar\\]", fooFeature.getName(), barFeature.getName()); } - public void testEscapeClosingSquareBracketInOutboundFilter() throws Exception { + @Test + void testEscapeClosingSquareBracketInOutboundFilter() { setupGraph("]"); setupOutboundDependencies(); @@ -239,43 +254,43 @@ private void setupOutboundDependencies() { fooFeature.addDependency(barFeature); } - private void assertScopeLine(String indent, String escapedName, String fullName, String tagContents) throws IOException { - try (var in = new BufferedReader(new StringReader(out.toString()))) { - String line; - boolean found = false; - while ((line = in.readLine()) != null) { - if (perl.match("/^" + indent + "(.*)<\\/a>/", line)) { - assertEquals(line, PREFIX + escapedName + SUFFIX, perl.group(1)); - assertEquals(line, fullName, perl.group(2)); - assertEquals(line, tagContents, perl.group(3)); - found = true; - } - } - assertTrue("Missing " + fullName, found); - } + private void assertScopeLine(String indent, String escapedName, String fullName, String tagContents) { + var regex = Pattern.compile("^" + indent + "(.*)"); + + assertTrue( + writer.toString().lines() + .map(regex::matcher) + .filter(Matcher::find) + .anyMatch(matcher -> { + assertEquals(PREFIX + escapedName + SUFFIX, matcher.group(1)); + assertEquals(fullName, matcher.group(2)); + assertEquals(tagContents, matcher.group(3)); + return true; + }) + ); } - private void assertInboundLine(String indent, String escapedName, String fullScopeName, String fullDependencyName) throws IOException { + private void assertInboundLine(String indent, String escapedName, String fullScopeName, String fullDependencyName) { assertDependencyLine(indent, escapedName, fullScopeName + "_from_" + fullDependencyName, fullDependencyName, "<--"); } - private void assertOutboundLine(String indent, String escapedName, String fullScopeName, String fullDependencyName) throws IOException { + private void assertOutboundLine(String indent, String escapedName, String fullScopeName, String fullDependencyName) { assertDependencyLine(indent, escapedName, fullScopeName + "_to_" + fullDependencyName, fullDependencyName, "-->"); } - private void assertDependencyLine(String indent, String escapedName, String fullName, String tagContents, String marker) throws IOException { - try (var in = new BufferedReader(new StringReader(out.toString()))) { - String line; - boolean found = false; - while ((line = in.readLine()) != null) { - if (perl.match("/^" + indent + marker + " (.*)<\\/a>/", line)) { - assertEquals(line, PREFIX + escapedName + SUFFIX, perl.group(1)); - assertEquals(line, fullName, perl.group(2)); - assertEquals(line, tagContents, perl.group(3)); - found = true; - } - } - assertTrue("Missing " + fullName, found); - } + private void assertDependencyLine(String indent, String escapedName, String fullName, String tagContents, String marker) { + var regex = Pattern.compile("^" + indent + marker + " (.*)"); + + assertTrue( + writer.toString().lines() + .map(regex::matcher) + .filter(Matcher::find) + .anyMatch(matcher -> { + assertEquals(PREFIX + escapedName + SUFFIX, matcher.group(1)); + assertEquals(fullName, matcher.group(2)); + assertEquals(tagContents, matcher.group(3)); + return true; + }) + ); } } diff --git a/lib/src/test/java/com/jeantessier/dependency/TestNode.java b/lib/src/test/java/com/jeantessier/dependency/TestNode.java index 5fdc34e8..3262ef7b 100644 --- a/lib/src/test/java/com/jeantessier/dependency/TestNode.java +++ b/lib/src/test/java/com/jeantessier/dependency/TestNode.java @@ -32,11 +32,13 @@ package com.jeantessier.dependency; +import org.junit.jupiter.api.*; + import java.util.*; -import junit.framework.*; +import static org.junit.jupiter.api.Assertions.*; -public class TestNode extends TestCase { +public class TestNode { private Node a; private Node a_A; private Node a_A_a; @@ -49,8 +51,9 @@ public class TestNode extends TestCase { private Node b_B; private Node b_B_b; - protected void setUp() throws Exception { - NodeFactory factory = new NodeFactory(); + @BeforeEach + void setUp() { + var factory = new NodeFactory(); a = factory.createPackage("a"); a_A = factory.createClass("a.A"); @@ -65,7 +68,8 @@ protected void setUp() throws Exception { b_B_b = factory.createFeature("b.B.b"); } - public void testPackageCanAddDependency() { + @Test + void testPackageCanAddDependency() { assertFalse(a.canAddDependencyTo(a)); assertTrue(a.canAddDependencyTo(a_A)); assertTrue(a.canAddDependencyTo(a_A_a)); @@ -79,7 +83,8 @@ public void testPackageCanAddDependency() { assertTrue(a.canAddDependencyTo(b_B_b)); } - public void testClassCanAddDependency() { + @Test + void testClassCanAddDependency() { assertFalse(a_A.canAddDependencyTo(a)); assertFalse(a_A.canAddDependencyTo(a_A)); assertTrue(a_A.canAddDependencyTo(a_A_a)); @@ -93,7 +98,8 @@ public void testClassCanAddDependency() { assertTrue(a_A.canAddDependencyTo(b_B_b)); } - public void testFeatureCanAddDependency() { + @Test + void testFeatureCanAddDependency() { assertFalse(a_A_a.canAddDependencyTo(a)); assertFalse(a_A_a.canAddDependencyTo(a_A)); assertFalse(a_A_a.canAddDependencyTo(a_A_a)); @@ -107,48 +113,49 @@ public void testFeatureCanAddDependency() { assertTrue(a_A_a.canAddDependencyTo(b_B_b)); } - public void testRemoveOneDependency() { + @Test + void testRemoveOneDependency() { a_A_a.addDependency(b_B_b); - assertTrue("Missing a.A.a --> b.B.b", a_A_a.getOutboundDependencies().contains(b_B_b)); - assertTrue("Missing b.B.b <-- a.A.a", b_B_b.getInboundDependencies().contains(a_A_a)); + assertTrue(a_A_a.getOutboundDependencies().contains(b_B_b), "Missing a.A.a --> b.B.b"); + assertTrue(b_B_b.getInboundDependencies().contains(a_A_a), "Missing b.B.b <-- a.A.a"); a_A_a.removeDependency(b_B_b); - assertFalse("Did not remove a.A.a --> b.B.b", a_A_a.getOutboundDependencies().contains(b_B_b)); - assertFalse("Did not remove b.B.b <-- a.A.a", b_B_b.getInboundDependencies().contains(a_A_a)); + assertFalse(a_A_a.getOutboundDependencies().contains(b_B_b), "Did not remove a.A.a --> b.B.b"); + assertFalse(b_B_b.getInboundDependencies().contains(a_A_a), "Did not remove b.B.b <-- a.A.a"); } - public void testRemoveOneDependencyButNotAnother() { + @Test + void testRemoveOneDependencyButNotAnother() { a_A_a.addDependency(a_A_b); - assertTrue("Missing a.A.a --> a.A.b", a_A_a.getOutboundDependencies().contains(a_A_b)); - assertTrue("Missing a.A.b <-- a.A.a", a_A_b.getInboundDependencies().contains(a_A_a)); + assertTrue(a_A_a.getOutboundDependencies().contains(a_A_b), "Missing a.A.a --> a.A.b"); + assertTrue(a_A_b.getInboundDependencies().contains(a_A_a), "Missing a.A.b <-- a.A.a"); a_A_a.addDependency(b_B_b); - assertTrue("Missing a.A.a --> b.B.b", a_A_a.getOutboundDependencies().contains(b_B_b)); - assertTrue("Missing b.B.b <-- a.A.a", b_B_b.getInboundDependencies().contains(a_A_a)); + assertTrue(a_A_a.getOutboundDependencies().contains(b_B_b), "Missing a.A.a --> b.B.b"); + assertTrue(b_B_b.getInboundDependencies().contains(a_A_a), "Missing b.B.b <-- a.A.a"); a_A_a.removeDependency(b_B_b); - assertTrue("Missing a.A.a --> a.A.b", a_A_a.getOutboundDependencies().contains(a_A_b)); - assertTrue("Missing a.A.b <-- a.A.a", a_A_b.getInboundDependencies().contains(a_A_a)); - assertFalse("Did not remove a.A.a --> b.B.b", a_A_a.getOutboundDependencies().contains(b_B_b)); - assertFalse("Did not remove b.B.b <-- a.A.a", b_B_b.getInboundDependencies().contains(a_A_a)); + assertTrue(a_A_a.getOutboundDependencies().contains(a_A_b), "Missing a.A.a --> a.A.b"); + assertTrue(a_A_b.getInboundDependencies().contains(a_A_a), "Missing a.A.b <-- a.A.a"); + assertFalse(a_A_a.getOutboundDependencies().contains(b_B_b), "Did not remove a.A.a --> b.B.b"); + assertFalse(b_B_b.getInboundDependencies().contains(a_A_a), "Did not remove b.B.b <-- a.A.a"); } - public void testRemoveDependencies() { + @Test + void testRemoveDependencies() { a_A_a.addDependency(a_A_b); a_A_a.addDependency(b_B_b); - assertTrue("Missing a.A.a --> a.A.b", a_A_a.getOutboundDependencies().contains(a_A_b)); - assertTrue("Missing a.A.b <-- a.A.a", a_A_b.getInboundDependencies().contains(a_A_a)); - assertTrue("Missing a.A.a --> b.B.b", a_A_a.getOutboundDependencies().contains(b_B_b)); - assertTrue("Missing b.B.b <-- a.A.a", b_B_b.getInboundDependencies().contains(a_A_a)); - - Collection dependencies = new ArrayList<>(); - dependencies.add(a_A_b); - dependencies.add(b_B_b); + assertTrue(a_A_a.getOutboundDependencies().contains(a_A_b), "Missing a.A.a --> a.A.b"); + assertTrue(a_A_b.getInboundDependencies().contains(a_A_a), "Missing a.A.b <-- a.A.a"); + assertTrue(a_A_a.getOutboundDependencies().contains(b_B_b), "Missing a.A.a --> b.B.b"); + assertTrue(b_B_b.getInboundDependencies().contains(a_A_a), "Missing b.B.b <-- a.A.a"); + + var dependencies = List.of(a_A_b, b_B_b); a_A_a.removeDependencies(dependencies); - assertFalse("Did not remove a.A.a --> a.A.b", a_A_a.getOutboundDependencies().contains(a_A_b)); - assertFalse("Did not remove a.A.b <-- a.A.a", a_A_b.getInboundDependencies().contains(a_A_a)); - assertFalse("Did not remove a.A.a --> b.B.b", a_A_a.getOutboundDependencies().contains(b_B_b)); - assertFalse("Did not remove b.B.b <-- a.A.a", b_B_b.getInboundDependencies().contains(a_A_a)); + assertFalse(a_A_a.getOutboundDependencies().contains(a_A_b), "Did not remove a.A.a --> a.A.b"); + assertFalse(a_A_b.getInboundDependencies().contains(a_A_a), "Did not remove a.A.b <-- a.A.a"); + assertFalse(a_A_a.getOutboundDependencies().contains(b_B_b), "Did not remove a.A.a --> b.B.b"); + assertFalse(b_B_b.getInboundDependencies().contains(a_A_a), "Did not remove b.B.b <-- a.A.a"); } } diff --git a/lib/src/test/java/com/jeantessier/dependency/TestPackageNode.java b/lib/src/test/java/com/jeantessier/dependency/TestPackageNode.java index 1da87317..304443f6 100644 --- a/lib/src/test/java/com/jeantessier/dependency/TestPackageNode.java +++ b/lib/src/test/java/com/jeantessier/dependency/TestPackageNode.java @@ -32,62 +32,64 @@ package com.jeantessier.dependency; -import junit.framework.*; +import org.junit.jupiter.api.*; -public class TestPackageNode extends TestCase { - private NodeFactory factory; - private PackageNode node; - - protected void setUp() throws Exception { - factory = new NodeFactory(); - } +import static org.junit.jupiter.api.Assertions.*; + +public class TestPackageNode { + private final NodeFactory factory = new NodeFactory(); - public void testSwitchPackageNodeFromReferencedToConcrete() { - node = factory.createPackage("a", false); + @Test + void testSwitchPackageNodeFromReferencedToConcrete() { + var sut = factory.createPackage("a", false); - assertFalse("Not referenced", node.isConfirmed()); - node.setConfirmed(true); - assertTrue("Not concrete", node.isConfirmed()); + assertFalse(sut.isConfirmed(), "Not referenced"); + sut.setConfirmed(true); + assertTrue(sut.isConfirmed(), "Not concrete"); } - public void testMakingPackageNodeConcreteDoesNotChangeItsClasses() { - node = factory.createPackage("a", false); + @Test + void testMakingPackageNodeConcreteDoesNotChangeItsClasses() { + var sut = factory.createPackage("a", false); factory.createClass("a.A", false); - assertFalse("Not referenced", node.isConfirmed()); - assertFalse("Not referenced", node.getClasses().iterator().next().isConfirmed()); - node.setConfirmed(true); - assertTrue("Not concrete", node.isConfirmed()); - assertFalse("Not referenced", node.getClasses().iterator().next().isConfirmed()); + assertFalse(sut.isConfirmed(), "Not referenced"); + assertFalse(sut.getClasses().iterator().next().isConfirmed(), "Not referenced"); + sut.setConfirmed(true); + assertTrue(sut.isConfirmed(), "Not concrete"); + assertFalse(sut.getClasses().iterator().next().isConfirmed(), "Not referenced"); } - public void testSwitchEmptyPackageNodeFromConcreteToReferenced() { - node = factory.createPackage("a", true); + @Test + void testSwitchEmptyPackageNodeFromConcreteToReferenced() { + var sut = factory.createPackage("a", true); - assertTrue("Not concrete", node.isConfirmed()); - node.setConfirmed(false); - assertFalse("Concrete", node.isConfirmed()); + assertTrue(sut.isConfirmed(), "Not concrete"); + sut.setConfirmed(false); + assertFalse(sut.isConfirmed(), "Concrete"); } - public void testSwitchPackageNodeWithConcreteClassFromConcreteToReferenced() { - node = factory.createPackage("a", true); + @Test + void testSwitchPackageNodeWithConcreteClassFromConcreteToReferenced() { + var sut = factory.createPackage("a", true); factory.createClass("a.A", true); - assertTrue("Not concrete", node.isConfirmed()); - assertTrue("Not concrete", node.getClasses().iterator().next().isConfirmed()); - node.setConfirmed(false); - assertTrue("Not concrete", node.isConfirmed()); - assertTrue("Not concrete", node.getClasses().iterator().next().isConfirmed()); + assertTrue(sut.isConfirmed(), "Not concrete"); + assertTrue(sut.getClasses().iterator().next().isConfirmed(), "Not concrete"); + sut.setConfirmed(false); + assertTrue(sut.isConfirmed(), "Not concrete"); + assertTrue(sut.getClasses().iterator().next().isConfirmed(), "Not concrete"); } - public void testSwitchPackageNodeWithReferencedClassFromConcreteToReferenced() { - node = factory.createPackage("a", true); + @Test + void testSwitchPackageNodeWithReferencedClassFromConcreteToReferenced() { + var sut = factory.createPackage("a", true); factory.createClass("a.A", false); - assertTrue("Not concrete", node.isConfirmed()); - assertFalse("Not referenced", node.getClasses().iterator().next().isConfirmed()); - node.setConfirmed(false); - assertFalse("Not referenced", node.isConfirmed()); - assertFalse("Not referenced", node.getClasses().iterator().next().isConfirmed()); + assertTrue(sut.isConfirmed(), "Not concrete"); + assertFalse(sut.getClasses().iterator().next().isConfirmed(), "Not referenced"); + sut.setConfirmed(false); + assertFalse(sut.isConfirmed(), "Not referenced"); + assertFalse(sut.getClasses().iterator().next().isConfirmed(), "Not referenced"); } } diff --git a/lib/src/test/java/com/jeantessier/dependency/TestTextCyclePrinter.java b/lib/src/test/java/com/jeantessier/dependency/TestTextCyclePrinter.java index 1c384e1a..706b3031 100644 --- a/lib/src/test/java/com/jeantessier/dependency/TestTextCyclePrinter.java +++ b/lib/src/test/java/com/jeantessier/dependency/TestTextCyclePrinter.java @@ -32,172 +32,142 @@ package com.jeantessier.dependency; +import org.junit.jupiter.api.*; + import java.util.*; import java.io.*; +import java.util.stream.*; -import junit.framework.*; - -public class TestTextCyclePrinter extends TestCase { - private Node a_package; - private Node b_package; - private Node c_package; +import static org.junit.jupiter.api.Assertions.*; - protected void setUp() throws Exception { - super.setUp(); +public class TestTextCyclePrinter { + private final NodeFactory factory = new NodeFactory(); - var factory = new NodeFactory(); + private final Node a_package = factory.createPackage("a"); + private final Node b_package = factory.createPackage("b"); + private final Node c_package = factory.createPackage("c"); - a_package = factory.createPackage("a"); - b_package = factory.createPackage("b"); - c_package = factory.createPackage("c"); - } + @Test + void testVisitCycleWith2NodeCycle() { + var cycle = new Cycle(List.of(a_package, b_package)); - public void testVisitCycleWith2NodeCycle() { - List nodes = new ArrayList<>(); - nodes.add(a_package); - nodes.add(b_package); - Cycle cycle = new Cycle(nodes); - - var expected = new StringWriter(); - try (var pw = new PrintWriter(expected)) { - pw.println(a_package); - pw.println(" --> " + b_package); - pw.println(" --> " + a_package); - } + var expected = Stream.of( + "" + a_package, + " --> " + b_package, + " --> " + a_package + ); - var buffer = new StringWriter(); - try (var out = new PrintWriter(buffer)) { + var writer = new StringWriter(); + try (var out = new PrintWriter(writer)) { var printer = new TextCyclePrinter(out); printer.visitCycle(cycle); } - assertEquals(expected.toString(), buffer.toString()); + assertLinesMatch(expected, writer.toString().lines()); } - public void testVisitCycleWith2NodeCycleWithIndentText() { - List nodes = new ArrayList<>(); - nodes.add(a_package); - nodes.add(b_package); - Cycle cycle = new Cycle(nodes); - - var expected = new StringWriter(); - try (var pw = new PrintWriter(expected)) { - pw.println(a_package); - pw.println("*--> " + b_package); - pw.println("**--> " + a_package); - } + @Test + void testVisitCycleWith2NodeCycleWithIndentText() { + var cycle = new Cycle(List.of(a_package, b_package)); + + var expected = Stream.of( + "" + a_package, + "*--> " + b_package, + "**--> " + a_package + ); - var buffer = new StringWriter(); - try (var out = new PrintWriter(buffer)) { + var writer = new StringWriter(); + try (var out = new PrintWriter(writer)) { var printer = new TextCyclePrinter(out); printer.setIndentText("*"); printer.visitCycle(cycle); } - assertEquals(expected.toString(), buffer.toString()); + assertLinesMatch(expected, writer.toString().lines()); } - public void testVisitCycleWith3NodeCycle() { - List nodes = new ArrayList<>(); - nodes.add(a_package); - nodes.add(b_package); - nodes.add(c_package); - Cycle cycle = new Cycle(nodes); - - var expected = new StringWriter(); - try (var pw = new PrintWriter(expected)) { - pw.println(a_package); - pw.println(" --> " + b_package); - pw.println(" --> " + c_package); - pw.println(" --> " + a_package); - } + @Test + void testVisitCycleWith3NodeCycle() { + var cycle = new Cycle(List.of(a_package, b_package, c_package)); - var buffer = new StringWriter(); - try (var out = new PrintWriter(buffer)) { + var expected = Stream.of( + "" + a_package, + " --> " + b_package, + " --> " + c_package, + " --> " + a_package + ); + + var writer = new StringWriter(); + try (var out = new PrintWriter(writer)) { var printer = new TextCyclePrinter(out); printer.visitCycle(cycle); } - assertEquals(expected.toString(), buffer.toString()); + assertLinesMatch(expected, writer.toString().lines()); } - public void testVisitCyclesWith2NodeCycle() { - List nodes = new ArrayList<>(); - nodes.add(a_package); - nodes.add(b_package); - Cycle cycle = new Cycle(nodes); - - var expected = new StringWriter(); - try (var pw = new PrintWriter(expected)) { - pw.println(a_package); - pw.println(" --> " + b_package); - pw.println(" --> " + a_package); - } + @Test + void testVisitCyclesWith2NodeCycle() { + var cycle = new Cycle(List.of(a_package, b_package)); - var buffer = new StringWriter(); - try (var out = new PrintWriter(buffer)) { + var expected = Stream.of( + "" + a_package, + " --> " + b_package, + " --> " + a_package + ); + + var writer = new StringWriter(); + try (var out = new PrintWriter(writer)) { var printer = new TextCyclePrinter(out); printer.visitCycles(Collections.singletonList(cycle)); } - assertEquals(expected.toString(), buffer.toString()); + assertLinesMatch(expected, writer.toString().lines()); } - public void testVisitCyclesWith3NodeCycle() { - List nodes = new ArrayList<>(); - nodes.add(a_package); - nodes.add(b_package); - nodes.add(c_package); - Cycle cycle = new Cycle(nodes); - - var expected = new StringWriter(); - try (var pw = new PrintWriter(expected)) { - pw.println(a_package); - pw.println(" --> " + b_package); - pw.println(" --> " + c_package); - pw.println(" --> " + a_package); - } + @Test + void testVisitCyclesWith3NodeCycle() { + var cycle = new Cycle(List.of(a_package, b_package, c_package)); - var buffer = new StringWriter(); - try (var out = new PrintWriter(buffer)) { + var expected = Stream.of( + "" + a_package, + " --> " + b_package, + " --> " + c_package, + " --> " + a_package + ); + + var writer = new StringWriter(); + try (var out = new PrintWriter(writer)) { var printer = new TextCyclePrinter(out); printer.visitCycles(Collections.singletonList(cycle)); } - assertEquals(expected.toString(), buffer.toString()); + assertLinesMatch(expected, writer.toString().lines()); } - public void testVisitCyclesWith2Cycles() { - List cycles = new ArrayList<>(); - - List nodes1 = new ArrayList<>(); - nodes1.add(a_package); - nodes1.add(b_package); - cycles.add(new Cycle(nodes1)); - - List nodes2 = new ArrayList<>(); - nodes2.add(a_package); - nodes2.add(b_package); - nodes2.add(c_package); - cycles.add(new Cycle(nodes2)); - - var expected = new StringWriter(); - try (var pw = new PrintWriter(expected)) { - pw.println(a_package); - pw.println(" --> " + b_package); - pw.println(" --> " + a_package); - pw.println(a_package); - pw.println(" --> " + b_package); - pw.println(" --> " + c_package); - pw.println(" --> " + a_package); - } - - var buffer = new StringWriter(); - try (var out = new PrintWriter(buffer)) { + @Test + void testVisitCyclesWith2Cycles() { + var cycles = List.of( + new Cycle(List.of(a_package, b_package)), + new Cycle(List.of(a_package, b_package, c_package)) + ); + + var expected = Stream.of( + "" + a_package, + " --> " + b_package, + " --> " + a_package, + "" + a_package, + " --> " + b_package, + " --> " + c_package, + " --> " + a_package + ); + + var writer = new StringWriter(); + try (var out = new PrintWriter(writer)) { var printer = new TextCyclePrinter(out); printer.visitCycles(cycles); } - assertEquals(expected.toString(), buffer.toString()); + assertLinesMatch(expected, writer.toString().lines()); } } diff --git a/lib/src/test/java/com/jeantessier/dependency/TestXMLCyclePrinter.java b/lib/src/test/java/com/jeantessier/dependency/TestXMLCyclePrinter.java index 49c584ec..3c782516 100644 --- a/lib/src/test/java/com/jeantessier/dependency/TestXMLCyclePrinter.java +++ b/lib/src/test/java/com/jeantessier/dependency/TestXMLCyclePrinter.java @@ -32,28 +32,32 @@ package com.jeantessier.dependency; +import org.xml.sax.*; +import org.apache.oro.text.perl.*; +import org.junit.jupiter.api.*; + import java.io.*; import java.util.*; +import java.util.stream.*; import javax.xml.parsers.*; -import junit.framework.*; -import org.xml.sax.*; -import org.apache.oro.text.perl.*; +import static org.junit.jupiter.api.Assertions.*; -public class TestXMLCyclePrinter extends TestCase { +public class TestXMLCyclePrinter { private static final String SPECIFIC_ENCODING = "iso-latin-1"; private static final String SPECIFIC_DTD_PREFIX = "./etc"; private XMLReader reader; private final Perl5Util perl = new Perl5Util(); - private final StringWriter out = new StringWriter(); + private final StringWriter writer = new StringWriter(); private Node a_package; private Node b_package; private Node c_package; - protected void setUp() throws Exception { + @BeforeEach + void setUp() throws Exception { var validate = Boolean.getBoolean("DEPENDENCYFINDER_TESTS_VALIDATE"); reader = SAXParserFactory.newInstance().newSAXParser().getXMLReader(); @@ -67,191 +71,149 @@ protected void setUp() throws Exception { c_package = factory.createPackage("c"); } - public void testDefaultDTDPrefix() { - new XMLCyclePrinter(new PrintWriter(out)); - - String xmlDocument = out.toString(); - assertTrue(xmlDocument + "Missing DTD", perl.match("/DOCTYPE \\S+ SYSTEM \"(.*)\"/", xmlDocument)); - assertTrue("DTD \"" + perl.group(1) + "\" does not have prefix \"" + XMLPrinter.DEFAULT_DTD_PREFIX + "\"", perl.group(1).startsWith(XMLPrinter.DEFAULT_DTD_PREFIX)); - - try { - reader.parse(new InputSource(new StringReader(xmlDocument))); - fail("Parsed non-existant document\n" + xmlDocument); - } catch (SAXException ex) { - // Ignore - } catch (IOException ex) { - fail("Could not read XML Document: " + ex.getMessage() + "\n" + xmlDocument); - } + @Test + void testDefaultDTDPrefix() { + new XMLCyclePrinter(new PrintWriter(writer)); + + String xmlDocument = writer.toString(); + assertTrue(perl.match("/DOCTYPE \\S+ SYSTEM \"(.*)\"/", xmlDocument), xmlDocument + "Missing DTD"); + assertTrue(perl.group(1).startsWith(XMLPrinter.DEFAULT_DTD_PREFIX), "DTD \"" + perl.group(1) + "\" does not have prefix \"" + XMLPrinter.DEFAULT_DTD_PREFIX + "\""); + + assertThrows(SAXException.class, () -> reader.parse(new InputSource(new StringReader(xmlDocument)))); } - public void testSpecificDTDPrefix() { - new XMLCyclePrinter(new PrintWriter(out), XMLPrinter.DEFAULT_ENCODING, SPECIFIC_DTD_PREFIX); - - String xmlDocument = out.toString(); - assertTrue(xmlDocument + "Missing DTD", perl.match("/DOCTYPE \\S+ SYSTEM \"(.*)\"/", xmlDocument)); - assertTrue("DTD \"" + perl.group(1) + "\" does not have prefix \"./etc\"", perl.group(1).startsWith(SPECIFIC_DTD_PREFIX)); - - try { - reader.parse(new InputSource(new StringReader(xmlDocument))); - fail("Parsed non-existant document\n" + xmlDocument); - } catch (SAXException ex) { - // Ignore - } catch (IOException ex) { - fail("Could not read XML Document: " + ex.getMessage() + "\n" + xmlDocument); - } + @Test + void testSpecificDTDPrefix() { + new XMLCyclePrinter(new PrintWriter(writer), XMLPrinter.DEFAULT_ENCODING, SPECIFIC_DTD_PREFIX); + + String xmlDocument = writer.toString(); + assertTrue(perl.match("/DOCTYPE \\S+ SYSTEM \"(.*)\"/", xmlDocument), xmlDocument + "Missing DTD"); + assertTrue(perl.group(1).startsWith(SPECIFIC_DTD_PREFIX), "DTD \"" + perl.group(1) + "\" does not have prefix \"./etc\""); + + assertThrows(SAXException.class, () -> reader.parse(new InputSource(new StringReader(xmlDocument)))); } - public void testDefaultEncoding() { - new XMLCyclePrinter(new PrintWriter(out)); - - String xmlDocument = out.toString(); - assertTrue(xmlDocument + "Missing encoding", perl.match("/encoding=\"([^\"]*)\"/", xmlDocument)); - assertEquals("Encoding", XMLPrinter.DEFAULT_ENCODING, perl.group(1)); - - try { - reader.parse(new InputSource(new StringReader(xmlDocument))); - fail("Parsed non-existant document\n" + xmlDocument); - } catch (SAXException ex) { - // Ignore - } catch (IOException ex) { - fail("Could not read XML Document: " + ex.getMessage() + "\n" + xmlDocument); - } + @Test + void testDefaultEncoding() { + new XMLCyclePrinter(new PrintWriter(writer)); + + String xmlDocument = writer.toString(); + assertTrue(perl.match("/encoding=\"([^\"]*)\"/", xmlDocument), xmlDocument + "Missing encoding"); + assertEquals(XMLPrinter.DEFAULT_ENCODING, perl.group(1), "Encoding"); + + assertThrows(SAXException.class, () -> reader.parse(new InputSource(new StringReader(xmlDocument)))); } - public void testSpecificEncoding() { - new XMLCyclePrinter(new PrintWriter(out), SPECIFIC_ENCODING, XMLPrinter.DEFAULT_DTD_PREFIX); - - String xmlDocument = out.toString(); - assertTrue(xmlDocument + "Missing encoding", perl.match("/encoding=\"([^\"]*)\"/", xmlDocument)); - assertEquals("Encoding", SPECIFIC_ENCODING, perl.group(1)); - - try { - reader.parse(new InputSource(new StringReader(xmlDocument))); - fail("Parsed non-existant document\n" + xmlDocument); - } catch (SAXException ex) { - // Ignore - } catch (IOException ex) { - fail("Could not read XML Document: " + ex.getMessage() + "\n" + xmlDocument); - } + @Test + void testSpecificEncoding() { + new XMLCyclePrinter(new PrintWriter(writer), SPECIFIC_ENCODING, XMLPrinter.DEFAULT_DTD_PREFIX); + + String xmlDocument = writer.toString(); + assertTrue(perl.match("/encoding=\"([^\"]*)\"/", xmlDocument), xmlDocument + "Missing encoding"); + assertEquals(SPECIFIC_ENCODING, perl.group(1), "Encoding"); + + assertThrows(SAXException.class, () -> reader.parse(new InputSource(new StringReader(xmlDocument)))); } - public void testVisitCyclesWith2NodeCycle() throws IOException { - List nodes = new ArrayList<>(); - nodes.add(a_package); - nodes.add(b_package); - Cycle cycle = new Cycle(nodes); + @Test + void testVisitCyclesWith2NodeCycle() { + var cycle = new Cycle(List.of(a_package, b_package)); - var printer = new XMLCyclePrinter(new PrintWriter(out), XMLPrinter.DEFAULT_ENCODING, SPECIFIC_DTD_PREFIX); + var printer = new XMLCyclePrinter(new PrintWriter(writer), XMLPrinter.DEFAULT_ENCODING, SPECIFIC_DTD_PREFIX); printer.visitCycles(Collections.singletonList(cycle)); - var lineNumber = 0; - var in = new BufferedReader(new StringReader(out.toString())); - - assertEquals("line " + ++lineNumber, "", in.readLine()); - assertEquals("line " + ++lineNumber, "", in.readLine()); - assertEquals("line " + ++lineNumber, "", in.readLine()); - assertEquals("line " + ++lineNumber, "", in.readLine()); - assertEquals("line " + ++lineNumber, "", in.readLine()); - assertEquals("line " + ++lineNumber, " ", in.readLine()); - assertEquals("line " + ++lineNumber, " a", in.readLine()); - assertEquals("line " + ++lineNumber, " b", in.readLine()); - assertEquals("line " + ++lineNumber, " ", in.readLine()); - assertEquals("line " + ++lineNumber, "", in.readLine()); - - assertEquals("End of file", null, in.readLine()); + var expectedLines = Stream.of( + "", + "", + "", + "", + "", + " ", + " a", + " b", + " ", + "" + ); + + assertLinesMatch(expectedLines, writer.toString().lines()); } - public void testVisitCyclesWith2NodeCycleWithIndentText() throws IOException { - List nodes = new ArrayList<>(); - nodes.add(a_package); - nodes.add(b_package); - Cycle cycle = new Cycle(nodes); + @Test + void testVisitCyclesWith2NodeCycleWithIndentText() { + var cycle = new Cycle(List.of(a_package, b_package)); - var printer = new XMLCyclePrinter(new PrintWriter(out), XMLPrinter.DEFAULT_ENCODING, SPECIFIC_DTD_PREFIX); + var printer = new XMLCyclePrinter(new PrintWriter(writer), XMLPrinter.DEFAULT_ENCODING, SPECIFIC_DTD_PREFIX); printer.setIndentText("*"); printer.visitCycles(Collections.singletonList(cycle)); - var lineNumber = 0; - var in = new BufferedReader(new StringReader(out.toString())); - - assertEquals("line " + ++lineNumber, "", in.readLine()); - assertEquals("line " + ++lineNumber, "", in.readLine()); - assertEquals("line " + ++lineNumber, "", in.readLine()); - assertEquals("line " + ++lineNumber, "", in.readLine()); - assertEquals("line " + ++lineNumber, "", in.readLine()); - assertEquals("line " + ++lineNumber, "*", in.readLine()); - assertEquals("line " + ++lineNumber, "**a", in.readLine()); - assertEquals("line " + ++lineNumber, "**b", in.readLine()); - assertEquals("line " + ++lineNumber, "*", in.readLine()); - assertEquals("line " + ++lineNumber, "", in.readLine()); - - assertEquals("End of file", null, in.readLine()); + var expectedLines = Stream.of( + "", + "", + "", + "", + "", + "*", + "**a", + "**b", + "*", + "" + ); + + assertLinesMatch(expectedLines, writer.toString().lines()); } - public void testVisitCycleWith3NodeCycle() throws IOException { - List nodes = new ArrayList<>(); - nodes.add(a_package); - nodes.add(b_package); - nodes.add(c_package); - Cycle cycle = new Cycle(nodes); + @Test + void testVisitCycleWith3NodeCycle() { + var cycle = new Cycle(List.of(a_package, b_package, c_package)); - var printer = new XMLCyclePrinter(new PrintWriter(out), XMLPrinter.DEFAULT_ENCODING, SPECIFIC_DTD_PREFIX); + var printer = new XMLCyclePrinter(new PrintWriter(writer), XMLPrinter.DEFAULT_ENCODING, SPECIFIC_DTD_PREFIX); printer.visitCycles(Collections.singletonList(cycle)); - var lineNumber = 0; - var in = new BufferedReader(new StringReader(out.toString())); - - assertEquals("line " + ++lineNumber, "", in.readLine()); - assertEquals("line " + ++lineNumber, "", in.readLine()); - assertEquals("line " + ++lineNumber, "", in.readLine()); - assertEquals("line " + ++lineNumber, "", in.readLine()); - assertEquals("line " + ++lineNumber, "", in.readLine()); - assertEquals("line " + ++lineNumber, " ", in.readLine()); - assertEquals("line " + ++lineNumber, " a", in.readLine()); - assertEquals("line " + ++lineNumber, " b", in.readLine()); - assertEquals("line " + ++lineNumber, " c", in.readLine()); - assertEquals("line " + ++lineNumber, " ", in.readLine()); - assertEquals("line " + ++lineNumber, "", in.readLine()); - - assertEquals("End of file", null, in.readLine()); + var expectedLines = Stream.of( + "", + "", + "", + "", + "", + " ", + " a", + " b", + " c", + " ", + "" + ); + + assertLinesMatch(expectedLines, writer.toString().lines()); } - public void testVisitCycleWith2Cycles() throws IOException { - List cycles = new ArrayList<>(); - - List nodes1 = new ArrayList<>(); - nodes1.add(a_package); - nodes1.add(b_package); - cycles.add(new Cycle(nodes1)); - - List nodes2 = new ArrayList<>(); - nodes2.add(a_package); - nodes2.add(b_package); - nodes2.add(c_package); - cycles.add(new Cycle(nodes2)); + @Test + void testVisitCycleWith2Cycles() { + var cycles = List.of( + new Cycle(List.of(a_package, b_package)), + new Cycle(List.of(a_package, b_package, c_package)) + ); - var printer = new XMLCyclePrinter(new PrintWriter(out), XMLPrinter.DEFAULT_ENCODING, SPECIFIC_DTD_PREFIX); + var printer = new XMLCyclePrinter(new PrintWriter(writer), XMLPrinter.DEFAULT_ENCODING, SPECIFIC_DTD_PREFIX); printer.visitCycles(cycles); - var lineNumber = 0; - var in = new BufferedReader(new StringReader(out.toString())); - - assertEquals("line " + ++lineNumber, "", in.readLine()); - assertEquals("line " + ++lineNumber, "", in.readLine()); - assertEquals("line " + ++lineNumber, "", in.readLine()); - assertEquals("line " + ++lineNumber, "", in.readLine()); - assertEquals("line " + ++lineNumber, "", in.readLine()); - assertEquals("line " + ++lineNumber, " ", in.readLine()); - assertEquals("line " + ++lineNumber, " a", in.readLine()); - assertEquals("line " + ++lineNumber, " b", in.readLine()); - assertEquals("line " + ++lineNumber, " ", in.readLine()); - assertEquals("line " + ++lineNumber, " ", in.readLine()); - assertEquals("line " + ++lineNumber, " a", in.readLine()); - assertEquals("line " + ++lineNumber, " b", in.readLine()); - assertEquals("line " + ++lineNumber, " c", in.readLine()); - assertEquals("line " + ++lineNumber, " ", in.readLine()); - assertEquals("line " + ++lineNumber, "", in.readLine()); - - assertEquals("End of file", null, in.readLine()); + var expectedLines = Stream.of( + "", + "", + "", + "", + "", + " ", + " a", + " b", + " ", + " ", + " a", + " b", + " c", + " ", + "" + ); + + assertLinesMatch(expectedLines, writer.toString().lines()); } }