diff --git a/src/main/java/fr/iut_fbleau/but3/dev62/mylibrary/commande/converter/CommandeConverter.java b/src/main/java/fr/iut_fbleau/but3/dev62/mylibrary/commande/converter/CommandeConverter.java index f798a6e..d5ecd27 100644 --- a/src/main/java/fr/iut_fbleau/but3/dev62/mylibrary/commande/converter/CommandeConverter.java +++ b/src/main/java/fr/iut_fbleau/but3/dev62/mylibrary/commande/converter/CommandeConverter.java @@ -41,4 +41,15 @@ public final class CommandeConverter { .build(); } + public static CommandeDTO toDTO(Commande commande) { + return CommandeDTO.builder() + .lignesCommande(commande.getLignesCommande()) + .rue(commande.getRue()) + .ville(commande.getVille()) + .codePostal(commande.getCodePostal()) + .pays(commande.getPays()) + .modePaiement(commande.getModePaiement()) + .build(); + } + } diff --git a/src/main/java/fr/iut_fbleau/but3/dev62/mylibrary/commande/usecase/CommandeUseCase.java b/src/main/java/fr/iut_fbleau/but3/dev62/mylibrary/commande/usecase/CommandeUseCase.java new file mode 100644 index 0000000..b94841d --- /dev/null +++ b/src/main/java/fr/iut_fbleau/but3/dev62/mylibrary/commande/usecase/CommandeUseCase.java @@ -0,0 +1,41 @@ +package fr.iut_fbleau.but3.dev62.mylibrary.commande.usecase; + +import fr.iut_fbleau.but3.dev62.mylibrary.book.BookDTO; +import fr.iut_fbleau.but3.dev62.mylibrary.book.converter.BookConverter; +import fr.iut_fbleau.but3.dev62.mylibrary.book.entity.Book; +import fr.iut_fbleau.but3.dev62.mylibrary.commande.AdresseInfo; +import fr.iut_fbleau.but3.dev62.mylibrary.commande.CommandeDTO; +import fr.iut_fbleau.but3.dev62.mylibrary.commande.CommandeInfo; +import fr.iut_fbleau.but3.dev62.mylibrary.commande.converter.CommandeConverter; +import fr.iut_fbleau.but3.dev62.mylibrary.commande.entity.Commande; +import fr.iut_fbleau.but3.dev62.mylibrary.commande.repository.CommandeRepository; +import fr.iut_fbleau.but3.dev62.mylibrary.commande.validator.CommandeValidator; + +import java.util.Optional; +import java.util.UUID; + +public class CommandeUseCase { + + private final CommandeRepository commandeRepository; + + public CommandeUseCase(CommandeRepository commandeRepository) { + this.commandeRepository = commandeRepository; + } + + + public UUID registerCommande(CommandeInfo validCommandeInfo, AdresseInfo validAdresseInfo){ + CommandeValidator.validate(validCommandeInfo); + CommandeValidator.validate(validAdresseInfo); + + Commande commandeToRegister = CommandeConverter.toDomain(validCommandeInfo,validAdresseInfo); + Commande commandeToRegistered = commandeRepository.save(commandeToRegister) ; + return commandeToRegistered.getCommandeId(); + + } + + public Optional findCommandByUUID(UUID uuid) { + Optional optionalCommande = commandeRepository.findById(uuid); + return optionalCommande.map(CommandeConverter::toDTO); + } + +} diff --git a/src/test/java/fr/iut_fbleau/but3/dev62/mylibrary/commande/usecase/TestCommandeUseCase.java b/src/test/java/fr/iut_fbleau/but3/dev62/mylibrary/commande/usecase/TestCommandeUseCase.java index 85df19a..c0c224b 100644 --- a/src/test/java/fr/iut_fbleau/but3/dev62/mylibrary/commande/usecase/TestCommandeUseCase.java +++ b/src/test/java/fr/iut_fbleau/but3/dev62/mylibrary/commande/usecase/TestCommandeUseCase.java @@ -2,10 +2,7 @@ package fr.iut_fbleau.but3.dev62.mylibrary.commande.usecase; import fr.iut_fbleau.but3.dev62.mylibrary.book.BookDTO; import fr.iut_fbleau.but3.dev62.mylibrary.book.entity.Book; -import fr.iut_fbleau.but3.dev62.mylibrary.commande.AdresseInfo; -import fr.iut_fbleau.but3.dev62.mylibrary.commande.CommandeInfo; -import fr.iut_fbleau.but3.dev62.mylibrary.commande.LigneCommandeInfo; -import fr.iut_fbleau.but3.dev62.mylibrary.commande.ModePaiement; +import fr.iut_fbleau.but3.dev62.mylibrary.commande.*; import fr.iut_fbleau.but3.dev62.mylibrary.commande.entity.Commande; import fr.iut_fbleau.but3.dev62.mylibrary.commande.exception.NotValidCommandeException; import fr.iut_fbleau.but3.dev62.mylibrary.commande.repository.CommandeRepository; @@ -117,10 +114,10 @@ public class TestCommandeUseCase { void testFindCommandByUUID() { when(commandeRepository.findById(testCommande.getCommandeId())).thenReturn(Optional.of(testCommande)); - Optional foundCommande = commandeUseCase.findCommandByUUID(testCommande.getCommandeId()); + Optional foundCommande = commandeUseCase.findCommandByUUID(testCommande.getCommandeId()); assertTrue(foundCommande.isPresent()); - assertEquals(testCommande.getCommandeId(), foundCommande.get().getIsbn()); + assertEquals(testCommande.getCommandeId(), foundCommande.get().getCommandeId()); verify(commandeRepository, times(1)).findById(testCommande.getCommandeId()); } @@ -131,7 +128,7 @@ public class TestCommandeUseCase { UUID uuid = UUID.randomUUID(); when(commandeRepository.findById(uuid)).thenReturn(Optional.empty()); - Optional foundCommande = commandeUseCase.findCommandByUUID(uuid); + Optional foundCommande = commandeUseCase.findCommandByUUID(uuid); assertTrue(foundCommande.isEmpty()); verify(commandeRepository, times(1)).findById(uuid);