Skip to content
Snippets Groups Projects
Commit 3dd6cddb authored by OURY Sarah's avatar OURY Sarah
Browse files

corrections pour rendre le paramètre modele non obligatoire dans les calculs

parent f4733062
No related branches found
No related tags found
1 merge request!31[SOY] corrections pour rendre le paramètre modele non obligatoire dans les calculs
...@@ -7,7 +7,7 @@ physical-eq-005;P2720DC;2;;2022-11-04;2023-06-16;-4.5;-1;2;Monitor;In stock;Fran ...@@ -7,7 +7,7 @@ physical-eq-005;P2720DC;2;;2022-11-04;2023-06-16;-4.5;-1;2;Monitor;In stock;Fran
physical-eq-006;PIXEL 6;1;;2022-10-18;2022-12-18;0.1;0.2;0.2;Communication Device;Missing;France;;;;MY ENTERPRISE;;365;;;test;haute physical-eq-006;PIXEL 6;1;;2022-10-18;2022-12-18;0.1;0.2;0.2;Communication Device;Missing;France;;;;MY ENTERPRISE;;365;;;test;haute
physical-eq-007;UP2516D;1;;2022-07-31;2023-06-16;4.5;;;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;0.9;basse physical-eq-007;UP2516D;1;;2022-07-31;2023-06-16;4.5;;;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;0.9;basse
physical-eq-008;UP2516D;2;;2022-03-10;2023-06-16;4.5;1;2;Wrong / Type;In stock;France;;;;MY ENTERPRISE;;365;;COPE;0.6; physical-eq-008;UP2516D;2;;2022-03-10;2023-06-16;4.5;1;2;Wrong / Type;In stock;France;;;;MY ENTERPRISE;;365;;COPE;0.6;
physical-eq-009;Unknown;3;;2021-08-09;2023-06-16;4.5;1;2;IP Router;In use;France;;;;MY ENTERPRISE;;365;;COPE;0; physical-eq-009;;3;;2021-08-09;2023-06-16;4.5;1;2;IP Router;In use;France;;;;MY ENTERPRISE;;365;;COPE;0;
physical-eq-010;Unknown;3;;2021-08-09;2023-06-16;4.5;1;2;IP Router;In use;France;;;;MY ENTERPRISE;;365;;;; physical-eq-010;Unknown;3;;2021-08-09;2023-06-16;4.5;1;2;IP Router;In use;France;;;;MY ENTERPRISE;;365;;;;
physical-eq-011;HP 8440p;1;;2021-08-05;2023-06-16;4.5;1;2;Wrong \type;Missing;France;;;;MY ENTERPRISE;;365;;;; physical-eq-011;HP 8440p;1;;2021-08-05;2023-06-16;4.5;1;2;Wrong \type;Missing;France;;;;MY ENTERPRISE;;365;;;;
physical-eq-012;HP 8440p;1;;2023-04-27;2023-06-16;4.5;1;2;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;; physical-eq-012;HP 8440p;1;;2023-04-27;2023-06-16;4.5;1;2;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;;
...@@ -17,7 +17,7 @@ physical-eq-015;CROSSCALL;1;;2022-08-20;2023-06-16;4.5;1;2;Communication Device; ...@@ -17,7 +17,7 @@ physical-eq-015;CROSSCALL;1;;2022-08-20;2023-06-16;4.5;1;2;Communication Device;
physical-eq-016;CROSSCALL;11;;2022-05-20;2023-06-16;4.5;1;2;Communication Device;In stock;France;;;;MY ENTERPRISE;;365;;;; physical-eq-016;CROSSCALL;11;;2022-05-20;2023-06-16;4.5;1;2;Communication Device;In stock;France;;;;MY ENTERPRISE;;365;;;;
physical-eq-017;CROSSCALL;8;;2022-05-28;2023-06-16;4.5;1;2;Communication Device;In use;France;;;;MY ENTERPRISE;;365;;;; physical-eq-017;CROSSCALL;8;;2022-05-28;2023-06-16;4.5;1;2;Communication Device;In use;France;;;;MY ENTERPRISE;;365;;;;
physical-eq-018;HUAWEI P9;11;;2021-01-28;2023-06-16;4.5;1;2;Communication Device;In stock;France;;;;MY ENTERPRISE;;365;;;; physical-eq-018;HUAWEI P9;11;;2021-01-28;2023-06-16;4.5;1;2;Communication Device;In stock;France;;;;MY ENTERPRISE;;365;;;;
physical-eq-019;HUAWEI P9;4;;2022-08-18;2023-06-16;4.5;1;2;Communication Device;Retired;France;;;;MY ENTERPRISE;;365;;;; physical-eq-019;;4;;2022-08-18;2023-06-16;4.5;1;2;Communication Device;Retired;France;;;;MY ENTERPRISE;;365;;;;
physical-eq-020;HUAWEI P9;1;;2023-06-18;2023-06-16;4.5;1;2;Communication Device;Missing;France;;;;MY ENTERPRISE;;365;;;; physical-eq-020;HUAWEI P9;1;;2023-06-18;2023-06-16;4.5;1;2;Communication Device;Missing;France;;;;MY ENTERPRISE;;365;;;;
physical-eq-021;HUAWEI P9;32;;2021-01-28;2023-06-16;4.5;1;2;Communication Device;Missing;France;;;;MY ENTERPRISE;;365;;;; physical-eq-021;HUAWEI P9;32;;2021-01-28;2023-06-16;4.5;1;2;Communication Device;Missing;France;;;;MY ENTERPRISE;;365;;;;
physical-eq-022;HUAWEI P9;9;;2024-08-18;2023-06-16;4.5;1;2;Communication Device;Retired;France;;;;MY ENTERPRISE;;365;;;; physical-eq-022;HUAWEI P9;9;;2024-08-18;2023-06-16;4.5;1;2;Communication Device;Retired;France;;;;MY ENTERPRISE;;365;;;;
......
...@@ -46,8 +46,9 @@ public class EnrichissementEquipementPhysiqueService { ...@@ -46,8 +46,9 @@ public class EnrichissementEquipementPhysiqueService {
}); });
calculEquipementPhysique.setHypotheses(hypotheses); calculEquipementPhysique.setHypotheses(hypotheses);
if (equipementPhysiqueDTO.getModele() != null) {
calculEquipementPhysique.setCorrespondanceRefEquipement(referentielClient.getCorrespondanceRefEquipement(equipementPhysiqueDTO.getModele())); calculEquipementPhysique.setCorrespondanceRefEquipement(referentielClient.getCorrespondanceRefEquipement(equipementPhysiqueDTO.getModele()));
}
calculEquipementPhysique.setTypeEquipement(referentielClient.getTypeEquipement(equipementPhysiqueDTO.getType())); calculEquipementPhysique.setTypeEquipement(referentielClient.getTypeEquipement(equipementPhysiqueDTO.getType()));
calculEquipementPhysique.setImpactsEquipement(new ArrayList<>()); calculEquipementPhysique.setImpactsEquipement(new ArrayList<>());
......
...@@ -121,7 +121,7 @@ class EnrichissementEquipementPhysiqueServiceTest { ...@@ -121,7 +121,7 @@ class EnrichissementEquipementPhysiqueServiceTest {
} }
@Test @Test
void testServiceEnrichissementEquipementPhysqique_correspondanceRefEquipement() throws JsonProcessingException { void testServiceEnrichissementEquipementPhysique_correspondanceRefEquipement() throws JsonProcessingException {
/* MOCK REFERENTIEL : CorrespondanceRefEquipement */ /* MOCK REFERENTIEL : CorrespondanceRefEquipement */
Mockito.when(referentielClient.getCorrespondanceRefEquipement("blade-server--28")).thenReturn(mapper.readValue(""" Mockito.when(referentielClient.getCorrespondanceRefEquipement("blade-server--28")).thenReturn(mapper.readValue("""
...@@ -150,7 +150,7 @@ class EnrichissementEquipementPhysiqueServiceTest { ...@@ -150,7 +150,7 @@ class EnrichissementEquipementPhysiqueServiceTest {
@Test @Test
void testServiceEnrichissementEquipementPhysqique_typeEquipement() throws JsonProcessingException { void testServiceEnrichissementEquipementPhysique_typeEquipement() throws JsonProcessingException {
/* MOCK REFERENTIEL : CorrespondanceRefEquipement */ /* MOCK REFERENTIEL : CorrespondanceRefEquipement */
Mockito.when(referentielClient.getTypeEquipement("Server")).thenReturn(mapper.readValue(""" Mockito.when(referentielClient.getTypeEquipement("Server")).thenReturn(mapper.readValue("""
...@@ -163,6 +163,8 @@ class EnrichissementEquipementPhysiqueServiceTest { ...@@ -163,6 +163,8 @@ class EnrichissementEquipementPhysiqueServiceTest {
var impactEquipementDTO = new ImpactEquipementDTO(); var impactEquipementDTO = new ImpactEquipementDTO();
impactEquipementDTO.setValeur(2.2); impactEquipementDTO.setValeur(2.2);
equipementPhysiqueDTO.setModele(null);
Mockito.when(referentielClient.getImpactEquipement(eq("default-ref-server"), any(), any())).thenReturn(impactEquipementDTO); Mockito.when(referentielClient.getImpactEquipement(eq("default-ref-server"), any(), any())).thenReturn(impactEquipementDTO);
var actual = enrichissementEquipementPhysiqueService.serviceEnrichissementEquipementPhysique(equipementPhysiqueDTO); var actual = enrichissementEquipementPhysiqueService.serviceEnrichissementEquipementPhysique(equipementPhysiqueDTO);
......
...@@ -103,11 +103,15 @@ public class ErrorManagementService { ...@@ -103,11 +103,15 @@ public class ErrorManagementService {
// CA 1.5 // CA 1.5
// L'ajout d'un équipement physique dont le type d'équipement ne possède pas de refEquipementParDefaut et dont le Modele n'est pas présent dans la table des ref_CorrespondanceRefEqP sort l'erreur suivante dans le rapport de contrôle // L'ajout d'un équipement physique dont le type d'équipement ne possède pas de refEquipementParDefaut et dont le Modele n'est pas présent dans la table des ref_CorrespondanceRefEqP sort l'erreur suivante dans le rapport de contrôle
if (StringUtils.isBlank(refEquipementParDefaut)) { if (StringUtils.isBlank(refEquipementParDefaut)) {
CorrespondanceRefEquipementDTO refCorrespondance = referentielServicePort.getCorrespondance(equipementPhysique.getModele()); if (equipementPhysique.getModele() == null) {
if (refCorrespondance == null) {
erreurs.add(messageProperties.getMessages().get("EQUIPEMENT_CORRESPONDANCE_INCONNUE").formatted(equipementPhysique.getNomEquipementPhysique(), equipementPhysique.getType())); erreurs.add(messageProperties.getMessages().get("EQUIPEMENT_CORRESPONDANCE_INCONNUE").formatted(equipementPhysique.getNomEquipementPhysique(), equipementPhysique.getType()));
} else { } else {
refEquipement = refCorrespondance.getRefEquipementCible(); CorrespondanceRefEquipementDTO refCorrespondance = referentielServicePort.getCorrespondance(equipementPhysique.getModele());
if (refCorrespondance == null) {
erreurs.add(messageProperties.getMessages().get("EQUIPEMENT_CORRESPONDANCE_INCONNUE").formatted(equipementPhysique.getNomEquipementPhysique(), equipementPhysique.getType()));
} else {
refEquipement = refCorrespondance.getRefEquipementCible();
}
} }
} }
......
...@@ -16,6 +16,7 @@ import org.mte.numecoeval.expositiondonneesentrees.domain.model.EquipementPhysiq ...@@ -16,6 +16,7 @@ import org.mte.numecoeval.expositiondonneesentrees.domain.model.EquipementPhysiq
import org.mte.numecoeval.expositiondonneesentrees.domain.model.OperationNonIT; import org.mte.numecoeval.expositiondonneesentrees.domain.model.OperationNonIT;
import org.mte.numecoeval.expositiondonneesentrees.domain.ports.output.ReferentielServicePort; import org.mte.numecoeval.expositiondonneesentrees.domain.ports.output.ReferentielServicePort;
import org.mte.numecoeval.expositiondonneesentrees.infrastructure.config.MessageProperties; import org.mte.numecoeval.expositiondonneesentrees.infrastructure.config.MessageProperties;
import org.mte.numecoeval.expositiondonneesentrees.referentiels.generated.api.model.CorrespondanceRefEquipementDTO;
import org.mte.numecoeval.expositiondonneesentrees.referentiels.generated.api.model.CritereDTO; import org.mte.numecoeval.expositiondonneesentrees.referentiels.generated.api.model.CritereDTO;
import org.mte.numecoeval.expositiondonneesentrees.referentiels.generated.api.model.EtapeDTO; import org.mte.numecoeval.expositiondonneesentrees.referentiels.generated.api.model.EtapeDTO;
import org.mte.numecoeval.expositiondonneesentrees.referentiels.generated.api.model.FacteurCaracterisationDTO; import org.mte.numecoeval.expositiondonneesentrees.referentiels.generated.api.model.FacteurCaracterisationDTO;
...@@ -165,7 +166,88 @@ public class ErrorManagementServiceTest { ...@@ -165,7 +166,88 @@ public class ErrorManagementServiceTest {
} }
@Test @Test
void importOperationNonIT_with_TypeNotInRefType_shouldReturnReportWith1Error() { void importEqPhysique_shouldReturnReportWithoutError() {
EquipementPhysique eq1 = EquipementPhysique.builder()
.nomEquipementPhysique("physical-eq-001")
.quantite(1.0)
.dureeUsageInterne(1.0)
.dureeUsageAval(0.0)
.statut("In use")
.paysDUtilisation("France")
.build();
var actual = errorManagementService.checkEquipementPhysique(eq1, "ref");
Assertions.assertFalse(actual.getKey().stream().anyMatch("L'équipement physical-eq-001 de type null ne possède pas de référence d'équipement par défaut dans la table ref_type_item et pas de correspondance dans la table ref_correspondance_ref_eqp"::equals));
}
@Test
void importEqPhysique_with_ModeleNull_shouldReturnReportWith1Error() {
EquipementPhysique eq1 = EquipementPhysique.builder()
.nomEquipementPhysique("physical-eq-001")
.quantite(1.0)
.type("phone")
.dureeUsageInterne(1.0)
.dureeUsageAval(0.0)
.statut("In use")
.paysDUtilisation("France")
.build();
Mockito.lenient().when(referentielServicePort.getCorrespondance(eq1.getType())).thenReturn(null);
var actual = errorManagementService.checkEquipementPhysique(eq1, "");
Assertions.assertTrue(actual.getKey().stream().anyMatch("L'équipement physical-eq-001 de type phone ne possède pas de référence d'équipement par défaut dans la table ref_type_item et pas de correspondance dans la table ref_correspondance_ref_eqp"::equals));
}
@Test
void importEqPhysique_with_ModeleAndCorrepondance_shouldReportWithoutError() throws JsonProcessingException {
EquipementPhysique eq1 = EquipementPhysique.builder()
.nomEquipementPhysique("physical-eq-001")
.quantite(1.0)
.modele("P123")
.type("phone")
.dureeUsageInterne(1.0)
.dureeUsageAval(0.0)
.statut("In use")
.paysDUtilisation("France")
.build();
/* MOCK REFERENTIEL : CorrespondanceRefEquipement */
Mockito.lenient().when(referentielServicePort.getCorrespondance(eq1.getModele())).thenReturn(mapper.readValue("""
{
"modeleEquipementSource": "P123",
"refEquipementCible": "smartphone-1"
}
""", CorrespondanceRefEquipementDTO.class));
var actual = errorManagementService.checkEquipementPhysique(eq1, "");
Assertions.assertFalse(actual.getKey().stream().anyMatch("L'équipement physical-eq-001 de type null ne possède pas de référence d'équipement par défaut dans la table ref_type_item et pas de correspondance dans la table ref_correspondance_ref_eqp"::equals));
}
@Test
void importEqPhysique_with_Modele_without_Correspondance_shouldReturnReportWith1Error() throws JsonProcessingException {
EquipementPhysique eq1 = EquipementPhysique.builder()
.nomEquipementPhysique("physical-eq-001")
.quantite(1.0)
.type("phone")
.dureeUsageInterne(1.0)
.dureeUsageAval(0.0)
.statut("In use")
.paysDUtilisation("France")
.build();
/* MOCK REFERENTIEL : CorrespondanceRefEquipement */
Mockito.lenient().when(referentielServicePort.getCorrespondance(eq1.getModele())).thenReturn(mapper.readValue("""
{
"modeleEquipementSource": "P123",
"refEquipementCible": "smartphone-1"
}
""", CorrespondanceRefEquipementDTO.class));
var actual = errorManagementService.checkEquipementPhysique(eq1, "");
Assertions.assertTrue(actual.getKey().stream().anyMatch("L'équipement physical-eq-001 de type phone ne possède pas de référence d'équipement par défaut dans la table ref_type_item et pas de correspondance dans la table ref_correspondance_ref_eqp"::equals));
}
@Test
void importOperationNonIT_with_TypeNotInRefType_shouldNotReturnError() {
OperationNonIT eq1 = OperationNonIT.builder() OperationNonIT eq1 = OperationNonIT.builder()
.nomItemNonIT("Batiment_datacenter_St_Malo") .nomItemNonIT("Batiment_datacenter_St_Malo")
.quantite(1.0) .quantite(1.0)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment