ajout de prix pour les Part

This commit is contained in:
Rochas
2024-12-20 11:00:53 +01:00
parent 6c60549cfe
commit 42dce975ad
8 changed files with 201 additions and 98 deletions

View File

@@ -62,8 +62,8 @@ public class ConfigurationImpl implements Configuration {
} }
return test; return test;
} }
/*
public int getPriceTotal(){ public int getTotalPrice(){
int prix_final=0; int prix_final=0;
if(this.isValid()){ if(this.isValid()){
for(Part pt: selectedParts){ for(Part pt: selectedParts){
@@ -77,6 +77,18 @@ public class ConfigurationImpl implements Configuration {
}else{ }else{
return -1; return -1;
} }
}*/
public int getTotalPrice(){
int prix_final=0;
if(this.isValid()){
for(Part pt: selectedParts){
prix_final+=((PartImpl)pt).getPrice();
}
return prix_final;
}else{
return -1;
}
} }
@Override @Override

View File

@@ -15,8 +15,8 @@ import src.fr.api.PartType;
public class PartImpl implements Part { public class PartImpl implements Part {
private PartType type; protected PartType type;
private int price; protected int price;
/*public PartImpl(PartType type){ /*public PartImpl(PartType type){
this.type = type; this.type = type;

View File

@@ -1,5 +1,10 @@
package src.fr.impl.Parts; package src.fr.impl.Parts;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Set;
import src.fr.api.PartType;
import src.fr.impl.PartImpl; import src.fr.impl.PartImpl;
public class Engine extends PartImpl { public class Engine extends PartImpl {
@@ -7,6 +12,23 @@ public class Engine extends PartImpl {
super(new PartTypeImpl(name,Engine.class, category),price); super(new PartTypeImpl(name,Engine.class, category),price);
}*/ }*/
private static final HashMap<String,Integer> prices;
static {
prices = new HashMap<>();
prices.put("EG100",19000);
prices.put("EG122",22000);
prices.put("EG210",25000);
prices.put("ED110",18000);
prices.put("ED180",20000);
prices.put("EH120",25000);
}
public Engine(){ public Engine(){
} }
@Override
public void setType(PartType type){
this.type = type;
this.price = prices.get(type.getName());
}
} }

View File

