diff --git a/lib/junit-4.13.2.jar b/lib/junit-4.13.2.jar deleted file mode 100644 index 6da55d8..0000000 Binary files a/lib/junit-4.13.2.jar and /dev/null differ diff --git a/lib/junit-platform-console-standalone-1.11.4.jar b/lib/junit-platform-console-standalone-1.11.4.jar new file mode 100644 index 0000000..7b39ab9 Binary files /dev/null and b/lib/junit-platform-console-standalone-1.11.4.jar differ diff --git a/src/fr/test/test_V1.java b/src/fr/test/test_V1.java new file mode 100644 index 0000000..e656797 --- /dev/null +++ b/src/fr/test/test_V1.java @@ -0,0 +1,209 @@ +package src.fr.test; + +import java.util.Set; +import java.util.HashSet; + + +import static org.junit.Assert.*; + +import org.junit.Before; +import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; + +import src.fr.impl.*; +import src.fr.impl.Parts.*; +import src.fr.api.*; + +public class test_V1 { + + CategoryImpl engine = new CategoryImpl("Engine"); + CategoryImpl transmission = new CategoryImpl("Transmission"); + CategoryImpl exterior = new CategoryImpl("Exterior"); + CategoryImpl interior = new CategoryImpl("Interior"); + + //PartType + PartType EG100= new PartTypeImpl("EG100",Engine.class, engine); + PartType EG133= new PartTypeImpl("EG133",Engine.class, engine); + PartType EG210= new PartTypeImpl("EG210",Engine.class, engine); + PartType ED110= new PartTypeImpl("ED110",Engine.class, engine); + PartType ED180= new PartTypeImpl("ED180",Engine.class, engine); + PartType EH120= new PartTypeImpl("EH120",Engine.class, engine); + + PartType TM5= new PartTypeImpl("TM5", Transmission.class ,transmission); + PartType TM6= new PartTypeImpl("TM6", Transmission.class ,transmission); + PartType TA5= new PartTypeImpl("TA5", Transmission.class ,transmission); + PartType TS6= new PartTypeImpl("TS6", Transmission.class ,transmission); + PartType TSF7= new PartTypeImpl("TSF7", Transmission.class ,transmission); + PartType TC120= new PartTypeImpl("TC120", Transmission.class ,transmission); + + PartType XC= new PartTypeImpl("XC", Exterior.class,exterior); + PartType XM= new PartTypeImpl("XM", Exterior.class,exterior); + PartType XS= new PartTypeImpl("XS", Exterior.class,exterior); + + PartType IN= new PartTypeImpl("IN", Interior.class ,interior); + PartType IH= new PartTypeImpl("IH", Interior.class ,interior); + PartType IS= new PartTypeImpl("IS", Interior.class ,interior); + + CompatibilityManager cm = new CompatibilityManagerImpl(); + + + @BeforeEach + public void init(){ + Set EH120Requirement = new HashSet(); + EH120Requirement.add(TC120); + + Set TA5Incompatibilities = new HashSet(); + TA5Incompatibilities.add(EG100); + + Set TSF7Incompatibilities = new HashSet(); + TSF7Incompatibilities.add(EG100); + TSF7Incompatibilities.add(EG133); + TSF7Incompatibilities.add(ED110); + + Set TC120Requirement = new HashSet(); + TC120Requirement.add(EH120); + + Set XCIncompatibilities = new HashSet(); + XCIncompatibilities.add(EG210); + + Set XMIncompatibilities = new HashSet(); + XMIncompatibilities.add(EG100); + + Set XSIncompatibilities = new HashSet(); + XSIncompatibilities.add(EG100); + Set XSRequirement = new HashSet(); + XSRequirement.add(IS); + + Set ISIncompatibilities = new HashSet(); + ISIncompatibilities.add(EG100); + ISIncompatibilities.add(TM5); + Set ISRequirement = new HashSet(); + ISRequirement.add(XS); + + cm.addRequirements(EH120, EH120Requirement); + cm.addIncompatibilities(TA5, TA5Incompatibilities); + cm.addIncompatibilities(TSF7, TSF7Incompatibilities); + cm.addRequirements(TC120, TC120Requirement); + cm.addIncompatibilities(XC, XCIncompatibilities); + cm.addIncompatibilities(XM, XMIncompatibilities); + cm.addIncompatibilities(XS, XSIncompatibilities); + cm.addRequirements(XS, XSRequirement); + cm.addIncompatibilities(IS, ISIncompatibilities); + cm.addRequirements(IS, ISRequirement); + } + + + @Test + public void test_Incompatibilities_Simple_1(){ + assertTrue(cm.getIncompatibilities(TA5).contains(EG100)); + } + + @Test + public void test_multiple_Incompatibilities_Simple_2(){ + assertTrue( + cm.getIncompatibilities(TSF7).contains(EG100)&& + cm.getIncompatibilities(TSF7).contains(EG133)&& + cm.getIncompatibilities(TSF7).contains(ED110) + ); + } + + @Test + public void test_Requirements_3(){ + assertTrue(cm.getRequirements(EH120).contains(TC120)); + } + + + + /* + * A <-> B + * if A -> B then B -> A + */ + @Test + public void test_Incompatibilities_Complex_4(){ + System.out.println("size EG100 incompatibilities : "+cm.getIncompatibilities(EG100).size()); + assertTrue(cm.getIncompatibilities(EG100).contains(IS)); + assertTrue(cm.getIncompatibilities(EG100).contains(XS)); + } + + /* + * if A require B + * then A is incompatible with all incompatible of B + */ + @Test + public void test_Require_Incompatibilities_Complex_5(){ + assertTrue(cm.getIncompatibilities(XS).contains(EG100)); + System.out.println("size XS incompatibilities : " + cm.getIncompatibilities(XS).size()); + assertTrue(cm.getIncompatibilities(XS).contains(TM5)); + } + + + /* + * Require Require Require + * if A -> B && B -> C then A -> C + */ + @Test + public void test_Incompatibilities_Complex_7(){ + cm.addRequirements(TC120, Set.of(XC)); + assertTrue(cm.getRequirements(TC120).contains(XC)); + assertTrue(cm.getRequirements(EH120).contains(XC)); + cm.removeRequirement(TC120, XC); + } + + @Test + public void test_Empty_Requirements_5(){ + assertTrue(cm.getRequirements(ED180).isEmpty()); + } + + @Test + public void test_Remove_and_restore_Incompatibilities_6(){ + assertTrue(cm.getIncompatibilities(XM).contains(EG100)); + cm.removeIncompatibility(XM, EG100); + assertFalse(cm.getIncompatibilities(XM).contains(EG100)); + Set setEG100 = new HashSet(); + setEG100.add(EG100); + cm.addIncompatibilities(XM, setEG100); + assertTrue(cm.getIncompatibilities(XM).contains(EG100)); + } + + @Test + public void test_Remove_Empty_7(){ + assertTrue(cm.getIncompatibilities(EH120).isEmpty()); + cm.removeIncompatibility(EH120, EG100); + assertTrue(cm.getIncompatibilities(EH120).isEmpty()); } + + @Test + public void test_Remove_and_restore_Requirements_8(){ + assertTrue(cm.getRequirements(EH120).contains(TC120)); + cm.removeRequirement(EH120, TC120); + assertFalse(cm.getRequirements(EH120).contains(TC120)); + Set setTC120 = new HashSet(); + setTC120.add(TC120); + cm.addRequirements(EH120, setTC120); + assertTrue(cm.getRequirements(EH120).contains(TC120)); + } + + @Test + public void test_remove_incompatibilities_but_no_removable(){ + assertTrue(cm.getIncompatibilities(EG100).contains(IS)); + cm.removeIncompatibility(EG100, IS); + assertTrue(cm.getIncompatibilities(EG100).contains(IS)); + } + + @Test + public void test_Add_and_restore_Incompatibilities_9(){ + assertTrue(cm.getIncompatibilities(TSF7).contains(EG100)); + assertTrue(cm.getIncompatibilities(TSF7).contains(EG133)); + assertTrue(cm.getIncompatibilities(TSF7).contains(ED110)); + cm.removeIncompatibility(TSF7, EG100); + assertFalse(cm.getIncompatibilities(TSF7).contains(EG100)); + assertTrue(cm.getIncompatibilities(TSF7).contains(EG133)); + assertTrue(cm.getIncompatibilities(TSF7).contains(ED110)); + Set setEG100 = new HashSet(); + setEG100.add(EG100); + cm.addIncompatibilities(TSF7, setEG100); + assertTrue(cm.getIncompatibilities(TSF7).contains(EG100)); + assertTrue(cm.getIncompatibilities(TSF7).contains(EG133)); + assertTrue(cm.getIncompatibilities(TSF7).contains(ED110)); + } + +} diff --git a/src/fr/test/test_V2.java b/src/fr/test/test_V2.java index cea7bb2..d2ce493 100644 --- a/src/fr/test/test_V2.java +++ b/src/fr/test/test_V2.java @@ -89,14 +89,9 @@ public class test_V2 { cm.addIncompatibilities(IS, ISIncompatibilities); cm.addRequirements(IS, ISRequirement); - - - //EG100.setProperty("prix","5€"); - - - } + @Test public void test_isComplete(){ @@ -211,7 +206,6 @@ public class test_V2 { config1.selectPart(XS); config1.selectPart(IS); - assertTrue(config1.getPart(exterior).getProperty("color").isEmpty()); assertTrue(config1.isValid()); }