diff --git a/cadastral/pom.xml b/cadastral/pom.xml index 3a09d9fd..b85a67f9 100644 --- a/cadastral/pom.xml +++ b/cadastral/pom.xml @@ -89,6 +89,10 @@ org.springframework.boot spring-boot-starter-data-mongodb + + jakarta.validation + jakarta.validation-api + diff --git a/cadastral/src/main/java/com/unipampa/crud/dto/AccommodationDTO.java b/cadastral/src/main/java/com/unipampa/crud/dto/AccommodationDTO.java index d4ec7ac2..fc4f98f4 100644 --- a/cadastral/src/main/java/com/unipampa/crud/dto/AccommodationDTO.java +++ b/cadastral/src/main/java/com/unipampa/crud/dto/AccommodationDTO.java @@ -1,22 +1,24 @@ package com.unipampa.crud.dto; import com.unipampa.crud.enums.AccommodationType; -import lombok.Data; - -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; import java.math.BigDecimal; +import java.util.List; public record AccommodationDTO( + String id, @NotBlank String title, String neighborhood, String codAddress, @NotNull String city, @NotBlank String description, - String adress, + String address, @NotBlank String state, - @NotBlank BigDecimal price, - int number, - @NotNull int imageQuantity, - @NotNull AccommodationType accommodationType + @NotNull BigDecimal price, + int streetNumber, + @NotNull Integer imageQuantity, + @NotNull AccommodationType accommodationType, + @NotNull Integer maxOccupancy, + List imagesUrls ) {} diff --git a/cadastral/src/main/java/com/unipampa/crud/dto/AccommodationRequestDTO.java b/cadastral/src/main/java/com/unipampa/crud/dto/AccommodationRequestDTO.java new file mode 100644 index 00000000..4c714479 --- /dev/null +++ b/cadastral/src/main/java/com/unipampa/crud/dto/AccommodationRequestDTO.java @@ -0,0 +1,24 @@ +package com.unipampa.crud.dto; + +import com.unipampa.crud.enums.AccommodationType; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; + +import java.math.BigDecimal; +import java.util.List; + +public record AccommodationRequestDTO( + @NotBlank String title, + String neighborhood, + String codAddress, + @NotNull String city, + @NotBlank String description, + String address, + @NotBlank String state, + @NotNull BigDecimal price, + int streetNumber, + @NotNull Integer imageQuantity, + @NotNull AccommodationType accommodationType, + @NotNull Integer maxOccupancy, + List imagesUrls +) {} diff --git a/cadastral/src/main/java/com/unipampa/crud/dto/ErrorResponse.java b/cadastral/src/main/java/com/unipampa/crud/dto/ErrorResponse.java new file mode 100644 index 00000000..c64cb003 --- /dev/null +++ b/cadastral/src/main/java/com/unipampa/crud/dto/ErrorResponse.java @@ -0,0 +1,5 @@ +package com.unipampa.crud.dto; + +import java.time.LocalDateTime; + +public record ErrorResponse(String message, LocalDateTime timestamp) { } diff --git a/cadastral/src/main/java/com/unipampa/crud/dto/UserDTO.java b/cadastral/src/main/java/com/unipampa/crud/dto/UserDTO.java index b9f19a7c..5d68849b 100644 --- a/cadastral/src/main/java/com/unipampa/crud/dto/UserDTO.java +++ b/cadastral/src/main/java/com/unipampa/crud/dto/UserDTO.java @@ -3,7 +3,7 @@ import com.unipampa.crud.enums.UserType; import lombok.Data; -import javax.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotBlank; public record UserDTO( @NotBlank String email, diff --git a/cadastral/src/main/java/com/unipampa/crud/entities/Accommodation.java b/cadastral/src/main/java/com/unipampa/crud/entities/Accommodation.java index c3d5ddfb..7120c821 100644 --- a/cadastral/src/main/java/com/unipampa/crud/entities/Accommodation.java +++ b/cadastral/src/main/java/com/unipampa/crud/entities/Accommodation.java @@ -7,6 +7,7 @@ import org.springframework.data.annotation.Id; import java.math.BigDecimal; +import java.util.List; @Builder @Document @@ -18,20 +19,21 @@ public class Accommodation { private String title; private String description; private BigDecimal price; - private String imagesUrl; - private int numberRoooms; - private int numberBathrooms; - private boolean acceptsAnimals; - private boolean acceptsChildren; - private boolean sharedHosting; - private boolean authorizedAnnouncement; - private AccommodationType accommodationType; + private List imagesUrls; + private int roomCount; + private int bathroomCount; + private boolean allowsPets; + private boolean allowsChildren; + private boolean isSharedHosting; + private boolean isAuthorizedAnnouncement; + private AccommodationType type; private String city; private String neighborhood; - private int number; + private int streetNumber; private String zipCode; private String address; private String state; - private int imageQuantity; + private int imageCount; + private int maxOccupancy; } diff --git a/cadastral/src/main/java/com/unipampa/crud/mappers/AccommodationMapper.java b/cadastral/src/main/java/com/unipampa/crud/mappers/AccommodationMapper.java new file mode 100644 index 00000000..dc3d39f5 --- /dev/null +++ b/cadastral/src/main/java/com/unipampa/crud/mappers/AccommodationMapper.java @@ -0,0 +1,29 @@ +package com.unipampa.crud.mappers; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.unipampa.crud.dto.AccommodationDTO; +import com.unipampa.crud.dto.AccommodationRequestDTO; +import com.unipampa.crud.entities.Accommodation; +import org.springframework.stereotype.Component; + +@Component +public class AccommodationMapper { + + private final ObjectMapper objectMapper; + + public AccommodationMapper(ObjectMapper objectMapper) { + this.objectMapper = objectMapper; + } + + public Accommodation toEntity(AccommodationDTO dto) { + return objectMapper.convertValue(dto, Accommodation.class); + } + + public Accommodation toEntity(AccommodationRequestDTO requestDTO) { + return objectMapper.convertValue(requestDTO, Accommodation.class); + } + + public AccommodationDTO toDTO(Accommodation entity) { + return objectMapper.convertValue(entity, AccommodationDTO.class); + } +} diff --git a/cadastral/src/main/java/com/unipampa/crud/repository/AccommodationRepository.java b/cadastral/src/main/java/com/unipampa/crud/repository/AccommodationRepository.java index 9056a44c..b8477338 100644 --- a/cadastral/src/main/java/com/unipampa/crud/repository/AccommodationRepository.java +++ b/cadastral/src/main/java/com/unipampa/crud/repository/AccommodationRepository.java @@ -5,7 +5,7 @@ public interface AccommodationRepository extends MongoRepository { - boolean existsByZipCodeAndNumber(String codeAddress, int number); + boolean existsByZipCodeAndStreetNumber(String codeAddress, int streetNumber); } diff --git a/cadastral/src/main/java/com/unipampa/crud/resources/AccommodationResource.java b/cadastral/src/main/java/com/unipampa/crud/resources/AccommodationResource.java index 55f57494..b6b919c2 100644 --- a/cadastral/src/main/java/com/unipampa/crud/resources/AccommodationResource.java +++ b/cadastral/src/main/java/com/unipampa/crud/resources/AccommodationResource.java @@ -1,11 +1,15 @@ package com.unipampa.crud.resources; -import com.fasterxml.jackson.databind.ObjectMapper; import com.unipampa.crud.dto.AccommodationDTO; +import com.unipampa.crud.dto.AccommodationRequestDTO; +import com.unipampa.crud.dto.ErrorResponse; import com.unipampa.crud.entities.Accommodation; +import com.unipampa.crud.mappers.AccommodationMapper; import com.unipampa.crud.service.AccommodationService; import com.unipampa.crud.validations.ValidationsRegisterAccommodation; import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.responses.ApiResponses; import org.springframework.beans.factory.annotation.Autowired; @@ -13,100 +17,141 @@ import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; +import java.net.URI; +import java.time.LocalDateTime; import java.util.List; import java.util.Optional; +import java.util.stream.Collectors; @RestController @RequestMapping("/accommodations") public class AccommodationResource { - @Autowired - private AccommodationService accommodationService; - - @Autowired - private ObjectMapper mapper; - - @Autowired - private List validations; - - @PostMapping - @Operation(summary = "Salva uma acomodação)") - @ApiResponses(value = { - @ApiResponse(responseCode = "200", description = "Recurso salvo com sucesso!" ) - }) - public ResponseEntity save(@RequestBody AccommodationDTO accommodationDTO) { - - validations.forEach(e -> e.validate(accommodationDTO)); - - var accommodation = mapper.convertValue(accommodationDTO, Accommodation.class); - accommodationService.save(accommodation); - return ResponseEntity.status(HttpStatus.OK).body(accommodation); - } - - @GetMapping - @Operation(summary = "Retorna uma lista com todas as acomodações") - public ResponseEntity> findAll() { - List accommodations = accommodationService.findAll(); - return ResponseEntity.status(HttpStatus.OK).body(accommodations); - } - - @GetMapping("{id}") - @Operation(summary = "Encontra uma acomodação através do id") - @ApiResponses(value = { - @ApiResponse(responseCode = "200", description = "Recurso encontrado com sucesso"), - @ApiResponse(responseCode = "404", description = "Recurso não encontrado") - }) - public ResponseEntity getById(@PathVariable("id") String id) { - Optional accomodation = accommodationService.findById(id); - return accomodation.>map(accommodation -> new ResponseEntity<>(accommodation, HttpStatus.OK)) - .orElseGet(() -> ResponseEntity.status(HttpStatus.NOT_FOUND).body("Acomodação não encontrada para esse id")); - } - - @DeleteMapping("{id}") - @Operation(summary = "Deleta uma acomodação através do id") - @ApiResponses(value = { - @ApiResponse(responseCode = "200", description = "Recurso deletado com sucesso"), - @ApiResponse(responseCode = "404", description = "Recurso não encontrado") - }) - public ResponseEntity deleteAccommodation(@PathVariable("id") String id) { - Optional accommodation = accommodationService.findById(id); - if(accommodation.isEmpty()){ - return ResponseEntity.status(HttpStatus.NOT_FOUND).body("Acomodação não encontrada para esse id, portanto não pode ser deletada!"); - } - accommodationService.delete(id); - return new ResponseEntity<>(HttpStatus.NO_CONTENT); - } - - @PutMapping("{id}") - @Operation(summary = "Atualiza uma acomodação através do id") - @ApiResponses(value = { - @ApiResponse(responseCode = "200", description = "Acomodação atualizada com sucesso"), - @ApiResponse(responseCode = "404", description = "Acomodação não encontrada"), - @ApiResponse(responseCode = "400", description = "Dados de acomodação inválidos") - }) - public ResponseEntity updateAccommodation( - @PathVariable("id") String id, - @RequestBody AccommodationDTO accommodationDTO) { - - Optional existingAccommodation = accommodationService.findById(id); - if (existingAccommodation.isEmpty()) { - return ResponseEntity.status(HttpStatus.NOT_FOUND).body("Acomodação não encontrada para esse id, portanto não pode ser atualizada!"); - } - - try { - validations.forEach(e -> e.validate(accommodationDTO)); - - Accommodation accommodation = existingAccommodation.get(); - - accommodation.setTitle(accommodationDTO.title()); - accommodation.setAddress(accommodationDTO.adress()); - accommodation.setPrice(accommodationDTO.price()); - - accommodationService.save(accommodation); - - return ResponseEntity.ok(accommodation); - } catch (Exception e) { - return ResponseEntity.status(HttpStatus.BAD_REQUEST).body("Erro ao atualizar a acomodação. Verifique os dados fornecidos."); - } - } + @Autowired + private AccommodationService accommodationService; + + @Autowired + private AccommodationMapper accommodationMapper; + + @Autowired + private List validations; + + @PostMapping + @Operation(summary = "Criar uma nova acomodação", + description = "Valida e salva uma nova acomodação no sistema.") + @ApiResponses(value = { + @ApiResponse(responseCode = "201", description = "Acomodação criada com sucesso", + content = @Content(schema = @Schema(implementation = Accommodation.class))), + @ApiResponse(responseCode = "400", description = "Dados inválidos fornecidos", + content = @Content(schema = @Schema(implementation = ErrorResponse.class))) + }) + public ResponseEntity save(@RequestBody AccommodationRequestDTO accommodationDTO) { + + validations.forEach(e -> e.validate(accommodationDTO)); + + var accommodation = accommodationMapper.toEntity(accommodationDTO); + accommodationService.save(accommodation); + + URI location = URI.create("/accommodations/" + accommodation.getId()); + + return ResponseEntity.created(location).body(accommodation); + } + + @GetMapping + @Operation(summary = "Listar todas as acomodações", + description = "Retorna uma lista contendo todas as acomodações cadastradas.") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "Lista retornada com sucesso", + content = @Content(schema = @Schema(implementation = AccommodationDTO.class))) + }) + public ResponseEntity> findAll() { + List accommodationDtos = accommodationService.findAll() + .stream() + .map(accommodation -> accommodationMapper.toDTO(accommodation)) + .collect(Collectors.toList()); + + return ResponseEntity.ok(accommodationDtos); + } + + @GetMapping("{id}") + @Operation(summary = "Buscar acomodação por ID", + description = "Retorna os dados de uma acomodação específica a partir do seu ID.") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "Acomodação encontrada", + content = @Content(schema = @Schema(implementation = AccommodationDTO.class))), + @ApiResponse(responseCode = "404", description = "Acomodação não encontrada", + content = @Content(schema = @Schema(implementation = ErrorResponse.class))) + }) + public ResponseEntity getById(@PathVariable("id") String id) { + Optional accommodationOptional = accommodationService.findById(id); + + if (accommodationOptional.isPresent()) { + AccommodationDTO dto = accommodationMapper.toDTO(accommodationOptional.get()); + return ResponseEntity.ok(dto); + } + + ErrorResponse errorResponse = new ErrorResponse("Acomodação não encontrada para o ID fornecido.", LocalDateTime.now()); + return ResponseEntity.status(HttpStatus.NOT_FOUND).body(errorResponse); + } + + @DeleteMapping("{id}") + @Operation(summary = "Deletar acomodação por ID", + description = "Remove uma acomodação existente a partir do seu ID.") + @ApiResponses(value = { + @ApiResponse(responseCode = "204", description = "Acomodação deletada com sucesso"), + @ApiResponse(responseCode = "404", description = "Acomodação não encontrada", + content = @Content(schema = @Schema(implementation = ErrorResponse.class))) + }) + public ResponseEntity deleteAccommodation(@PathVariable("id") String id) { + Optional accommodation = accommodationService.findById(id); + + if (accommodation.isEmpty()) { + ErrorResponse errorResponse = new ErrorResponse("Acomodação não encontrada para o ID fornecido. Exclusão não realizada.", LocalDateTime.now()); + return ResponseEntity.status(HttpStatus.NOT_FOUND).body(errorResponse); + } + + accommodationService.delete(id); + return ResponseEntity.noContent().build(); + } + + @PutMapping("{id}") + @Operation(summary = "Atualizar acomodação por ID", + description = "Atualiza os dados de uma acomodação existente.") + @ApiResponses(value = { + @ApiResponse(responseCode = "200", description = "Acomodação atualizada com sucesso", + content = @Content(schema = @Schema(implementation = AccommodationDTO.class))), + @ApiResponse(responseCode = "404", description = "Acomodação não encontrada", + content = @Content(schema = @Schema(implementation = ErrorResponse.class))), + @ApiResponse(responseCode = "400", description = "Dados inválidos fornecidos", + content = @Content(schema = @Schema(implementation = ErrorResponse.class))) + }) + public ResponseEntity updateAccommodation( + @PathVariable("id") String id, + @RequestBody AccommodationRequestDTO accommodationDTO + ) { + Optional existingAccommodation = accommodationService.findById(id); + if (existingAccommodation.isEmpty()) { + ErrorResponse errorResponse = new ErrorResponse("Acomodação não encontrada para o ID fornecido. Atualização não realizada.", LocalDateTime.now()); + return ResponseEntity.status(HttpStatus.NOT_FOUND).body(errorResponse); + } + + try { + validations.forEach(e -> e.validate(accommodationDTO)); + + Accommodation accommodation = existingAccommodation.get(); + accommodation.setTitle(accommodationDTO.title()); + accommodation.setAddress(accommodationDTO.address()); + accommodation.setPrice(accommodationDTO.price()); + + accommodationService.save(accommodation); + + AccommodationDTO updatedDTO = accommodationMapper.toDTO(accommodation); + return ResponseEntity.ok(updatedDTO); + + } catch (Exception e) { + ErrorResponse errorResponse = new ErrorResponse("Erro ao atualizar a acomodação. Verifique os dados fornecidos.", LocalDateTime.now()); + return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(errorResponse); + } + } + } diff --git a/cadastral/src/main/java/com/unipampa/crud/service/impl/AccommodationServiceImpl.java b/cadastral/src/main/java/com/unipampa/crud/service/impl/AccommodationServiceImpl.java index b47e82d7..1f197e85 100644 --- a/cadastral/src/main/java/com/unipampa/crud/service/impl/AccommodationServiceImpl.java +++ b/cadastral/src/main/java/com/unipampa/crud/service/impl/AccommodationServiceImpl.java @@ -44,7 +44,7 @@ public void delete(String id) { @Override public boolean existsByCodAddressAndNumber(String codeAddress, int number) { - return propertyRepository.existsByZipCodeAndNumber(codeAddress, number); + return propertyRepository.existsByZipCodeAndStreetNumber(codeAddress, number); } @Override diff --git a/cadastral/src/main/java/com/unipampa/crud/validations/ValidationsRegisterAccommodation.java b/cadastral/src/main/java/com/unipampa/crud/validations/ValidationsRegisterAccommodation.java index 58dd7438..cf986670 100644 --- a/cadastral/src/main/java/com/unipampa/crud/validations/ValidationsRegisterAccommodation.java +++ b/cadastral/src/main/java/com/unipampa/crud/validations/ValidationsRegisterAccommodation.java @@ -1,8 +1,8 @@ package com.unipampa.crud.validations; -import com.unipampa.crud.dto.AccommodationDTO; +import com.unipampa.crud.dto.AccommodationRequestDTO; public interface ValidationsRegisterAccommodation { - void validate(AccommodationDTO accommodationDTO); + void validate(AccommodationRequestDTO accommodationDTO); } diff --git a/cadastral/src/main/java/com/unipampa/crud/validations/impl/ValidateAccommodationRegistered.java b/cadastral/src/main/java/com/unipampa/crud/validations/impl/ValidateAccommodationRegistered.java index 8b86616e..62844b39 100644 --- a/cadastral/src/main/java/com/unipampa/crud/validations/impl/ValidateAccommodationRegistered.java +++ b/cadastral/src/main/java/com/unipampa/crud/validations/impl/ValidateAccommodationRegistered.java @@ -1,6 +1,7 @@ package com.unipampa.crud.validations.impl; import com.unipampa.crud.dto.AccommodationDTO; +import com.unipampa.crud.dto.AccommodationRequestDTO; import com.unipampa.crud.enums.AccommodationType; import com.unipampa.crud.exceptions.ValidateRegisterException; import com.unipampa.crud.service.AccommodationService; @@ -17,9 +18,9 @@ public class ValidateAccommodationRegistered implements ValidationsRegisterAccom private AccommodationService service; @Override - public void validate(AccommodationDTO entity) { + public void validate(AccommodationRequestDTO entity) { if (entity.accommodationType().equals(AccommodationType.HOUSE) - && service.existsByCodAddressAndNumber(entity.codAddress(), entity.number())) { + && service.existsByCodAddressAndNumber(entity.codAddress(), entity.streetNumber())) { log.error("HOUSE {} is already registered!", entity.description()); throw new ValidateRegisterException("HOUSE is already registered!"); } diff --git a/cadastral/src/test/java/com/unipampa/crud/resources/AccommodationResourceTest.java b/cadastral/src/test/java/com/unipampa/crud/resources/AccommodationResourceTest.java index 8716d95c..e1665cdc 100644 --- a/cadastral/src/test/java/com/unipampa/crud/resources/AccommodationResourceTest.java +++ b/cadastral/src/test/java/com/unipampa/crud/resources/AccommodationResourceTest.java @@ -21,7 +21,7 @@ import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.setup.MockMvcBuilders; -import javax.validation.Validation; +import jakarta.validation.Validation; import java.math.BigDecimal; import java.util.Arrays; import java.util.List; @@ -111,7 +111,7 @@ void shouldFindAllSuccess() { List mockAccommodations = Arrays.asList(accommodation, accommodation2); when(accommodationService.findAll()).thenReturn(mockAccommodations); - ResponseEntity> response = accommodationResource.findAll(); + ResponseEntity> response = accommodationResource.findAll(); assertEquals(HttpStatus.OK, response.getStatusCode()); assertNotNull(response.getBody()); diff --git a/cadastral/src/test/java/com/unipampa/crud/service/impl/AccommodationServiceImplTest.java b/cadastral/src/test/java/com/unipampa/crud/service/impl/AccommodationServiceImplTest.java index 26ee2dbe..4e74f1ab 100644 --- a/cadastral/src/test/java/com/unipampa/crud/service/impl/AccommodationServiceImplTest.java +++ b/cadastral/src/test/java/com/unipampa/crud/service/impl/AccommodationServiceImplTest.java @@ -36,8 +36,8 @@ class AccommodationServiceImplTest { void setUp() { accommodation = Accommodation.builder() .id("1") - .number(101) - .zipCode("ADDR123") + .addressNumber(101) + .postalCode("ADDR123") .build(); } @@ -113,26 +113,26 @@ void testDeleteWhenExceptionThrown() { @Test void testExistsByCodAddressAndNumberReturnsTrue() { - String codeAddress = accommodation.getZipCode(); - int number = accommodation.getNumber(); - when(propertyRepository.existsByZipCodeAndNumber(codeAddress, number)).thenReturn(true); + String codeAddress = accommodation.getPostalCode(); + int number = accommodation.getAddressNumber(); + when(propertyRepository.existsByZipCodeAndStreetNumber(codeAddress, number)).thenReturn(true); boolean result = accommodationService.existsByCodAddressAndNumber(codeAddress, number); assertTrue(result); - verify(propertyRepository, times(1)).existsByZipCodeAndNumber(codeAddress, number); + verify(propertyRepository, times(1)).existsByZipCodeAndStreetNumber(codeAddress, number); } @Test void testExistsByCodAddressAndNumberReturnsFalse() { - String codeAddress = accommodation.getZipCode(); - int number = accommodation.getNumber(); - when(propertyRepository.existsByZipCodeAndNumber(codeAddress, number)).thenReturn(false); + String codeAddress = accommodation.getPostalCode(); + int number = accommodation.getAddressNumber(); + when(propertyRepository.existsByZipCodeAndStreetNumber(codeAddress, number)).thenReturn(false); boolean result = accommodationService.existsByCodAddressAndNumber(codeAddress, number); assertFalse(result); - verify(propertyRepository, times(1)).existsByZipCodeAndNumber(codeAddress, number); + verify(propertyRepository, times(1)).existsByZipCodeAndStreetNumber(codeAddress, number); } @Test diff --git a/cadastral/src/test/java/com/unipampa/crud/validations/impl/ValidateAccommodationRegisteredTest.java b/cadastral/src/test/java/com/unipampa/crud/validations/impl/ValidateAccommodationRegisteredTest.java index d83a645d..1d930b89 100644 --- a/cadastral/src/test/java/com/unipampa/crud/validations/impl/ValidateAccommodationRegisteredTest.java +++ b/cadastral/src/test/java/com/unipampa/crud/validations/impl/ValidateAccommodationRegisteredTest.java @@ -46,23 +46,23 @@ void setUp() { @Test void shouldValidateSuccessWhenHouseNotRegistered() { - when(service.existsByCodAddressAndNumber(dtoHouse.codAddress(), dtoHouse.number())).thenReturn(false); + when(service.existsByCodAddressAndNumber(dtoHouse.codAddress(), dtoHouse.streetNumber())).thenReturn(false); assertDoesNotThrow(() -> validateAccommodation.validate(dtoHouse)); - verify(service).existsByCodAddressAndNumber(dtoHouse.codAddress(), dtoHouse.number()); + verify(service).existsByCodAddressAndNumber(dtoHouse.codAddress(), dtoHouse.streetNumber()); } @Test void testValidateFailureWhenHouseAlreadyRegistered() { - when(service.existsByCodAddressAndNumber(dtoHouse.codAddress(), dtoHouse.number())).thenReturn(true); + when(service.existsByCodAddressAndNumber(dtoHouse.codAddress(), dtoHouse.streetNumber())).thenReturn(true); ValidateRegisterException exception = assertThrows(ValidateRegisterException.class, () -> { validateAccommodation.validate(dtoHouse); }); assertEquals("HOUSE is already registered!", exception.getMessage()); - verify(service).existsByCodAddressAndNumber(dtoHouse.codAddress(), dtoHouse.number()); + verify(service).existsByCodAddressAndNumber(dtoHouse.codAddress(), dtoHouse.streetNumber()); } } \ No newline at end of file