From 7bf5b5eb9f6b73e29b0b9e5474d09c548f37f9ea Mon Sep 17 00:00:00 2001 From: Minh VU Date: Fri, 18 Oct 2024 19:24:20 +0200 Subject: [PATCH] Test all verified Nice tester ( Thibaut ) --- src/fr/impl/CompatibilityManagerImpl.java | 47 +++++++++++++---------- src/fr/test/test.java | 4 +- 2 files changed, 29 insertions(+), 22 deletions(-) diff --git a/src/fr/impl/CompatibilityManagerImpl.java b/src/fr/impl/CompatibilityManagerImpl.java index 5a92bdc..ab8ed60 100644 --- a/src/fr/impl/CompatibilityManagerImpl.java +++ b/src/fr/impl/CompatibilityManagerImpl.java @@ -1,7 +1,9 @@ package src.fr.impl; import java.util.HashMap; +import java.util.HashSet; import java.util.Set; +import java.util.Objects; import src.fr.api.PartType; public class CompatibilityManagerImpl implements src.fr.api.CompatibilityManager { @@ -9,18 +11,23 @@ public class CompatibilityManagerImpl implements src.fr.api.CompatibilityManager private HashMap> incompatibilities; private HashMap> requirements; + public CompatibilityManagerImpl() { + this.incompatibilities = new HashMap<>(); + this.requirements = new HashMap<>(); + } + @Override public void addIncompatibilities(PartType reference, Set target){ //Précondition - if(reference == null || target == null ){ - throw new IllegalArgumentException("Ref or Target is null"); - } + Objects.requireNonNull(reference); + Objects.requireNonNull(target); + Set incompa = this.getIncompatibilities(reference); Set require = this.getRequirements(reference); - if(incompa== null){ - incompa=target; + if(incompa.isEmpty()){ + incompatibilities.put(reference, target); }else { for(PartType x: target){ if (incompa.contains(x)){ @@ -45,12 +52,11 @@ public class CompatibilityManagerImpl implements src.fr.api.CompatibilityManager @Override public void removeIncompatibility(PartType reference, PartType target){ //Précondition - if(reference == null || target == null ){ - throw new IllegalArgumentException("Ref or Target is null"); - } + Objects.requireNonNull(reference); + Objects.requireNonNull(target); Set incompa = this.getIncompatibilities(reference); - if(incompa==null){ + if(incompa.isEmpty()){ System.out.println("No part incompatible"); }else{ if(incompa.contains(target)){ @@ -66,14 +72,13 @@ public class CompatibilityManagerImpl implements src.fr.api.CompatibilityManager @Override public void addRequirements(PartType reference, Set target){ //Précondition - if(reference == null || target == null ){ - throw new IllegalArgumentException("Ref or Target is null"); - } + Objects.requireNonNull(reference); + Objects.requireNonNull(target); Set incompa = this.getIncompatibilities(reference); Set require = this.getRequirements(reference); - if(require== null){ - require= target; + if(require.isEmpty()){ + requirements.put(reference, target); }else { for(PartType x: target){ if (require.contains(x)){ @@ -99,12 +104,11 @@ public class CompatibilityManagerImpl implements src.fr.api.CompatibilityManager @Override public void removeRequirement(PartType reference, PartType target){ //Précondition - if(reference == null || target == null ){ - throw new IllegalArgumentException("Ref or Target is null"); - } + Objects.requireNonNull(reference); + Objects.requireNonNull(target); Set require = this.getRequirements(reference); - if(require ==null){ + if(require.isEmpty()){ System.out.println("No part compatible"); }else{ if(require.contains(target)){ @@ -119,12 +123,15 @@ public class CompatibilityManagerImpl implements src.fr.api.CompatibilityManager @Override public Set getIncompatibilities(PartType reference) { - return this.incompatibilities.get(reference); + // Il faut verifier ref est existé dans Hashmap + //return this.incompatibilities.get(reference); + return this.incompatibilities.getOrDefault(reference, new HashSet()); } @Override public Set getRequirements(PartType reference) { - return this.requirements.get(reference); + //return this.requirements.get(reference); + return this.requirements.getOrDefault(reference, new HashSet()); } } \ No newline at end of file diff --git a/src/fr/test/test.java b/src/fr/test/test.java index 298ac08..d736a11 100644 --- a/src/fr/test/test.java +++ b/src/fr/test/test.java @@ -52,7 +52,7 @@ public class test { EH120Requirement.add(TC120); Set TA5Incompatibilities = new HashSet(); - TA5Incompatibilities.add(TA5); + TA5Incompatibilities.add(EG100); Set TSF7Incompatibilities = new HashSet(); TSF7Incompatibilities.add(EG100); @@ -80,7 +80,7 @@ public class test { ISRequirement.add(XS); cm.addRequirements(EH120, EH120Requirement); - cm.addRequirements(TA5, TA5Incompatibilities); + cm.addIncompatibilities(TA5, TA5Incompatibilities); cm.addIncompatibilities(TSF7, TSF7Incompatibilities); cm.addRequirements(TC120, TC120Requirement); cm.addIncompatibilities(XC, XCIncompatibilities);