diff --git a/README.md b/README.md index ccc3d73..c361fc6 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ V1: -Nous testons d'abord le CompatibilityManager. On fait un BeforeEach pour initialisé un CompatibilityManager (celui vu en td) -On test si les Incompatibilities et Requirements sont bien récupérable à partir du CompatibilityManager avec les fonction getIncompatibilities et getRequirements. - +Nous testons d'abord le CompatibilityManager. On fait un BeforeEach pour initialiser un CompatibilityManager (celui vu en TD) +On teste si les Incompatibilities et Requirements sont bien récupérables à partir du CompatibilityManager avec les fonctions getIncompatibilities et getRequirements. GetIncompatibilities et getRequirements doivent donner toutes les Part incompatibles ou Require, même si elles n'ont pas été données directement à la Part testée. On doit donc aussi vérifier la contradiction : A a besoin de B mais B est incompatible avec A, alors A est incompatible avec lui-même. +On teste aussi la configuration, en vérifiant si une configuration est complète et si elle est validée (dans notre implémentation V1, une configuration validée est forcément complète, mais pas forcément l'inverse). nous ne savons pas pourquoi mais dans notre projet les tests avec couverture ne fonctionnent pas, les tets sont bien testé, mais il tourne dans le vide et ne donne jamais le résultat de la couverture... \ No newline at end of file diff --git a/src/fr/test/test.java b/src/fr/test/test.java index 4a9abdb..d12bcb5 100644 --- a/src/fr/test/test.java +++ b/src/fr/test/test.java @@ -3,7 +3,7 @@ package src.fr.test; import java.util.Set; import java.util.HashSet; - +import static org.junit.Assert.assertFalse; import static org.junit.jupiter.api.Assertions.*; import org.junit.jupiter.api.Test; @@ -43,6 +43,7 @@ public class test { PartType IH= new PartTypeImpl("IH", Interior); PartType IS= new PartTypeImpl("IS", Interior); + CompatibilityManager cm; @@ -208,6 +209,27 @@ public class test { assertTrue(cm.getIncompatibilities(TSF7).contains(ED110)); } + @Test + public void test_contradiction(){ + CompatibilityManager cm2 = new CompatibilityManagerImpl(); + PartType eg= new PartTypeImpl("Eg", Engine); + PartType tr= new PartTypeImpl("Tr", Transmission); + + Set egIncompatibilities = new HashSet(); + egIncompatibilities.add(tr); + cm.addIncompatibilities(eg, egIncompatibilities); + + Set efRequirement = new HashSet(); + efRequirement.add(eg); + cm.addRequirements(tr, efRequirement); + + + assertFalse(cm.getIncompatibilities(eg).contains(eg)); + assertTrue(cm.getRequirements(tr).contains(eg)); + assertTrue(cm.getIncompatibilities(tr).contains(tr)); //tr Require eg, eg Incompatible tr, -> eg Incompatible eg + + } + @Test public void test_isComplete_empty_config(){ ConfigurationImpl config1 = new ConfigurationImpl(cm); @@ -285,4 +307,29 @@ public class test { assertFalse(config1.isValid()); } + @Test + public void test_contradiction_config(){ + CompatibilityManager cm2 = new CompatibilityManagerImpl(); + PartType eg= new PartTypeImpl("Eg", Engine); + PartType tr= new PartTypeImpl("Tr", Transmission); + PartType ex= new PartTypeImpl("Ex", Exterior); + PartType in= new PartTypeImpl("In", Interior); + + Set egIncompatibilities = new HashSet(); + egIncompatibilities.add(tr); + cm.addIncompatibilities(eg, egIncompatibilities); + + Set efRequirement = new HashSet(); + efRequirement.add(eg); + cm.addRequirements(eg, efRequirement); + + ConfigurationImpl config1 = new ConfigurationImpl(cm); + config1.selectPart(eg); + config1.selectPart(tr); + config1.selectPart(ex); + config1.selectPart(in); + + assertFalse(config1.isValid()); + } + }