KON-327, KON-265 UnitTests
diff --git a/src/main/java/org/eclipse/openk/contactbasedata/controller/CommunicationController.java b/src/main/java/org/eclipse/openk/contactbasedata/controller/CommunicationController.java
new file mode 100644
index 0000000..97d2568
--- /dev/null
+++ b/src/main/java/org/eclipse/openk/contactbasedata/controller/CommunicationController.java
@@ -0,0 +1,121 @@
+/*
+ *******************************************************************************
+ * Copyright (c) 2019 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *******************************************************************************
+ */
+package org.eclipse.openk.contactbasedata.controller;
+
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import lombok.extern.log4j.Log4j2;
+import org.eclipse.openk.contactbasedata.exceptions.BadRequestException;
+import org.eclipse.openk.contactbasedata.service.AddressService;
+import org.eclipse.openk.contactbasedata.service.CommunicationService;
+import org.eclipse.openk.contactbasedata.viewmodel.AddressDto;
+import org.eclipse.openk.contactbasedata.viewmodel.CommunicationDto;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.annotation.Secured;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.support.ServletUriComponentsBuilder;
+
+import java.net.URI;
+import java.util.List;
+import java.util.UUID;
+
+@Log4j2
+@RestController
+@RequestMapping("contacts/")
+public class CommunicationController {
+ @Autowired
+ private CommunicationService communicationService;
+
+ @GetMapping("/{contactUuid}/communications")
+ @Secured({"ROLE_KON-READER", "ROLE_KON-WRITER", "ROLE_KON-ADMIN"})
+ @ApiOperation(value = "Anzeigen aller Kommunikationswege zu einem Kontakt")
+ @ApiResponses(value = {
+ @ApiResponse(code = 400, message = "Ungültige Anfrage."),
+ @ApiResponse(code = 200, message = "Suche durchgeführt")})
+ @ResponseStatus(HttpStatus.OK)
+ public List<CommunicationDto> getContactCommunications(@PathVariable UUID contactUuid) {
+ return communicationService.getCommunicationsByContactUuid(contactUuid);
+ }
+
+ @GetMapping("/{contactUuid}/communications/{communicationUuid}")
+ @ApiOperation(value = "Einen bestimmten Kommunikationsweg eines bestimmten Kontakts anzeigen.")
+ @ApiResponses(value = {
+ @ApiResponse(code = 404, message = "Kontaktadresse nicht gefunden."),
+ @ApiResponse(code = 400, message = "Ungültige Anfrage."),
+ @ApiResponse(code = 200, message = "Kontaktadresse erfolgreich gelesen.")})
+ public CommunicationDto readCommunication(
+ @PathVariable UUID contactUuid,
+ @PathVariable UUID communicationUuid) {
+
+ return communicationService.getCommunication(contactUuid, communicationUuid);
+ }
+
+
+ @PostMapping("/{contactUuid}/communications")
+ @ApiOperation(value = "Anlegen eines neuen Kommunikationswegs")
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "Kommunikationsweg erfolgreich angelegt"),
+ @ApiResponse(code = 500, message = "Konnte nicht durchgeführt werden")
+ })
+ public ResponseEntity<CommunicationDto> insertCommunication(
+ @PathVariable UUID contactUuid,
+ @Validated @RequestBody CommunicationDto communicationDto) {
+ if (!contactUuid.equals(communicationDto.getContactUuid())) {
+ throw new BadRequestException("invalid.uuid.path.object");
+ }
+ CommunicationDto savedCommunicationDto = communicationService.insertCommunication(contactUuid, communicationDto);
+ URI location = ServletUriComponentsBuilder
+ .fromCurrentRequestUri()
+ .path("/{uuid}")
+ .buildAndExpand(savedCommunicationDto.getUuid())
+ .toUri();
+ return ResponseEntity.created(location).body(savedCommunicationDto);
+ }
+
+
+ @PutMapping("/{contactUuid}/communications/{communicationUuid}")
+ @ApiOperation(value = "Einen bestimmten Kommunikationsweg eines bestimmten Kontakts bearbeiten.")
+ @ApiResponses(value = {
+ @ApiResponse(code = 404, message = "Kommunikationsweg nicht gefunden."),
+ @ApiResponse(code = 400, message = "Ungültige Anfrage."),
+ @ApiResponse(code = 200, message = "Kommunikationsweg erfolgreich geändert.")})
+ public ResponseEntity updateCommunication(
+ @PathVariable UUID contactUuid,
+ @PathVariable UUID communicationUuid,
+ @Validated @RequestBody CommunicationDto communicationDto) {
+ if (!communicationUuid.equals(communicationDto.getUuid())) {
+ throw new BadRequestException("invalid.uuid.path.object");
+ }
+ communicationService.updateCommunication(contactUuid, communicationDto);
+ return ResponseEntity.ok().build();
+ }
+
+ @DeleteMapping("{contactUuid}/communications/{communicationUuid}")
+ @ResponseStatus(HttpStatus.OK)
+ @ApiOperation(value = "Einen bestimmten Kommunikationsweg eines bestimmten Kontakts löschen")
+ @ApiResponses(value = {
+ @ApiResponse(code = 204, message = "Erfolgreich gelöscht"),
+ @ApiResponse(code = 400, message = "Ungültige Anfrage"),
+ @ApiResponse(code = 404, message = "Nicht gefunden")})
+ public void deleteCommunication(@PathVariable("contactUuid") UUID contactUuid,
+ @PathVariable("communicationUuid") UUID communicationUuid) {
+ communicationService.deleteCommunication(contactUuid, communicationUuid);
+ }
+
+}
diff --git a/src/main/java/org/eclipse/openk/contactbasedata/mapper/AddressMapper.java b/src/main/java/org/eclipse/openk/contactbasedata/mapper/AddressMapper.java
index 171fe9b..63fd368 100644
--- a/src/main/java/org/eclipse/openk/contactbasedata/mapper/AddressMapper.java
+++ b/src/main/java/org/eclipse/openk/contactbasedata/mapper/AddressMapper.java
@@ -28,6 +28,8 @@
@Mapping( source="tblContact.uuid", target="contactUuid"),
@Mapping( source="wgs_84_zone", target="wgs84Zone"),
@Mapping( source="refAddressType.uuid", target="addressTypeUuid"),
+ @Mapping( source="refAddressType.type", target="addressTypeType"),
+ @Mapping( source="refAddressType.description", target="addressTypeDescription"),
})
AddressDto toAddressDto(TblAddress tblAdress);
diff --git a/src/main/java/org/eclipse/openk/contactbasedata/mapper/CommunicationMapper.java b/src/main/java/org/eclipse/openk/contactbasedata/mapper/CommunicationMapper.java
index 59f459f..0d2e77e 100644
--- a/src/main/java/org/eclipse/openk/contactbasedata/mapper/CommunicationMapper.java
+++ b/src/main/java/org/eclipse/openk/contactbasedata/mapper/CommunicationMapper.java
@@ -17,10 +17,20 @@
import org.eclipse.openk.contactbasedata.model.TblCommunication;
import org.eclipse.openk.contactbasedata.viewmodel.CommunicationDto;
import org.mapstruct.Mapper;
+import org.mapstruct.Mapping;
+import org.mapstruct.Mappings;
import org.mapstruct.ReportingPolicy;
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface CommunicationMapper {
+ @Mappings({
+ @Mapping( source="tblContact.uuid", target="contactUuid"),
+ @Mapping( source="refCommunicationType.uuid", target="communicationTypeUuid"),
+ @Mapping( source="refCommunicationType.type", target="communicationTypeType"),
+ @Mapping( source="refCommunicationType.description", target="communicationTypeDescription"),
+ })
CommunicationDto toCommunicationDto(TblCommunication tblCommunication);
+
+ TblCommunication toTblCommunication(CommunicationDto communicationDto);
}
\ No newline at end of file
diff --git a/src/main/java/org/eclipse/openk/contactbasedata/repository/CommunicationRepository.java b/src/main/java/org/eclipse/openk/contactbasedata/repository/CommunicationRepository.java
new file mode 100644
index 0000000..a189d08
--- /dev/null
+++ b/src/main/java/org/eclipse/openk/contactbasedata/repository/CommunicationRepository.java
@@ -0,0 +1,44 @@
+/*
+ *******************************************************************************
+ * Copyright (c) 2019 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *******************************************************************************
+ */
+package org.eclipse.openk.contactbasedata.repository;
+
+import org.eclipse.openk.contactbasedata.model.TblAddress;
+import org.eclipse.openk.contactbasedata.model.TblCommunication;
+import org.eclipse.openk.contactbasedata.model.TblContact;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
+
+import java.util.List;
+import java.util.Optional;
+import java.util.UUID;
+
+public interface CommunicationRepository extends JpaRepository<TblCommunication, Long> {
+
+ Optional<TblCommunication> findByUuid(UUID uuid);
+
+ @Query("select a from TblCommunication a where a.tblContact.uuid = ?1")
+ List< TblCommunication > findByTblContactUuid(final UUID contactUuid);
+
+ Optional<TblCommunication> findByTblContactAndUuid(TblContact tblContact, UUID uuid);
+
+ @Query("select count(*) from TblCommunication a where a.tblContact.id=:contactId and a.refCommunicationType.id=:communicationTypeId")
+ Long countByContactIdAndCommunicationTypeId(@Param("contactId") Long contactId, @Param("communicationTypeId") Long communicationTypeId);
+
+ @Query("select count(*) from TblCommunication a where a.tblContact.id=:contactId and a.refCommunicationType.id=:communicationTypeId and uuid <>:communicationUuid")
+ Long countByContactIdAndCommunicationTypeIdAndIsNotSame(@Param("contactId") Long supplierId, @Param("communicationTypeId") Long communicationTypeId, @Param("communicationUuid") UUID communicationUuid);
+}
+
+
diff --git a/src/main/java/org/eclipse/openk/contactbasedata/service/AddressService.java b/src/main/java/org/eclipse/openk/contactbasedata/service/AddressService.java
index ad03785..54790a6 100644
--- a/src/main/java/org/eclipse/openk/contactbasedata/service/AddressService.java
+++ b/src/main/java/org/eclipse/openk/contactbasedata/service/AddressService.java
@@ -78,7 +78,7 @@
addressToSave.setTblContact(tblContact);
if (addressDto.getIsMainAddress()!=null && addressDto.getIsMainAddress() && !checkUniqueMainAddressForContactForInsert(tblContact.getId())) {
- throw new OperationDeniedException(OperationType.UPDATE, "main.address.already.existing");
+ throw new OperationDeniedException(OperationType.INSERT, "main.address.already.existing");
}
setFromAddressDto(addressToSave, addressDto);
diff --git a/src/main/java/org/eclipse/openk/contactbasedata/service/CommunicationService.java b/src/main/java/org/eclipse/openk/contactbasedata/service/CommunicationService.java
new file mode 100644
index 0000000..1b771ee
--- /dev/null
+++ b/src/main/java/org/eclipse/openk/contactbasedata/service/CommunicationService.java
@@ -0,0 +1,158 @@
+/*
+ *******************************************************************************
+ * Copyright (c) 2019 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *******************************************************************************
+ */
+package org.eclipse.openk.contactbasedata.service;
+
+import lombok.extern.log4j.Log4j2;
+import org.eclipse.openk.contactbasedata.enums.OperationType;
+import org.eclipse.openk.contactbasedata.exceptions.BadRequestException;
+import org.eclipse.openk.contactbasedata.exceptions.NotFoundException;
+import org.eclipse.openk.contactbasedata.exceptions.OperationDeniedException;
+import org.eclipse.openk.contactbasedata.mapper.AddressMapper;
+import org.eclipse.openk.contactbasedata.mapper.CommunicationMapper;
+import org.eclipse.openk.contactbasedata.model.RefCommunicationType;
+import org.eclipse.openk.contactbasedata.model.TblAddress;
+import org.eclipse.openk.contactbasedata.model.TblCommunication;
+import org.eclipse.openk.contactbasedata.model.TblContact;
+import org.eclipse.openk.contactbasedata.repository.*;
+import org.eclipse.openk.contactbasedata.viewmodel.AddressDto;
+import org.eclipse.openk.contactbasedata.viewmodel.CommunicationDto;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+import java.util.UUID;
+import java.util.stream.Collectors;
+
+@Log4j2
+@Service
+public class CommunicationService {
+ @Autowired
+ private CommunicationRepository communicationRepository;
+
+ @Autowired
+ private CommunicationTypeRepository communicationTypeRepository;
+
+ @Autowired
+ private ContactRepository contactRepository;
+
+ @Autowired
+ CommunicationMapper communicationMapper;
+
+
+ public List<CommunicationDto> getCommunicationsByContactUuid(UUID contactUuid) {
+ List<TblCommunication> tblCommunicationList = communicationRepository
+ .findByTblContactUuid(contactUuid);
+
+ return tblCommunicationList.stream().map(communicationMapper::toCommunicationDto).collect(Collectors.toList());
+ }
+
+
+ public CommunicationDto getCommunication(UUID contactUuid, UUID communicationUuid){
+ TblCommunication tblCommunication = communicationRepository.findByUuid(communicationUuid)
+ .orElseThrow( () -> new NotFoundException("communication.uuid.not.existing"));
+ if(!tblCommunication.getTblContact().getUuid().equals(contactUuid)) {
+ throw new BadRequestException("invalid.uuid.path.object");
+ }
+ return communicationMapper.toCommunicationDto(tblCommunication);
+ }
+
+ @Transactional
+ public CommunicationDto insertCommunication(UUID contactUuid, CommunicationDto communicationDto) {
+
+ TblContact tblContact = contactRepository
+ .findByUuid(contactUuid)
+ .orElseThrow(() -> new NotFoundException("contact.uuid.not.existing"));
+
+ RefCommunicationType refCommunicationType = communicationTypeRepository
+ .findByUuid(communicationDto.getCommunicationTypeUuid())
+ .orElseThrow(() -> new NotFoundException("communication.type.uuid.not.existing"));
+
+
+ TblCommunication communicationToSave = communicationMapper.toTblCommunication(communicationDto);
+ communicationToSave.setUuid(UUID.randomUUID());
+ communicationToSave.setTblContact(tblContact);
+ communicationToSave.setRefCommunicationType(refCommunicationType);
+
+ if ( !checkUniqueCommunicationTypeForContactForInsert(tblContact.getId(), refCommunicationType.getId())) {
+ throw new OperationDeniedException(OperationType.INSERT, "communication.type.already.existing.for.contact");
+ }
+
+ setFromCommunicationDto(communicationToSave, communicationDto);
+
+ TblCommunication savedCommunication = communicationRepository.save(communicationToSave);
+ return communicationMapper.toCommunicationDto(savedCommunication);
+ }
+
+ @Transactional
+ public CommunicationDto updateCommunication(UUID contactUuid, CommunicationDto communicationDto) {
+
+ TblContact contact = contactRepository.findByUuid(contactUuid)
+ .orElseThrow(() -> new NotFoundException("contact.uuid.not.existing"));
+
+ TblCommunication communication = communicationRepository.findByUuid(communicationDto.getUuid())
+ .orElseThrow(() -> new NotFoundException("communication.uuid.not.existing"));
+
+ RefCommunicationType refCommunicationType = communicationTypeRepository
+ .findByUuid(communicationDto.getCommunicationTypeUuid())
+ .orElseThrow(() -> new NotFoundException("communication.type.uuid.not.existing"));
+
+ TblCommunication communicationToSave = communicationMapper.toTblCommunication(communicationDto);
+ communicationToSave.setTblContact(contact);
+ communicationToSave.setRefCommunicationType(refCommunicationType);
+ communicationToSave.setId(communication.getId());
+
+ if ( !checkUniqueCommunicationTypeForContactForUpdate(contact.getId(), refCommunicationType.getId(), communication.getUuid())) {
+ throw new OperationDeniedException(OperationType.UPDATE, "communication.type.already.existing.for.contact");
+ }
+
+ setFromCommunicationDto(communicationToSave, communicationDto);
+ TblCommunication savedCommunication = communicationRepository.save(communicationToSave);
+ return communicationMapper.toCommunicationDto(savedCommunication);
+ }
+
+
+ @Transactional
+ public void deleteCommunication(UUID contactUuid, UUID communicationUuid) {
+ TblContact tblContact = contactRepository.findByUuid(contactUuid)
+ .orElseThrow(() -> new NotFoundException("contact.uuid.not.existing"));
+ TblCommunication tblCommunication = communicationRepository.findByTblContactAndUuid(tblContact, communicationUuid)
+ .orElseThrow(() -> new NotFoundException("communication.uuid.not.existing"));
+
+ communicationRepository.delete(tblCommunication);
+ }
+
+ private boolean checkUniqueCommunicationTypeForContactForInsert(Long contactId, Long communicationTypeId){
+ return communicationRepository.countByContactIdAndCommunicationTypeId(contactId, communicationTypeId) == 0;
+ }
+
+ private boolean checkUniqueCommunicationTypeForContactForUpdate( Long contactId, Long communicationTypeId, UUID communicationUuid){
+ Long result = communicationRepository.countByContactIdAndCommunicationTypeIdAndIsNotSame(contactId, communicationTypeId, communicationUuid) ;
+ return result==0;
+ }
+
+ private void setFromCommunicationDto( TblCommunication destTblCommunication, CommunicationDto sourceDto ) {
+
+ if( sourceDto.getCommunicationTypeUuid() != null ) {
+ destTblCommunication.setRefCommunicationType( communicationTypeRepository
+ .findByUuid(sourceDto.getCommunicationTypeUuid())
+ .orElseThrow(() -> new NotFoundException("communication.type.uuid.not.existing")));
+ }
+ else {
+ destTblCommunication.setRefCommunicationType(null);
+ }
+ }
+
+}
diff --git a/src/main/java/org/eclipse/openk/contactbasedata/viewmodel/AddressDto.java b/src/main/java/org/eclipse/openk/contactbasedata/viewmodel/AddressDto.java
index feeead7..df3b6e0 100644
--- a/src/main/java/org/eclipse/openk/contactbasedata/viewmodel/AddressDto.java
+++ b/src/main/java/org/eclipse/openk/contactbasedata/viewmodel/AddressDto.java
@@ -44,6 +44,6 @@
//fromAddressType
@JsonProperty("addressTypeId")
private UUID addressTypeUuid;
- private String type;
- private String description;
+ private String addressTypeType;
+ private String addressTypeDescription;
}
diff --git a/src/main/java/org/eclipse/openk/contactbasedata/viewmodel/CommunicationDto.java b/src/main/java/org/eclipse/openk/contactbasedata/viewmodel/CommunicationDto.java
index 46dbc94..4d75be8 100644
--- a/src/main/java/org/eclipse/openk/contactbasedata/viewmodel/CommunicationDto.java
+++ b/src/main/java/org/eclipse/openk/contactbasedata/viewmodel/CommunicationDto.java
@@ -27,10 +27,13 @@
private UUID uuid;
private String communicationData;
+ @JsonProperty("contactId")
+ private UUID contactUuid;
+
//fromCommunicationType
@JsonProperty("communicationTypeId")
private UUID communicationTypeUuid;
- private String type;
- private String description;
+ private String communicationTypeType;
+ private String communicationTypeDescription;
}
diff --git a/src/main/resources/messages.properties b/src/main/resources/messages.properties
index 2469ea6..120096c 100644
--- a/src/main/resources/messages.properties
+++ b/src/main/resources/messages.properties
@@ -10,5 +10,7 @@
person.type.uuid.not.existing= Die \u00fcbergebene UUID eines Personentyps existiert nicht
address.uuid.not.existing= Die \u00fcbergebene UUID einer Adresse existiert nicht
address.type.uuid.not.existing= Die \u00fcbergebene UUID eines Adresstyps existiert nicht
+communication.uuid.not.existing= Die \u00fcbergebene UUID eines Kommunikationswegs existiert nicht
-main.address.already.existing F\u00fcdiesen Kontakt existiert bereits eine Hauptadresse
+main.address.already.existing= F\u00fcdiesen Kontakt existiert bereits eine Hauptadresse
+communication.type.already.existing.for.contact= F\u00fcdiesen Kontakt existiert bereits dieser Kommunikationstyp
diff --git a/src/test/java/org/eclipse/openk/contactbasedata/config/TestConfiguration.java b/src/test/java/org/eclipse/openk/contactbasedata/config/TestConfiguration.java
index 62524b1..e7846ef 100644
--- a/src/test/java/org/eclipse/openk/contactbasedata/config/TestConfiguration.java
+++ b/src/test/java/org/eclipse/openk/contactbasedata/config/TestConfiguration.java
@@ -63,6 +63,9 @@
CommunicationTypeMapper communicationTypeMapper() { return new CommunicationTypeMapperImpl(); }
@Bean
+ CommunicationMapper communicationMapper() { return new CommunicationMapperImpl(); }
+
+ @Bean
public VersionService myVersionService() {
return new VersionService();
}
@@ -95,5 +98,8 @@
public CommunicationTypeService myCommunicationTypeService() { return new CommunicationTypeService(); }
@Bean
+ public CommunicationService myCommunicationService() { return new CommunicationService(); }
+
+ @Bean
public BaseContactService myBaseContactService() { return new BaseContactService(); }
}
diff --git a/src/test/java/org/eclipse/openk/contactbasedata/controller/AddressControllerTest.java b/src/test/java/org/eclipse/openk/contactbasedata/controller/AddressControllerTest.java
index 5e72971..9fc13da 100644
--- a/src/test/java/org/eclipse/openk/contactbasedata/controller/AddressControllerTest.java
+++ b/src/test/java/org/eclipse/openk/contactbasedata/controller/AddressControllerTest.java
@@ -15,14 +15,10 @@
package org.eclipse.openk.contactbasedata.controller;
import com.fasterxml.jackson.databind.ObjectMapper;
-import jdk.nashorn.internal.ir.annotations.Ignore;
import org.eclipse.openk.contactbasedata.ContactBaseDataApplication;
import org.eclipse.openk.contactbasedata.service.AddressService;
-import org.eclipse.openk.contactbasedata.service.SalutationService;
import org.eclipse.openk.contactbasedata.support.MockDataHelper;
import org.eclipse.openk.contactbasedata.viewmodel.AddressDto;
-import org.eclipse.openk.contactbasedata.viewmodel.CommunicationTypeDto;
-import org.eclipse.openk.contactbasedata.viewmodel.SalutationDto;
import org.hamcrest.Matchers;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
@@ -89,8 +85,8 @@
addressDto.setUrlMap("www.xyz");
addressDto.setWgs84Zone("84");
addressDto.setContactUuid(UUID.fromString("1ad98f8a-3774-11ea-850d-2e728ce88125"));
- addressDto.setType("Privat");
- addressDto.setDescription("???");
+ addressDto.setAddressTypeType("Privat");
+ addressDto.setAddressTypeDescription("???");
addressDto.setAddressTypeUuid(UUID.fromString("5956e65e-3774-11ea-978f-2e728ce88125"));
when(addressService.insertAddress(any(UUID.class), any(AddressDto.class)))
@@ -112,8 +108,8 @@
.andExpect(jsonPath("$.urlMap", Matchers.is("www.xyz" )))
.andExpect(jsonPath("$.wgs84Zone", Matchers.is("84" )))
.andExpect(jsonPath("$.contactId", Matchers.is("1ad98f8a-3774-11ea-850d-2e728ce88125" )))
- .andExpect(jsonPath("$.type", Matchers.is("Privat" )))
- .andExpect(jsonPath("$.description", Matchers.is("???" )))
+ .andExpect(jsonPath("$.addressTypeType", Matchers.is("Privat" )))
+ .andExpect(jsonPath("$.addressTypeDescription", Matchers.is("???" )))
.andExpect(jsonPath("$.addressTypeId", Matchers.is("5956e65e-3774-11ea-978f-2e728ce88125" )));
}
@@ -143,5 +139,12 @@
.andExpect(status().isBadRequest());
}
+ @Test
+ public void shouldDeleteAddress() throws Exception {
+ mockMvc.perform(delete("/contacts/{contactUuid}/addresses/{addressUuid}", UUID.randomUUID(), UUID.randomUUID())
+ .contentType(MediaType.APPLICATION_JSON))
+ .andExpect(status().is2xxSuccessful());
+ }
+
}
\ No newline at end of file
diff --git a/src/test/java/org/eclipse/openk/contactbasedata/controller/CommunicationControllerTest.java b/src/test/java/org/eclipse/openk/contactbasedata/controller/CommunicationControllerTest.java
new file mode 100644
index 0000000..4672dbd
--- /dev/null
+++ b/src/test/java/org/eclipse/openk/contactbasedata/controller/CommunicationControllerTest.java
@@ -0,0 +1,129 @@
+/*
+ *******************************************************************************
+ * Copyright (c) 2019 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *******************************************************************************
+ */
+package org.eclipse.openk.contactbasedata.controller;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.eclipse.openk.contactbasedata.ContactBaseDataApplication;
+import org.eclipse.openk.contactbasedata.service.CommunicationService;
+import org.eclipse.openk.contactbasedata.support.MockDataHelper;
+import org.eclipse.openk.contactbasedata.viewmodel.CommunicationDto;
+import org.hamcrest.Matchers;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.http.MediaType;
+import org.springframework.test.context.ActiveProfiles;
+import org.springframework.test.web.servlet.MockMvc;
+import java.util.List;
+import java.util.UUID;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.when;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
+
+@SpringBootTest(classes = ContactBaseDataApplication.class)
+@AutoConfigureMockMvc
+@ActiveProfiles("test") // Todo: Find a better way to configure the tests
+public class CommunicationControllerTest {
+
+ @MockBean
+ private CommunicationService communicationService;
+
+ @Autowired
+ private MockMvc mockMvc;
+
+ @Test
+ public void shouldReturnCommunicationsForAContact() throws Exception {
+ List<CommunicationDto> listDtos = MockDataHelper.mockCommunicationDtoList();
+
+ when(communicationService.getCommunicationsByContactUuid(any(UUID.class))).thenReturn(listDtos);
+
+ mockMvc.perform(get("/contacts/{uuid}/communications", UUID.randomUUID()))
+ .andExpect(status().is2xxSuccessful())
+ .andExpect(content().contentType(MediaType.APPLICATION_JSON));
+ }
+
+ @Test
+ public void shouldReturnSingleCommunication() throws Exception {
+ CommunicationDto communicationDto = MockDataHelper.mockCommunicationDto();
+
+ when(communicationService.getCommunication(any(UUID.class), any(UUID.class))).thenReturn(communicationDto);
+
+ mockMvc.perform(get("/contacts/a689622e-3c2b-11ea-b77f-2e728ce88125/communications/a68964f4-3c2b-11ea-b77f-2e728ce88125"))
+ .andExpect(status().is2xxSuccessful())
+ .andExpect(content().contentType(MediaType.APPLICATION_JSON));
+ }
+
+
+ @Test
+ public void shouldInsertCommunication() throws Exception {
+ CommunicationDto communicationDto = MockDataHelper.mockCommunicationDto();
+ communicationDto.setUuid(UUID.fromString("498a1874-3c2c-11ea-b77f-2e728ce88125"));
+
+ communicationDto.setContactUuid(UUID.fromString("64e35f5e-3c2c-11ea-b77f-2e728ce88125"));
+ communicationDto.setCommunicationData("01778927384");
+ communicationDto.setCommunicationTypeType("MOB");
+ communicationDto.setCommunicationTypeDescription("Mobil");
+ communicationDto.setCommunicationTypeUuid(UUID.fromString("70160958-3c2c-11ea-b77f-2e728ce88125"));
+
+ when(communicationService.insertCommunication(any(UUID.class), any(CommunicationDto.class)))
+ .thenReturn(communicationDto);
+
+ mockMvc.perform(post("/contacts/{contactUuid}/communications", communicationDto.getContactUuid())
+ .contentType(MediaType.APPLICATION_JSON)
+ .content(new ObjectMapper().writeValueAsString(communicationDto)))
+ .andExpect(jsonPath("$.contactId", Matchers.is("64e35f5e-3c2c-11ea-b77f-2e728ce88125")))
+ .andExpect(jsonPath("$.communicationData", Matchers.is("01778927384" )))
+ .andExpect(jsonPath("$.communicationTypeType", Matchers.is("MOB" )))
+ .andExpect(jsonPath("$.communicationTypeDescription", Matchers.is("Mobil" )))
+ .andExpect(jsonPath("$.communicationTypeId", Matchers.is("70160958-3c2c-11ea-b77f-2e728ce88125" )));
+ }
+
+
+ @Test
+ public void shouldUpdateCommunication() throws Exception {
+
+ CommunicationDto communicationDto = MockDataHelper.mockCommunicationDto();
+ when( communicationService.updateCommunication(any(UUID.class), any(CommunicationDto.class))).thenReturn(communicationDto);
+
+ mockMvc.perform(put("/contacts/{contactUuid}/communications/{communicationUuid}", communicationDto.getContactUuid(), communicationDto.getUuid())
+ .contentType(MediaType.APPLICATION_JSON)
+ .content(new ObjectMapper().writeValueAsString(communicationDto)))
+ .andExpect(status().is2xxSuccessful());
+ }
+
+ @Test
+ public void shouldNotUpdateCommunication() throws Exception {
+
+ CommunicationDto communicationDto = MockDataHelper.mockCommunicationDto();
+ when( communicationService.updateCommunication(any(UUID.class), any(CommunicationDto.class))).thenReturn(communicationDto);
+
+ mockMvc.perform(put("/contacts/{contactUuid}/communications/{communicationUuid}", communicationDto.getContactUuid(), UUID.randomUUID().toString())
+ .contentType(MediaType.APPLICATION_JSON)
+ .content(new ObjectMapper().writeValueAsString(communicationDto)))
+ .andExpect(status().isBadRequest());
+ }
+
+ @Test
+ public void shouldDeleteCommunication() throws Exception {
+ mockMvc.perform(delete("/contacts/{contactUuid}/communications/{communicationUuid}", UUID.randomUUID(), UUID.randomUUID())
+ .contentType(MediaType.APPLICATION_JSON))
+ .andExpect(status().is2xxSuccessful());
+ }
+
+
+}
\ No newline at end of file
diff --git a/src/test/java/org/eclipse/openk/contactbasedata/service/CommunicationServiceTest.java b/src/test/java/org/eclipse/openk/contactbasedata/service/CommunicationServiceTest.java
new file mode 100644
index 0000000..ac52b17
--- /dev/null
+++ b/src/test/java/org/eclipse/openk/contactbasedata/service/CommunicationServiceTest.java
@@ -0,0 +1,251 @@
+/*
+ *******************************************************************************
+ * Copyright (c) 2019 Contributors to the Eclipse Foundation
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *******************************************************************************
+ */
+package org.eclipse.openk.contactbasedata.service;
+
+import org.eclipse.openk.contactbasedata.config.TestConfiguration;
+import org.eclipse.openk.contactbasedata.exceptions.NotFoundException;
+import org.eclipse.openk.contactbasedata.exceptions.OperationDeniedException;
+import org.eclipse.openk.contactbasedata.model.*;
+import org.eclipse.openk.contactbasedata.repository.*;
+import org.eclipse.openk.contactbasedata.support.MockDataHelper;
+import org.eclipse.openk.contactbasedata.viewmodel.CommunicationDto;
+import org.junit.jupiter.api.Test;
+import org.mockito.Mockito;
+import org.mockito.stubbing.Answer;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
+import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.test.context.ContextConfiguration;
+import java.util.List;
+import java.util.Optional;
+import java.util.UUID;
+import static org.hibernate.validator.internal.util.Contracts.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.mockito.ArgumentMatchers.*;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.when;
+
+@DataJpaTest
+@ContextConfiguration(classes = {TestConfiguration.class})
+
+public class CommunicationServiceTest {
+ @Qualifier("myCommunicationService")
+ @Autowired
+ private CommunicationService communicationService;
+
+ @MockBean
+ private CommunicationRepository communicationRepository;
+
+ @MockBean
+ private ContactRepository contactRepository;
+
+ @MockBean
+ private CommunicationTypeRepository communicationTypeRepository;
+
+ @Test
+ public void shouldReturnAddressesByContactUuid() {
+
+ List<TblCommunication> listTblCommunications = MockDataHelper.mockTblCommunicationsList();
+ when(communicationRepository.findByTblContactUuid( any(UUID.class)) ).thenReturn(listTblCommunications);
+
+ List<CommunicationDto> dtoList = communicationService.getCommunicationsByContactUuid(UUID.randomUUID());
+ assertEquals(dtoList.size(), 2 );
+ }
+
+ @Test
+ public void shouldReturnCommunicationsByContactUuidAndCommunicationUuid() {
+
+ TblCommunication tblCommunication = MockDataHelper.mockTblCommunication();
+ when(communicationRepository.findByUuid( any(UUID.class)) ).thenReturn(Optional.of(tblCommunication));
+
+ CommunicationDto dto = communicationService.getCommunication(tblCommunication.getTblContact().getUuid(), UUID.randomUUID());
+ assertEquals(tblCommunication.getUuid(), dto.getUuid() );
+ }
+
+ @Test
+ public void shouldUpdateCommunication() {
+ CommunicationDto communicationDto = MockDataHelper.mockCommunicationDto();
+ TblCommunication tblCommunication = MockDataHelper.mockTblCommunication();
+ TblContact tblContact = MockDataHelper.mockTblContact();
+ RefCommunicationType refCommunicationType = MockDataHelper.mockRefCommunicationType();
+ tblCommunication.setTblContact(tblContact);
+
+ when (contactRepository.findByUuid( any(UUID.class))).thenReturn(Optional.of(tblContact));
+ when(communicationRepository.findByUuid(any(UUID.class))).thenReturn(Optional.of(tblCommunication));
+ when(communicationRepository.save(any(TblCommunication.class))).thenReturn(tblCommunication);
+ when (communicationTypeRepository.findByUuid(any(UUID.class))).thenReturn(Optional.of(refCommunicationType));
+
+ CommunicationDto savedCommunication = communicationService.updateCommunication(communicationDto.getUuid(), communicationDto);
+
+ assertEquals(tblCommunication.getTblContact().getUuid(), savedCommunication.getContactUuid());
+ assertEquals(tblCommunication.getUuid(), savedCommunication.getUuid());
+ assertEquals(tblCommunication.getRefCommunicationType().getUuid(), savedCommunication.getCommunicationTypeUuid());
+ assertEquals(tblCommunication.getCommunicationData(), savedCommunication.getCommunicationData());
+
+ }
+
+ @Test
+ public void shouldNotUpdateCommunication_Exception1() {
+ CommunicationDto communicationDto = MockDataHelper.mockCommunicationDto();
+ TblCommunication tblCommunication = MockDataHelper.mockTblCommunication();
+ TblContact tblContact = MockDataHelper.mockTblContact();
+ RefCommunicationType refCommunicationType = MockDataHelper.mockRefCommunicationType();
+ tblCommunication.setTblContact(tblContact);
+
+ when (contactRepository.findByUuid( any(UUID.class))).thenReturn(Optional.empty());
+ when(communicationRepository.findByUuid(any(UUID.class))).thenReturn(Optional.of(tblCommunication));
+ when (communicationTypeRepository.findByUuid(any(UUID.class))).thenReturn(Optional.of(refCommunicationType));
+ when(communicationRepository.save(any(TblCommunication.class)))
+ .then((Answer<TblCommunication>) invocation -> {
+ Object[] args = invocation.getArguments();
+ return (TblCommunication) args[0];
+ });
+
+ assertThrows( NotFoundException.class, () -> communicationService.updateCommunication(communicationDto.getUuid(), communicationDto));
+ }
+
+ @Test
+ public void shouldNotUpdateCommunication_Exception2() {
+ CommunicationDto communicationDto = MockDataHelper.mockCommunicationDto();
+ TblCommunication tblCommunication = MockDataHelper.mockTblCommunication();
+ TblContact tblContact = MockDataHelper.mockTblContact();
+
+ tblCommunication.setTblContact(tblContact);
+
+
+ when (contactRepository.findByUuid( any(UUID.class))).thenReturn(Optional.of(tblContact));
+ when(communicationRepository.findByUuid(any(UUID.class))).thenReturn(Optional.of(tblCommunication));
+ when (communicationRepository.findByUuid(any(UUID.class))).thenReturn(Optional.empty());
+ when(communicationRepository.save(any(TblCommunication.class)))
+ .then((Answer<TblAddress>) invocation -> {
+ Object[] args = invocation.getArguments();
+ return (TblAddress) args[0];
+ });
+
+ assertThrows( NotFoundException.class, () -> communicationService.updateCommunication(communicationDto.getUuid(), communicationDto));
+ }
+
+ @Test
+ public void shouldNotUpdateCommunication_Exception3() {
+ CommunicationDto communicationDto = MockDataHelper.mockCommunicationDto();
+ TblCommunication tblCommunication = MockDataHelper.mockTblCommunication();
+ TblContact tblContact = MockDataHelper.mockTblContact();
+ RefCommunicationType refCommunicationType = MockDataHelper.mockRefCommunicationType();
+ tblCommunication.setTblContact(tblContact);
+
+ when (contactRepository.findByUuid( any(UUID.class))).thenReturn(Optional.of(tblContact));
+ when(communicationRepository.findByUuid(any(UUID.class))).thenReturn(Optional.of(tblCommunication));
+ when(communicationRepository.countByContactIdAndCommunicationTypeIdAndIsNotSame(any(Long.class), any(Long.class), any(UUID.class)) ).thenReturn(3L);
+ when (communicationTypeRepository.findByUuid(any(UUID.class))).thenReturn(Optional.of(refCommunicationType));
+
+ when(communicationRepository.save(any(TblCommunication.class)))
+ .then((Answer<TblCommunication>) invocation -> {
+ Object[] args = invocation.getArguments();
+ return (TblCommunication) args[0];
+ });
+
+ assertThrows( OperationDeniedException.class, () -> communicationService.updateCommunication(communicationDto.getUuid(), communicationDto));
+
+ }
+
+ @Test
+ public void shouldInsertCommunication() {
+ CommunicationDto communicationDto = MockDataHelper.mockCommunicationDto();
+ TblCommunication tblCommunication = MockDataHelper.mockTblCommunication();
+ TblContact tblContact = MockDataHelper.mockTblContact();
+ RefCommunicationType refCommunicationType = MockDataHelper.mockRefCommunicationType();
+ tblCommunication.setTblContact(tblContact);
+
+ when (contactRepository.findByUuid( any(UUID.class))).thenReturn(Optional.of(tblContact));
+ when(communicationRepository.save(any(TblCommunication.class))).thenReturn(tblCommunication);
+ when (communicationTypeRepository.findByUuid(any(UUID.class))).thenReturn(Optional.of(refCommunicationType));
+
+ CommunicationDto savedCommunication = communicationService.insertCommunication(communicationDto.getUuid(), communicationDto);
+
+ assertNotNull(savedCommunication.getContactUuid());
+ assertEquals(tblCommunication.getTblContact().getUuid(), savedCommunication.getContactUuid());
+ assertEquals(tblCommunication.getUuid(), savedCommunication.getUuid());
+ assertEquals(tblCommunication.getCommunicationData(), savedCommunication.getCommunicationData());
+ assertEquals(tblCommunication.getRefCommunicationType().getUuid(), savedCommunication.getCommunicationTypeUuid());
+ }
+
+ @Test
+ public void shouldNotInsertCommunication_Exception_1() {
+ CommunicationDto communicationDto = MockDataHelper.mockCommunicationDto();
+ TblCommunication tblCommunication = MockDataHelper.mockTblCommunication();
+ TblContact tblContact = MockDataHelper.mockTblContact();
+ RefCommunicationType refCommunicationType = MockDataHelper.mockRefCommunicationType();
+ tblCommunication.setTblContact(tblContact);
+
+ when (contactRepository.findByUuid( any(UUID.class))).thenReturn(Optional.empty());
+ when(communicationRepository.save(any(TblCommunication.class))).thenReturn(tblCommunication);
+ when (communicationTypeRepository.findByUuid(any(UUID.class))).thenReturn(Optional.of(refCommunicationType));
+
+ assertThrows( NotFoundException.class, () -> communicationService.insertCommunication(communicationDto.getUuid(), communicationDto));
+
+ }
+
+ @Test
+ public void shouldNotInsertCommunication_Exception_2() {
+ CommunicationDto communicationDto = MockDataHelper.mockCommunicationDto();
+ TblCommunication tblCommunication = MockDataHelper.mockTblCommunication();
+ TblContact tblContact = MockDataHelper.mockTblContact();
+ tblCommunication.setTblContact(tblContact);
+
+ when (contactRepository.findByUuid( any(UUID.class))).thenReturn(Optional.of(tblContact));
+ when(communicationRepository.save(any(TblCommunication.class))).thenReturn(tblCommunication);
+ when (communicationTypeRepository.findByUuid(any(UUID.class))).thenReturn(Optional.empty());
+
+ assertThrows( NotFoundException.class, () -> communicationService.insertCommunication(communicationDto.getUuid(), communicationDto));
+
+ }
+
+
+ @Test
+ public void shouldNotInsertCommunication_Exception3() {
+ CommunicationDto communicationDto = MockDataHelper.mockCommunicationDto();
+ TblCommunication tblCommunication = MockDataHelper.mockTblCommunication();
+ RefCommunicationType refCommunicationType = MockDataHelper.mockRefCommunicationType();
+ TblContact tblContact = MockDataHelper.mockTblContact();
+ tblCommunication.setTblContact(tblContact);
+
+ when (contactRepository.findByUuid( any(UUID.class))).thenReturn(Optional.of(tblContact));
+ when (communicationTypeRepository.findByUuid(any(UUID.class))).thenReturn(Optional.of(refCommunicationType));
+ when(communicationRepository.countByContactIdAndCommunicationTypeId(anyLong(), anyLong())).thenReturn(2L);
+ when(communicationRepository.save(any(TblCommunication.class))).thenReturn(tblCommunication);
+
+ assertThrows( OperationDeniedException.class, () -> communicationService.insertCommunication(communicationDto.getUuid(), communicationDto));
+
+ }
+
+
+ @Test
+ public void shouldDeleteCommunication() {
+ TblCommunication tblCommunication = MockDataHelper.mockTblCommunication();
+ TblContact tblContact = MockDataHelper.mockTblContact();
+ tblCommunication.setTblContact(tblContact);
+
+ when (contactRepository.findByUuid( any(UUID.class))).thenReturn(Optional.of(tblContact));
+ when(communicationRepository.findByTblContactAndUuid(any(TblContact.class), any(UUID.class))).thenReturn(Optional.of(tblCommunication));
+ Mockito.doNothing().when(communicationRepository).delete( isA( TblCommunication.class ));
+
+ communicationService.deleteCommunication(tblContact.getUuid(), tblCommunication.getUuid());
+
+ Mockito.verify(communicationRepository, times(1)).delete( tblCommunication );
+ }
+
+}
diff --git a/src/test/java/org/eclipse/openk/contactbasedata/support/MockDataHelper.java b/src/test/java/org/eclipse/openk/contactbasedata/support/MockDataHelper.java
index 5850ad6..06cbbf8 100644
--- a/src/test/java/org/eclipse/openk/contactbasedata/support/MockDataHelper.java
+++ b/src/test/java/org/eclipse/openk/contactbasedata/support/MockDataHelper.java
@@ -481,4 +481,75 @@
return contactDto;
}
+ public static CommunicationDto mockCommunicationDto(){
+ CommunicationDto dto = new CommunicationDto();
+ dto.setUuid(UUID.randomUUID());
+ dto.setContactUuid(UUID.randomUUID());
+ dto.setCommunicationData("030-12345678");
+ dto.setCommunicationTypeDescription("Faxgerät");
+ dto.setCommunicationTypeType("FAX");
+ dto.setCommunicationTypeUuid(UUID.randomUUID());
+
+ return dto;
+ }
+
+
+ public static List<CommunicationDto> mockCommunicationDtoList(){
+
+ List<CommunicationDto> list = new ArrayList<>();
+
+ CommunicationDto communicationDto1 = mockCommunicationDto();
+
+ CommunicationDto communicationDto2 = new CommunicationDto();
+ communicationDto2.setUuid(UUID.randomUUID());
+ communicationDto2.setContactUuid(UUID.randomUUID());
+ communicationDto2.setCommunicationData("030-456789012");
+ communicationDto2.setCommunicationTypeDescription("Telefon");
+ communicationDto2.setCommunicationTypeType("TEL");
+ communicationDto2.setCommunicationTypeUuid(UUID.randomUUID());
+
+ CommunicationDto communicationDto3 = new CommunicationDto();
+ communicationDto3.setUuid(UUID.randomUUID());
+ communicationDto3.setContactUuid(UUID.randomUUID());
+ communicationDto3.setCommunicationData("030-456789012");
+ communicationDto3.setCommunicationTypeDescription("Telefon");
+ communicationDto3.setCommunicationTypeType("TEL");
+ communicationDto3.setCommunicationTypeUuid(UUID.randomUUID());
+
+ list.add(communicationDto1);
+ list.add(communicationDto2);
+ list.add(communicationDto3);
+
+ return list;
+ }
+
+ public static TblCommunication mockTblCommunication(){
+ TblCommunication tblCommunication = new TblCommunication();
+
+ tblCommunication.setUuid(UUID.randomUUID());
+ tblCommunication.setTblContact(mockTblContact());
+ tblCommunication.setCommunicationData("030-55555555");
+ tblCommunication.setRefCommunicationType(mockRefCommunicationType());
+
+ return tblCommunication;
+ }
+
+ public static List<TblCommunication> mockTblCommunicationsList(){
+
+ List<TblCommunication> list = new ArrayList<>();
+
+ TblCommunication tblCommunicationDto1 = mockTblCommunication();
+
+ TblCommunication tblCommunicationDto2 = new TblCommunication();
+ tblCommunicationDto2.setCommunicationData("030-55555555");
+ tblCommunicationDto2.setRefCommunicationType(mockRefCommunicationType());
+ tblCommunicationDto2.setTblContact(mockTblContact());
+ tblCommunicationDto2.setUuid(UUID.randomUUID());
+
+ list.add(tblCommunicationDto1);
+ list.add(tblCommunicationDto2);
+
+ return list;
+ }
+
}