From 6d5b55fc1030504cdefb38337c3187c9e1726a12 Mon Sep 17 00:00:00 2001 From: PEDSF Date: Wed, 7 Oct 2020 19:40:58 +0200 Subject: [PATCH] Implements DTOs and Services --- .../petclinic/controller/OwnerController.java | 1 + .../petclinic/controller/PetController.java | 3 +- .../petclinic/controller/VetController.java | 1 - .../petclinic/controller/VisitController.java | 5 ++- .../samples/petclinic/dto/BaseDTO.java | 5 +-- .../samples/petclinic/dto/NamedDTO.java | 5 ++- .../samples/petclinic/dto/OwnerDTO.java | 2 +- .../samples/petclinic/dto/PersonDTO.java | 2 ++ .../samples/petclinic/dto/PetDTO.java | 7 ++-- .../petclinic/repository/VetRepository.java | 3 +- .../petclinic/repository/VisitRepository.java | 3 +- .../petclinic/service/BaseService.java | 7 +++- .../petclinic/service/OwnerService.java | 8 +++-- .../samples/petclinic/service/PetService.java | 9 ++--- .../petclinic/service/PetTypeService.java | 11 +++--- .../petclinic/service/SpecialityService.java | 6 ++-- .../samples/petclinic/service/VetService.java | 8 ++--- .../petclinic/service/VisitService.java | 10 +++--- .../OwnerControllerTests.java | 34 ++++++++++--------- .../PetControllerTests.java | 27 +++++++++++---- .../VetControllerTests.java | 15 ++++---- .../VisitControllerTests.java | 14 ++++---- .../petclinic/service/ClinicServiceTests.java | 8 ++--- 23 files changed, 111 insertions(+), 83 deletions(-) rename src/test/java/org/springframework/samples/petclinic/{owner => controller}/OwnerControllerTests.java (90%) rename src/test/java/org/springframework/samples/petclinic/{owner => controller}/PetControllerTests.java (80%) mode change 100755 => 100644 rename src/test/java/org/springframework/samples/petclinic/{vet => controller}/VetControllerTests.java (86%) rename src/test/java/org/springframework/samples/petclinic/{owner => controller}/VisitControllerTests.java (86%) diff --git a/src/main/java/org/springframework/samples/petclinic/controller/OwnerController.java b/src/main/java/org/springframework/samples/petclinic/controller/OwnerController.java index 35ac779e1..47ab04ad2 100644 --- a/src/main/java/org/springframework/samples/petclinic/controller/OwnerController.java +++ b/src/main/java/org/springframework/samples/petclinic/controller/OwnerController.java @@ -45,6 +45,7 @@ class OwnerController { private static final String VIEWS_OWNER_CREATE_OR_UPDATE_FORM = "owners/createOrUpdateOwnerForm"; private final OwnerService ownerService; + private final VisitService visitService; OwnerController(OwnerService ownerService, VisitService visitService) { diff --git a/src/main/java/org/springframework/samples/petclinic/controller/PetController.java b/src/main/java/org/springframework/samples/petclinic/controller/PetController.java index b8f6b945b..64f3f5512 100644 --- a/src/main/java/org/springframework/samples/petclinic/controller/PetController.java +++ b/src/main/java/org/springframework/samples/petclinic/controller/PetController.java @@ -45,7 +45,9 @@ class PetController { private static final String VIEWS_PETS_CREATE_OR_UPDATE_FORM = "pets/createOrUpdatePetForm"; private final OwnerService ownerService; + private final PetService petService; + private final PetTypeService petTypeService; PetController(OwnerService ownerService, PetService petService, PetTypeService petTypeService) { @@ -54,7 +56,6 @@ class PetController { this.petTypeService = petTypeService; } - @ModelAttribute("types") public Collection populatePetTypes() { return this.petTypeService.findPetTypes(); diff --git a/src/main/java/org/springframework/samples/petclinic/controller/VetController.java b/src/main/java/org/springframework/samples/petclinic/controller/VetController.java index 9ace51d26..d3ae53e29 100644 --- a/src/main/java/org/springframework/samples/petclinic/controller/VetController.java +++ b/src/main/java/org/springframework/samples/petclinic/controller/VetController.java @@ -40,7 +40,6 @@ class VetController { this.vetService = vetService; } - @GetMapping("/vets.html") public String showVetList(Map model) { // Here we are returning an object of type 'Vets' rather than a collection of Vet diff --git a/src/main/java/org/springframework/samples/petclinic/controller/VisitController.java b/src/main/java/org/springframework/samples/petclinic/controller/VisitController.java index dd8bc1330..c7dc9dc9f 100644 --- a/src/main/java/org/springframework/samples/petclinic/controller/VisitController.java +++ b/src/main/java/org/springframework/samples/petclinic/controller/VisitController.java @@ -23,7 +23,6 @@ import org.springframework.samples.petclinic.dto.PetDTO; import org.springframework.samples.petclinic.dto.VisitDTO; import org.springframework.samples.petclinic.service.PetService; import org.springframework.samples.petclinic.service.VisitService; -import org.springframework.samples.petclinic.visit.Visit; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.web.bind.WebDataBinder; @@ -45,6 +44,7 @@ import org.springframework.web.bind.annotation.PostMapping; class VisitController { private final VisitService visitService; + private final PetService petService; VisitController(VisitService visitService, PetService petService) { @@ -52,7 +52,6 @@ class VisitController { this.petService = petService; } - @InitBinder public void setAllowedFields(WebDataBinder dataBinder) { dataBinder.setDisallowedFields("id"); @@ -62,7 +61,7 @@ class VisitController { * Called before each and every @RequestMapping annotated method. 2 goals: - Make sure * we always have fresh data - Since we do not use the session scope, make sure that * Pet object always has an id (Even though id is not part of the form fields) - * @param petId + * @param petId Pet identification * @return Pet */ @ModelAttribute("visit") diff --git a/src/main/java/org/springframework/samples/petclinic/dto/BaseDTO.java b/src/main/java/org/springframework/samples/petclinic/dto/BaseDTO.java index 1aa04af7a..eb08fa003 100644 --- a/src/main/java/org/springframework/samples/petclinic/dto/BaseDTO.java +++ b/src/main/java/org/springframework/samples/petclinic/dto/BaseDTO.java @@ -18,8 +18,8 @@ package org.springframework.samples.petclinic.dto; import java.io.Serializable; /** - * Simple Data Transfert Object with an id property. Used as a base class for DTO - * needing this property. + * Simple Data Transfert Object with an id property. Used as a base class for DTO needing + * this property. * * @author Paul-Emmanuel DOS SANTOS FACAO */ @@ -38,4 +38,5 @@ public class BaseDTO implements Serializable { public boolean isNew() { return this.id == null; } + } diff --git a/src/main/java/org/springframework/samples/petclinic/dto/NamedDTO.java b/src/main/java/org/springframework/samples/petclinic/dto/NamedDTO.java index 345a192e2..29ce3830e 100644 --- a/src/main/java/org/springframework/samples/petclinic/dto/NamedDTO.java +++ b/src/main/java/org/springframework/samples/petclinic/dto/NamedDTO.java @@ -15,10 +15,9 @@ */ package org.springframework.samples.petclinic.dto; - /** - * Simple Data Transfert Object with a name property to BaseDTO. Used as - * a base class for DTOs needing these properties. + * Simple Data Transfert Object with a name property to BaseDTO. Used as a + * base class for DTOs needing these properties. * * @author Paul-Emmanuel DOS SANTOS FACAO */ diff --git a/src/main/java/org/springframework/samples/petclinic/dto/OwnerDTO.java b/src/main/java/org/springframework/samples/petclinic/dto/OwnerDTO.java index c6bd4225e..79ad5b660 100644 --- a/src/main/java/org/springframework/samples/petclinic/dto/OwnerDTO.java +++ b/src/main/java/org/springframework/samples/petclinic/dto/OwnerDTO.java @@ -73,7 +73,7 @@ public class OwnerDTO extends PersonDTO { return this.pets; } - protected void setPetsInternal(Set pets) { + public void setPetsInternal(Set pets) { this.pets = pets; } diff --git a/src/main/java/org/springframework/samples/petclinic/dto/PersonDTO.java b/src/main/java/org/springframework/samples/petclinic/dto/PersonDTO.java index 44d4f1faf..963341601 100644 --- a/src/main/java/org/springframework/samples/petclinic/dto/PersonDTO.java +++ b/src/main/java/org/springframework/samples/petclinic/dto/PersonDTO.java @@ -26,6 +26,7 @@ public class PersonDTO extends BaseDTO { @NotEmpty private String firstName; + @NotEmpty private String lastName; @@ -44,4 +45,5 @@ public class PersonDTO extends BaseDTO { public void setLastName(String lastName) { this.lastName = lastName; } + } diff --git a/src/main/java/org/springframework/samples/petclinic/dto/PetDTO.java b/src/main/java/org/springframework/samples/petclinic/dto/PetDTO.java index a5000e27a..af838e665 100644 --- a/src/main/java/org/springframework/samples/petclinic/dto/PetDTO.java +++ b/src/main/java/org/springframework/samples/petclinic/dto/PetDTO.java @@ -18,7 +18,6 @@ package org.springframework.samples.petclinic.dto; import org.springframework.beans.support.MutableSortDefinition; import org.springframework.beans.support.PropertyComparator; import org.springframework.format.annotation.DateTimeFormat; -import org.springframework.samples.petclinic.owner.PetType; import java.time.LocalDate; import java.util.*; @@ -33,7 +32,7 @@ public class PetDTO extends NamedDTO { @DateTimeFormat(pattern = "yyyy-MM-dd") private LocalDate birthDate; - private PetType type; + private PetTypeDTO type; private OwnerDTO owner; @@ -47,11 +46,11 @@ public class PetDTO extends NamedDTO { return this.birthDate; } - public PetType getType() { + public PetTypeDTO getType() { return this.type; } - public void setType(PetType type) { + public void setType(PetTypeDTO type) { this.type = type; } diff --git a/src/main/java/org/springframework/samples/petclinic/repository/VetRepository.java b/src/main/java/org/springframework/samples/petclinic/repository/VetRepository.java index a6eb67935..4d35b2428 100644 --- a/src/main/java/org/springframework/samples/petclinic/repository/VetRepository.java +++ b/src/main/java/org/springframework/samples/petclinic/repository/VetRepository.java @@ -18,7 +18,6 @@ package org.springframework.samples.petclinic.repository; import java.util.Collection; import org.springframework.cache.annotation.Cacheable; -import org.springframework.dao.DataAccessException; import org.springframework.data.repository.Repository; import org.springframework.samples.petclinic.vet.Vet; import org.springframework.transaction.annotation.Transactional; @@ -42,6 +41,6 @@ public interface VetRepository extends Repository { */ @Transactional(readOnly = true) @Cacheable("vets") - Collection findAll() throws DataAccessException; + Collection findAll(); } diff --git a/src/main/java/org/springframework/samples/petclinic/repository/VisitRepository.java b/src/main/java/org/springframework/samples/petclinic/repository/VisitRepository.java index 5b680916f..e1b5fe7d5 100644 --- a/src/main/java/org/springframework/samples/petclinic/repository/VisitRepository.java +++ b/src/main/java/org/springframework/samples/petclinic/repository/VisitRepository.java @@ -17,7 +17,6 @@ package org.springframework.samples.petclinic.repository; import java.util.List; -import org.springframework.dao.DataAccessException; import org.springframework.data.repository.Repository; import org.springframework.samples.petclinic.model.BaseEntity; import org.springframework.samples.petclinic.visit.Visit; @@ -40,7 +39,7 @@ public interface VisitRepository extends Repository { * @param visit the Visit to save * @see BaseEntity#isNew */ - void save(Visit visit) throws DataAccessException; + void save(Visit visit); List findByPetId(Integer petId); diff --git a/src/main/java/org/springframework/samples/petclinic/service/BaseService.java b/src/main/java/org/springframework/samples/petclinic/service/BaseService.java index 93e3a2db8..40e0cc1f5 100644 --- a/src/main/java/org/springframework/samples/petclinic/service/BaseService.java +++ b/src/main/java/org/springframework/samples/petclinic/service/BaseService.java @@ -2,9 +2,14 @@ package org.springframework.samples.petclinic.service; import java.util.Collection; -public interface BaseService { +public interface BaseService { + public E dtoToEntity(D dto); + public D entityToDTO(E entity); + public Collection entitiesToDTOS(Collection entities); + public Collection dtosToEntities(Collection dtos); + } diff --git a/src/main/java/org/springframework/samples/petclinic/service/OwnerService.java b/src/main/java/org/springframework/samples/petclinic/service/OwnerService.java index fb3837b6a..12af7346c 100644 --- a/src/main/java/org/springframework/samples/petclinic/service/OwnerService.java +++ b/src/main/java/org/springframework/samples/petclinic/service/OwnerService.java @@ -10,9 +10,10 @@ import java.util.Collection; import java.util.HashSet; @Service("OwnerService") -public class OwnerService implements BaseService{ +public class OwnerService implements BaseService { private final OwnerRepository ownerRepository; + private final ModelMapper modelMapper = new ModelMapper(); public OwnerService(OwnerRepository ownerRepository) { @@ -33,7 +34,7 @@ public class OwnerService implements BaseService{ public Collection entitiesToDTOS(Collection entities) { Collection dtos = new HashSet<>(); - for(Owner entity: entities) { + for (Owner entity : entities) { dtos.add(entityToDTO(entity)); } @@ -44,7 +45,7 @@ public class OwnerService implements BaseService{ public Collection dtosToEntities(Collection dtos) { Collection entities = new HashSet<>(); - for(OwnerDTO dto: dtos) { + for (OwnerDTO dto : dtos) { entities.add(dtoToEntity(dto)); } @@ -65,4 +66,5 @@ public class OwnerService implements BaseService{ Owner owner = ownerRepository.findById(ownerId); return entityToDTO(owner); } + } diff --git a/src/main/java/org/springframework/samples/petclinic/service/PetService.java b/src/main/java/org/springframework/samples/petclinic/service/PetService.java index 117e60752..f64e13c42 100644 --- a/src/main/java/org/springframework/samples/petclinic/service/PetService.java +++ b/src/main/java/org/springframework/samples/petclinic/service/PetService.java @@ -10,8 +10,10 @@ import java.util.Collection; import java.util.HashSet; @Service("PetService") -public class PetService implements BaseService{ +public class PetService implements BaseService { + private final PetRepository petRepository; + private final ModelMapper modelMapper = new ModelMapper(); public PetService(PetRepository petRepository) { @@ -32,7 +34,7 @@ public class PetService implements BaseService{ public Collection entitiesToDTOS(Collection entities) { Collection dtos = new HashSet<>(); - for(Pet entity:entities) { + for (Pet entity : entities) { dtos.add(entityToDTO(entity)); } return dtos; @@ -42,7 +44,7 @@ public class PetService implements BaseService{ public Collection dtosToEntities(Collection dtos) { Collection entities = new HashSet<>(); - for(PetDTO dto: dtos) { + for (PetDTO dto : dtos) { entities.add(dtoToEntity(dto)); } @@ -60,4 +62,3 @@ public class PetService implements BaseService{ } } - diff --git a/src/main/java/org/springframework/samples/petclinic/service/PetTypeService.java b/src/main/java/org/springframework/samples/petclinic/service/PetTypeService.java index 7623d6cab..63ebbb1e4 100644 --- a/src/main/java/org/springframework/samples/petclinic/service/PetTypeService.java +++ b/src/main/java/org/springframework/samples/petclinic/service/PetTypeService.java @@ -10,8 +10,10 @@ import java.util.Collection; import java.util.HashSet; @Service("PerTypeService") -public class PetTypeService implements BaseService{ +public class PetTypeService implements BaseService { + private final PetRepository petRepository; + private final ModelMapper modelMapper = new ModelMapper(); public PetTypeService(PetRepository petRepository) { @@ -32,7 +34,7 @@ public class PetTypeService implements BaseService{ public Collection entitiesToDTOS(Collection entities) { Collection dtos = new HashSet<>(); - for(PetType entity : entities) { + for (PetType entity : entities) { dtos.add(entityToDTO(entity)); } @@ -43,16 +45,15 @@ public class PetTypeService implements BaseService{ public Collection dtosToEntities(Collection dtos) { Collection entities = new HashSet<>(); - for(PetTypeDTO dto: dtos) { + for (PetTypeDTO dto : dtos) { entities.add(dtoToEntity(dto)); } return entities; } - public Collection findPetTypes() { - Collection petTypes = petRepository.findPetTypes(); + Collection petTypes = petRepository.findPetTypes(); return entitiesToDTOS(petTypes); } diff --git a/src/main/java/org/springframework/samples/petclinic/service/SpecialityService.java b/src/main/java/org/springframework/samples/petclinic/service/SpecialityService.java index ec6810e6c..e4cb35291 100644 --- a/src/main/java/org/springframework/samples/petclinic/service/SpecialityService.java +++ b/src/main/java/org/springframework/samples/petclinic/service/SpecialityService.java @@ -10,6 +10,7 @@ import java.util.HashSet; @Service("SpecialityService") public class SpecialityService implements BaseService { + private final ModelMapper modelMapper = new ModelMapper(); @Override @@ -26,7 +27,7 @@ public class SpecialityService implements BaseService { public Collection entitiesToDTOS(Collection entities) { Collection dtos = new HashSet<>(); - for(Specialty entity:entities) { + for (Specialty entity : entities) { dtos.add(entityToDTO(entity)); } @@ -37,10 +38,11 @@ public class SpecialityService implements BaseService { public Collection dtosToEntities(Collection dtos) { Collection entities = new HashSet<>(); - for(SpecialtyDTO dto: dtos) { + for (SpecialtyDTO dto : dtos) { entities.add(dtoToEntity(dto)); } return entities; } + } diff --git a/src/main/java/org/springframework/samples/petclinic/service/VetService.java b/src/main/java/org/springframework/samples/petclinic/service/VetService.java index 75dcf53ba..18f6aac47 100644 --- a/src/main/java/org/springframework/samples/petclinic/service/VetService.java +++ b/src/main/java/org/springframework/samples/petclinic/service/VetService.java @@ -10,9 +10,10 @@ import java.util.Collection; import java.util.HashSet; @Service("VetService") -public class VetService implements BaseService{ +public class VetService implements BaseService { private final VetRepository vetRepository; + private final ModelMapper modelMapper = new ModelMapper(); public VetService(VetRepository vetRepository) { @@ -33,7 +34,7 @@ public class VetService implements BaseService{ public Collection entitiesToDTOS(Collection entities) { Collection dtos = new HashSet<>(); - for(Vet entity: entities) { + for (Vet entity : entities) { dtos.add(entityToDTO(entity)); } @@ -44,14 +45,13 @@ public class VetService implements BaseService{ public Collection dtosToEntities(Collection dtos) { Collection entities = new HashSet<>(); - for(VetDTO dto: dtos) { + for (VetDTO dto : dtos) { entities.add(dtoToEntity(dto)); } return entities; } - public Collection findAll() { Collection vets = vetRepository.findAll(); return entitiesToDTOS(vets); diff --git a/src/main/java/org/springframework/samples/petclinic/service/VisitService.java b/src/main/java/org/springframework/samples/petclinic/service/VisitService.java index f2e173a52..54ce4c6a5 100644 --- a/src/main/java/org/springframework/samples/petclinic/service/VisitService.java +++ b/src/main/java/org/springframework/samples/petclinic/service/VisitService.java @@ -10,9 +10,10 @@ import java.util.Collection; import java.util.HashSet; @Service("VisitService") -public class VisitService implements BaseService{ +public class VisitService implements BaseService { private final VisitRepository visitRepository; + private final ModelMapper modelMapper = new ModelMapper(); public VisitService(VisitRepository visitRepository) { @@ -33,7 +34,7 @@ public class VisitService implements BaseService{ public Collection entitiesToDTOS(Collection entities) { Collection dtos = new HashSet<>(); - for(Visit entity: entities) { + for (Visit entity : entities) { dtos.add(entityToDTO(entity)); } return dtos; @@ -43,7 +44,7 @@ public class VisitService implements BaseService{ public Collection dtosToEntities(Collection dtos) { Collection entities = new HashSet<>(); - for(VisitDTO dto: dtos) { + for (VisitDTO dto : dtos) { entities.add(dtoToEntity(dto)); } @@ -59,10 +60,11 @@ public class VisitService implements BaseService{ Collection visits = visitRepository.findByPetId(petId); Collection visitDTOS = new HashSet<>(); - for (Visit visit: visits) { + for (Visit visit : visits) { visitDTOS.add(entityToDTO(visit)); } return visitDTOS; } + } diff --git a/src/test/java/org/springframework/samples/petclinic/owner/OwnerControllerTests.java b/src/test/java/org/springframework/samples/petclinic/controller/OwnerControllerTests.java similarity index 90% rename from src/test/java/org/springframework/samples/petclinic/owner/OwnerControllerTests.java rename to src/test/java/org/springframework/samples/petclinic/controller/OwnerControllerTests.java index a41e16fc3..82fda30c4 100644 --- a/src/test/java/org/springframework/samples/petclinic/owner/OwnerControllerTests.java +++ b/src/test/java/org/springframework/samples/petclinic/controller/OwnerControllerTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.samples.petclinic.owner; +package org.springframework.samples.petclinic.controller; import java.time.LocalDate; import java.util.Collections; @@ -28,10 +28,12 @@ import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; import org.springframework.boot.test.mock.mockito.MockBean; -import org.springframework.samples.petclinic.controller.OwnerController; -import org.springframework.samples.petclinic.repository.OwnerRepository; -import org.springframework.samples.petclinic.visit.Visit; -import org.springframework.samples.petclinic.repository.VisitRepository; +import org.springframework.samples.petclinic.dto.OwnerDTO; +import org.springframework.samples.petclinic.dto.PetDTO; +import org.springframework.samples.petclinic.dto.PetTypeDTO; +import org.springframework.samples.petclinic.dto.VisitDTO; +import org.springframework.samples.petclinic.service.OwnerService; +import org.springframework.samples.petclinic.service.VisitService; import org.springframework.test.web.servlet.MockMvc; import static org.hamcrest.Matchers.empty; @@ -59,24 +61,24 @@ class OwnerControllerTests { private MockMvc mockMvc; @MockBean - private OwnerRepository owners; + private OwnerService owners; @MockBean - private VisitRepository visits; + private VisitService visits; - private Owner george; + private OwnerDTO george; @BeforeEach void setup() { - george = new Owner(); + george = new OwnerDTO(); george.setId(TEST_OWNER_ID); george.setFirstName("George"); george.setLastName("Franklin"); george.setAddress("110 W. Liberty St."); george.setCity("Madison"); george.setTelephone("6085551023"); - Pet max = new Pet(); - PetType dog = new PetType(); + PetDTO max = new PetDTO(); + PetTypeDTO dog = new PetTypeDTO(); dog.setName("dog"); max.setId(1); max.setType(dog); @@ -84,7 +86,7 @@ class OwnerControllerTests { max.setBirthDate(LocalDate.now()); george.setPetsInternal(Collections.singleton(max)); given(this.owners.findById(TEST_OWNER_ID)).willReturn(george); - Visit visit = new Visit(); + VisitDTO visit = new VisitDTO(); visit.setDate(LocalDate.now()); given(this.visits.findByPetId(max.getId())).willReturn(Collections.singletonList(visit)); } @@ -120,7 +122,7 @@ class OwnerControllerTests { @Test void testProcessFindFormSuccess() throws Exception { - given(this.owners.findByLastName("")).willReturn(Lists.newArrayList(george, new Owner())); + given(this.owners.findByLastName("")).willReturn(Lists.newArrayList(george, new OwnerDTO())); mockMvc.perform(get("/owners")).andExpect(status().isOk()).andExpect(view().name("owners/ownersList")); } @@ -178,13 +180,13 @@ class OwnerControllerTests { .andExpect(model().attribute("owner", hasProperty("city", is("Madison")))) .andExpect(model().attribute("owner", hasProperty("telephone", is("6085551023")))) .andExpect(model().attribute("owner", hasProperty("pets", not(empty())))) - .andExpect(model().attribute("owner", hasProperty("pets", new BaseMatcher>() { + .andExpect(model().attribute("owner", hasProperty("pets", new BaseMatcher>() { @Override public boolean matches(Object item) { @SuppressWarnings("unchecked") - List pets = (List) item; - Pet pet = pets.get(0); + List pets = (List) item; + PetDTO pet = pets.get(0); if (pet.getVisits().isEmpty()) { return false; } diff --git a/src/test/java/org/springframework/samples/petclinic/owner/PetControllerTests.java b/src/test/java/org/springframework/samples/petclinic/controller/PetControllerTests.java old mode 100755 new mode 100644 similarity index 80% rename from src/test/java/org/springframework/samples/petclinic/owner/PetControllerTests.java rename to src/test/java/org/springframework/samples/petclinic/controller/PetControllerTests.java index 2523e6101..5594d7ec7 --- a/src/test/java/org/springframework/samples/petclinic/owner/PetControllerTests.java +++ b/src/test/java/org/springframework/samples/petclinic/controller/PetControllerTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.samples.petclinic.owner; +package org.springframework.samples.petclinic.controller; import static org.mockito.BDDMockito.given; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; @@ -32,8 +32,18 @@ import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.FilterType; import org.springframework.samples.petclinic.controller.PetController; +import org.springframework.samples.petclinic.dto.OwnerDTO; +import org.springframework.samples.petclinic.dto.PetDTO; +import org.springframework.samples.petclinic.dto.PetTypeDTO; +import org.springframework.samples.petclinic.owner.Owner; +import org.springframework.samples.petclinic.owner.Pet; +import org.springframework.samples.petclinic.owner.PetType; +import org.springframework.samples.petclinic.owner.PetTypeFormatter; import org.springframework.samples.petclinic.repository.OwnerRepository; import org.springframework.samples.petclinic.repository.PetRepository; +import org.springframework.samples.petclinic.service.OwnerService; +import org.springframework.samples.petclinic.service.PetService; +import org.springframework.samples.petclinic.service.PetTypeService; import org.springframework.test.web.servlet.MockMvc; /** @@ -53,19 +63,22 @@ class PetControllerTests { private MockMvc mockMvc; @MockBean - private PetRepository pets; + private PetService petService; @MockBean - private OwnerRepository owners; + private PetTypeService petTypeService; + + @MockBean + private OwnerService ownerService; @BeforeEach void setup() { - PetType cat = new PetType(); + PetTypeDTO cat = new PetTypeDTO(); cat.setId(3); cat.setName("hamster"); - given(this.pets.findPetTypes()).willReturn(Lists.newArrayList(cat)); - given(this.owners.findById(TEST_OWNER_ID)).willReturn(new Owner()); - given(this.pets.findById(TEST_PET_ID)).willReturn(new Pet()); + given(this.petTypeService.findPetTypes()).willReturn(Lists.newArrayList(cat)); + given(this.ownerService.findById(TEST_OWNER_ID)).willReturn(new OwnerDTO()); + given(this.petService.findById(TEST_PET_ID)).willReturn(new PetDTO()); } diff --git a/src/test/java/org/springframework/samples/petclinic/vet/VetControllerTests.java b/src/test/java/org/springframework/samples/petclinic/controller/VetControllerTests.java similarity index 86% rename from src/test/java/org/springframework/samples/petclinic/vet/VetControllerTests.java rename to src/test/java/org/springframework/samples/petclinic/controller/VetControllerTests.java index 1488ff611..e1bdd5ad0 100644 --- a/src/test/java/org/springframework/samples/petclinic/vet/VetControllerTests.java +++ b/src/test/java/org/springframework/samples/petclinic/controller/VetControllerTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.samples.petclinic.vet; +package org.springframework.samples.petclinic.controller; import static org.mockito.BDDMockito.given; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; @@ -31,8 +31,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.http.MediaType; -import org.springframework.samples.petclinic.controller.VetController; -import org.springframework.samples.petclinic.repository.VetRepository; +import org.springframework.samples.petclinic.dto.VetDTO; +import org.springframework.samples.petclinic.service.VetService; +import org.springframework.samples.petclinic.vet.Specialty; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.ResultActions; @@ -46,15 +47,15 @@ class VetControllerTests { private MockMvc mockMvc; @MockBean - private VetRepository vets; + private VetService vetService; @BeforeEach void setup() { - Vet james = new Vet(); + VetDTO james = new VetDTO(); james.setFirstName("James"); james.setLastName("Carter"); james.setId(1); - Vet helen = new Vet(); + VetDTO helen = new VetDTO(); helen.setFirstName("Helen"); helen.setLastName("Leary"); helen.setId(2); @@ -62,7 +63,7 @@ class VetControllerTests { radiology.setId(1); radiology.setName("radiology"); helen.addSpecialty(radiology); - given(this.vets.findAll()).willReturn(Lists.newArrayList(james, helen)); + given(this.vetService.findAll()).willReturn(Lists.newArrayList(james, helen)); } @Test diff --git a/src/test/java/org/springframework/samples/petclinic/owner/VisitControllerTests.java b/src/test/java/org/springframework/samples/petclinic/controller/VisitControllerTests.java similarity index 86% rename from src/test/java/org/springframework/samples/petclinic/owner/VisitControllerTests.java rename to src/test/java/org/springframework/samples/petclinic/controller/VisitControllerTests.java index 86355cb4f..eec30afb8 100644 --- a/src/test/java/org/springframework/samples/petclinic/owner/VisitControllerTests.java +++ b/src/test/java/org/springframework/samples/petclinic/controller/VisitControllerTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.samples.petclinic.owner; +package org.springframework.samples.petclinic.controller; import static org.mockito.BDDMockito.given; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; @@ -28,9 +28,9 @@ import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; import org.springframework.boot.test.mock.mockito.MockBean; -import org.springframework.samples.petclinic.controller.VisitController; -import org.springframework.samples.petclinic.repository.PetRepository; -import org.springframework.samples.petclinic.repository.VisitRepository; +import org.springframework.samples.petclinic.dto.PetDTO; +import org.springframework.samples.petclinic.service.PetService; +import org.springframework.samples.petclinic.service.VisitService; import org.springframework.test.web.servlet.MockMvc; /** @@ -47,14 +47,14 @@ class VisitControllerTests { private MockMvc mockMvc; @MockBean - private VisitRepository visits; + private VisitService visitService; @MockBean - private PetRepository pets; + private PetService petService; @BeforeEach void init() { - given(this.pets.findById(TEST_PET_ID)).willReturn(new Pet()); + given(this.petService.findById(TEST_PET_ID)).willReturn(new PetDTO()); } @Test diff --git a/src/test/java/org/springframework/samples/petclinic/service/ClinicServiceTests.java b/src/test/java/org/springframework/samples/petclinic/service/ClinicServiceTests.java index a5849fb44..c2cf0742c 100644 --- a/src/test/java/org/springframework/samples/petclinic/service/ClinicServiceTests.java +++ b/src/test/java/org/springframework/samples/petclinic/service/ClinicServiceTests.java @@ -112,10 +112,10 @@ class ClinicServiceTests { owner.setCity("Wollongong"); owner.setTelephone("4444444444"); this.owners.save(owner); - assertThat(owner.getId().longValue()).isNotEqualTo(0); + assertThat(owner.getId().longValue()).isNotZero(); owners = this.owners.findByLastName("Schultz"); - assertThat(owners.size()).isEqualTo(found + 1); + assertThat(owners).hasSize(found + 1); } @Test @@ -176,7 +176,7 @@ class ClinicServiceTests { @Test @Transactional - void shouldUpdatePetName() throws Exception { + void shouldUpdatePetName() { Pet pet7 = this.pets.findById(7); String oldName = pet7.getName(); @@ -216,7 +216,7 @@ class ClinicServiceTests { } @Test - void shouldFindVisitsByPetId() throws Exception { + void shouldFindVisitsByPetId() { Collection visits = this.visits.findByPetId(7); assertThat(visits).hasSize(2); Visit[] visitArr = visits.toArray(new Visit[visits.size()]);