@@ -1,11 +1,22 @@
package src.fr.impl.Parts; package src.fr.impl.Parts;
import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.Set; import java.util.Set;
import src.fr.api.PartType;
import src.fr.impl.PartImpl; import src.fr.impl.PartImpl;
public class Exterior extends PartImpl { public class Exterior extends PartImpl {
private static final HashMap<String,Integer> prices;
static {
prices = new HashMap<>();
prices.put("XC",0);
prices.put("XM",800);
prices.put("XS",10000);
}
private static final Set<String> colorSet; private static final Set<String> colorSet;
static { static {
colorSet = new HashSet<>(); colorSet = new HashSet<>();
@@ -39,4 +50,10 @@ public class Exterior extends PartImpl {
public void setColor(String newColor){ public void setColor(String newColor){
this.color = newColor; this.color = newColor;
} }
@Override
public void setType(PartType type){
this.type = type;
this.price = prices.get(type.getName());
}
} }

View File

@@ -1,7 +1,10 @@
package src.fr.impl.Parts; package src.fr.impl.Parts;
import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.Set; import java.util.Set;
import src.fr.api.PartType;
import src.fr.impl.PartImpl; import src.fr.impl.PartImpl;
@@ -9,6 +12,14 @@ import src.fr.impl.PartImpl;
public class Interior extends PartImpl { public class Interior extends PartImpl {
private static final HashMap<String,Integer> prices;
static {
prices = new HashMap<>();
prices.put("IN",0);
prices.put("IH",800);
prices.put("IS",2500);
}
private static final Set<String> colorSet; private static final Set<String> colorSet;
static { static {
colorSet = new HashSet<>(); colorSet = new HashSet<>();
@@ -36,6 +47,10 @@ public class Interior extends PartImpl {
this.color = newColor; this.color = newColor;
} }
@Override
public void setType(PartType type){
this.type = type;
this.price = prices.get(type.getName());
}
} }

View File

@@ -1,5 +1,8 @@
package src.fr.impl.Parts; package src.fr.impl.Parts;
import java.util.HashMap;
import src.fr.api.PartType;
import src.fr.impl.PartImpl; import src.fr.impl.PartImpl;
public class Transmission extends PartImpl { public class Transmission extends PartImpl {
@@ -7,6 +10,23 @@ public class Transmission extends PartImpl {
super(new PartTypeImpl(name,Engine.class, category),price); super(new PartTypeImpl(name,Engine.class, category),price);
}*/ }*/
private static final HashMap<String,Integer> prices;
static {
prices = new HashMap<>();
prices.put("TM5",2000);
prices.put("TM6",4000);
prices.put("TA5",7000);
prices.put("TS6",10000);
prices.put("TSF7",15000);
prices.put("TC120",5000);
}
public Transmission(){ public Transmission(){
} }
@Override
public void setType(PartType type){
this.type = type;
this.price = prices.get(type.getName());
}
} }

View File

@@ -94,6 +94,7 @@ public class test_V1 {
cm.addRequirements(IS, ISRequirement); cm.addRequirements(IS, ISRequirement);
} }
//compatibilitiesManager
@Test @Test
public void test_Incompatibilities_Simple_1(){ public void test_Incompatibilities_Simple_1(){
@@ -208,4 +209,96 @@ public class test_V1 {
assertTrue(cm.getIncompatibilities(TSF7).contains(ED110)); assertTrue(cm.getIncompatibilities(TSF7).contains(ED110));
} }
//Configuration
@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_isNotComplete_empty_cm(){
CompatibilityManager cm2 = new CompatibilityManagerImpl();
ConfigurationImpl config1 = new ConfigurationImpl(cm2);
config1.selectPart(EG210);
config1.selectPart(TM5);
config1.selectPart(XS);
assertFalse(config1.isComplete());
}
@Test
public void test_isValide_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_isValide1(){
ConfigurationImpl config1 = new ConfigurationImpl(cm);
config1.selectPart(EG210);
config1.selectPart(TSF7);
config1.selectPart(XS);
config1.selectPart(IS);
assertTrue(config1.isValid());
}
@Test
public void test_isValide2(){
ConfigurationImpl config1 = new ConfigurationImpl(cm);
config1.selectPart(EG210);
config1.selectPart(TSF7);
config1.selectPart(XS);
config1.selectPart(IS);
config1.selectPart(TS6);
assertTrue(config1.isValid());
}
@Test
public void test_isNotValide1(){
ConfigurationImpl config1 = new ConfigurationImpl(cm);
config1.selectPart(EG100);
config1.selectPart(TSF7);
config1.selectPart(XS);
config1.selectPart(IS);
assertFalse(config1.isValid());
}
@Test
public void test_isNotValide2(){
ConfigurationImpl config1 = new ConfigurationImpl(cm);
config1.selectPart(EG210);
config1.selectPart(TSF7);
config1.selectPart(XS);
config1.selectPart(XS);
assertFalse(config1.isValid());
}
} }

View File

@@ -95,99 +95,6 @@ public class test_V2 {
} }
@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_isNotComplete_empty_cm(){
CompatibilityManager cm2 = new CompatibilityManagerImpl();
ConfigurationImpl config1 = new ConfigurationImpl(cm2);
config1.selectPart(EG210);
config1.selectPart(TM5);
config1.selectPart(XS);
assertFalse(config1.isComplete());
}
@Test
public void test_isValide_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_isValide1(){
ConfigurationImpl config1 = new ConfigurationImpl(cm);
config1.selectPart(EG210);
config1.selectPart(TSF7);
config1.selectPart(XS);
config1.selectPart(IS);
assertTrue(config1.isValid());
}
@Test
public void test_isValide2(){
ConfigurationImpl config1 = new ConfigurationImpl(cm);
config1.selectPart(EG210);
config1.selectPart(TSF7);
config1.selectPart(XS);
config1.selectPart(IS);
config1.selectPart(TS6);
assertTrue(config1.isValid());
}
@Test
public void test_isNotValide1(){
ConfigurationImpl config1 = new ConfigurationImpl(cm);
config1.selectPart(EG100);
config1.selectPart(TSF7);
config1.selectPart(XS);
config1.selectPart(IS);
assertFalse(config1.isValid());
}
@Test
public void test_isNotValide2(){
ConfigurationImpl config1 = new ConfigurationImpl(cm);
config1.selectPart(EG210);
config1.selectPart(TSF7);
config1.selectPart(XS);
config1.selectPart(XS);
assertFalse(config1.isValid());
}
@Test @Test
public void test_Property(){ public void test_Property(){
ConfigurationImpl config1 = new ConfigurationImpl(cm); ConfigurationImpl config1 = new ConfigurationImpl(cm);
@@ -213,4 +120,21 @@ public class test_V2 {
assertTrue(config1.getPart(exterior).getProperty("color").isEmpty()); assertTrue(config1.getPart(exterior).getProperty("color").isEmpty());
assertTrue(config1.isValid()); assertTrue(config1.isValid());
} }
@Test
void test_Price(){
ConfigurationImpl config1 = new ConfigurationImpl(cm);
config1.selectPart(EG210);
assertTrue(((PartImpl)config1.getPart(engine)).getPrice()==25000);
}
@Test
void test_Config_Price(){
ConfigurationImpl config1 = new ConfigurationImpl(cm);
config1.selectPart(EG210);
config1.selectPart(TSF7);
config1.selectPart(XS);
config1.selectPart(IS);
assertTrue(config1.getTotalPrice()==52500);
}
} }