diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..32cfc61 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "files.watcherExclude": { + "**/target": true + } +} \ No newline at end of file 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/impl/CompatibilityManagerImpl.java b/src/fr/impl/CompatibilityManagerImpl.java index 0da09cf..c3272de 100644 --- a/src/fr/impl/CompatibilityManagerImpl.java +++ b/src/fr/impl/CompatibilityManagerImpl.java @@ -191,7 +191,7 @@ public class CompatibilityManagerImpl implements CompatibilityManager { } } - + System.out.println("size = " + result.size()); return result; } @@ -200,7 +200,7 @@ public class CompatibilityManagerImpl implements CompatibilityManager { public Set getRequirements(PartType reference) { Set result = new HashSet<>(); Femeture_Transivite(reference, result,new HashSet<>(),reference); + System.out.println("size = " + result.size()); return result; } - } \ No newline at end of file diff --git a/src/fr/impl/ConfigurationImpl.java b/src/fr/impl/ConfigurationImpl.java index 3dd190e..abafba0 100644 --- a/src/fr/impl/ConfigurationImpl.java +++ b/src/fr/impl/ConfigurationImpl.java @@ -4,24 +4,33 @@ import src.fr.api.Category; import src.fr.api.PartType; import src.fr.api.CompatibilityManager; import src.fr.api.Configuration; + +import java.util.HashSet; import java.util.Set; public class ConfigurationImpl implements Configuration { - private Set selectedParts; + private Set selectedParts = new HashSet (); private CompatibilityManager compatibilityManager; private static int NB_CATEGORY = 4; - + + public ConfigurationImpl(CompatibilityManager cm){ + this.compatibilityManager=cm; + } @Override public boolean isValid() { if (this.isComplete()){ for(PartType pt: selectedParts){ + System.out.println(pt.getName()); + //Verifier Requirements for(PartType require : compatibilityManager.getRequirements(pt)){ + System.out.println("\t"+require.getName()); if(!selectedParts.contains(require)) return false; } //Verifier Incompabilities for(PartType incompa : compatibilityManager.getIncompatibilities(pt)){ + System.out.println("\t"+incompa.getName()); if(selectedParts.contains(incompa)) return false; } } @@ -53,7 +62,8 @@ public class ConfigurationImpl implements Configuration { for( PartType pt: selectedParts){ if(pt.getCategory().equals(cat_chosenPart)){ System.out.println("Il y a une pièce dans la même catégorie dans la configuration"); - return; + selectedParts.remove(pt); + break; } } selectedParts.add(chosenPart); diff --git a/src/fr/test/test.java b/src/fr/test/test.java index c88c9ce..6faa4e2 100644 --- a/src/fr/test/test.java +++ b/src/fr/test/test.java @@ -7,6 +7,8 @@ import static org.junit.Assert.*; import org.junit.Before; import org.junit.Test; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; import src.fr.impl.*; import src.fr.api.*; @@ -44,11 +46,6 @@ public class test { CompatibilityManager cm = new CompatibilityManagerImpl(); - PartType[] list = {EG100,EG133,EG210,ED110,ED180,EH120,TM5,TM6,TA5,TS6,TSF7,TC120,XC,XM,XS,IN,IH,IS}; - PartType[] listEn = {EG100,EG133,EG210,ED110,ED180,EH120}; - PartType[] listTr = {TM5,TM6,TA5,TS6,TSF7,TC120}; - PartType[] listEx = {XC,XM,XS}; - PartType[] listIn = {IN,IH,IS}; @Before @@ -210,5 +207,61 @@ public class test { assertTrue(cm.getIncompatibilities(TSF7).contains(EG133)); assertTrue(cm.getIncompatibilities(TSF7).contains(ED110)); } - + + @Test + public void test_isComplete(){ + ConfigurationImpl config1 = new ConfigurationImpl(cm); + config1.selectPart(EG210); + config1.selectPart(TM5); + config1.selectPart(XS); + config1.selectPart(IS); + + assertTrue(config1.isComplete()); + } + + @Test + public void test_isNotComplete(){ + ConfigurationImpl config1 = new ConfigurationImpl(cm); + config1.selectPart(EG210); + config1.selectPart(TM5); + config1.selectPart(XS); + + assertFalse(config1.isComplete()); + } + + @Test + public void test_isValid_empty_cm(){ + CompatibilityManager cm2 = new CompatibilityManagerImpl(); + ConfigurationImpl config1 = new ConfigurationImpl(cm2); + config1.selectPart(EG210); + config1.selectPart(TM5); + config1.selectPart(XS); + config1.selectPart(IS); + + assertTrue(config1.isValid()); + } + + @Test + public void test_isValid(){ + ConfigurationImpl config1 = new ConfigurationImpl(cm); + config1.selectPart(EG210); + config1.selectPart(TS6); + config1.selectPart(XS); + config1.selectPart(IS); + + assertTrue(config1.isValid()); + } + + @Test + public void test_isNotValid(){ + ConfigurationImpl config1 = new ConfigurationImpl(cm); + config1.selectPart(EG210); + config1.selectPart(TM5); + config1.selectPart(XS); + config1.selectPart(IH); + + assertTrue(config1.isComplete()); + assertFalse(config1.isValid()); + } + }