Merge branch 'KON_39-Maske-Interne-Person-hinzufuegen' of ssh://git.eclipse.org:29418/openk-usermodules/org.eclipse.openk-usermodules.contactBaseData.backend into DEVELOP
diff --git a/src/main/java/org/eclipse/openk/contactbasedata/service/CompanyService.java b/src/main/java/org/eclipse/openk/contactbasedata/service/CompanyService.java
index 02b0d1c..b88907b 100644
--- a/src/main/java/org/eclipse/openk/contactbasedata/service/CompanyService.java
+++ b/src/main/java/org/eclipse/openk/contactbasedata/service/CompanyService.java
@@ -96,6 +96,7 @@
existingCompany.setCompanyName(companyDto.getCompanyName());
existingCompany.setCompanyType(companyDto.getCompanyType());
+ existingCompany.setHrNumber(companyDto.getHrNumber());
setFromCompanyDto( existingCompany, companyDto );
companyUpdated = companyRepository.save(existingCompany);
diff --git a/src/main/java/org/eclipse/openk/contactbasedata/service/InternalPersonService.java b/src/main/java/org/eclipse/openk/contactbasedata/service/InternalPersonService.java
index 6963a09..c10b9d6 100644
--- a/src/main/java/org/eclipse/openk/contactbasedata/service/InternalPersonService.java
+++ b/src/main/java/org/eclipse/openk/contactbasedata/service/InternalPersonService.java
@@ -104,6 +104,9 @@
existingInternalPerson.setLastName(internalPersonDto.getLastName());
existingInternalPerson.setFirstName(internalPersonDto.getFirstName());
existingInternalPerson.setTitle(internalPersonDto.getTitle());
+ existingInternalPerson.setDepartment(internalPersonDto.getDepartment());
+ existingInternalPerson.setUid(internalPersonDto.getUid());
+ existingInternalPerson.setUserRef(internalPersonDto.getUserRef());
setFromInternalPersonDto( existingInternalPerson, internalPersonDto );
internalPersonUpdated = internalPersonRepository.save(existingInternalPerson);
diff --git a/src/test/java/org/eclipse/openk/contactbasedata/service/CompanyServiceTest.java b/src/test/java/org/eclipse/openk/contactbasedata/service/CompanyServiceTest.java
new file mode 100644
index 0000000..ba0b175
--- /dev/null
+++ b/src/test/java/org/eclipse/openk/contactbasedata/service/CompanyServiceTest.java
@@ -0,0 +1,144 @@
+/*
+ *******************************************************************************
+ * 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.model.TblCompany;
+import org.eclipse.openk.contactbasedata.model.TblContact;
+import org.eclipse.openk.contactbasedata.repository.CompanyRepository;
+import org.eclipse.openk.contactbasedata.repository.ContactRepository;
+import org.eclipse.openk.contactbasedata.repository.PersonTypeRepository;
+import org.eclipse.openk.contactbasedata.repository.SalutationRepository;
+import org.eclipse.openk.contactbasedata.support.MockDataHelper;
+import org.eclipse.openk.contactbasedata.viewmodel.CompanyDto;
+import org.junit.jupiter.api.Test;
+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.Optional;
+import java.util.UUID;
+
+import static org.junit.jupiter.api.Assertions.*;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.when;
+
+@DataJpaTest
+@ContextConfiguration(classes = {TestConfiguration.class})
+
+public class CompanyServiceTest {
+ @Qualifier("myCompanyService")
+ @Autowired
+ private CompanyService companyService;
+
+ @MockBean
+ private CompanyRepository companyRepository;
+
+ @MockBean
+ private ContactRepository contactRepository;
+
+ @MockBean
+ private SalutationRepository salutationRepository;
+
+ @MockBean
+ private PersonTypeRepository personTypeRepository;
+
+ @Test
+ public void shouldFindACompanyProperly() {
+ TblCompany ep = MockDataHelper.mockCompany();
+ when(companyRepository.findByTblContactUuid(any(UUID.class))).thenReturn(Optional.of(ep));
+ CompanyDto dto = companyService.findCompany(UUID.randomUUID());
+
+ assertEquals(ep.getContact().getUuid(), dto.getContactUuid());
+ }
+
+ @Test
+ public void shouldThrowInErrorCaseWithCompany() {
+ TblCompany ep = MockDataHelper.mockCompany();
+ when(companyRepository.findByTblContactUuid(any(UUID.class))).thenReturn(Optional.empty());
+ assertThrows(NotFoundException.class, () -> companyService.findCompany(UUID.randomUUID()));
+ }
+
+ @Test
+ public void shouldUpdateCompany() {
+ CompanyDto epDto = MockDataHelper.mockCompanyDto();
+ TblCompany epTbl = MockDataHelper.mockCompany();
+ when(companyRepository.findByTblContactUuid(any(UUID.class))).thenReturn(Optional.of(epTbl));
+ when(salutationRepository.findByUuid(any(UUID.class)))
+ .thenReturn(Optional.of(MockDataHelper.mockRefSalutation()));
+ when(personTypeRepository.findByUuid(any(UUID.class)))
+ .thenReturn(Optional.of(MockDataHelper.mockRefPersonType()));
+
+ when(companyRepository.save(any(TblCompany.class)))
+ .then((Answer<TblCompany>) invocation -> {
+ Object[] args = invocation.getArguments();
+ return (TblCompany) args[0];
+ });
+
+ CompanyDto savedDto = companyService.updateCompany(epDto);
+ assertEquals(epTbl.getContact().getUuid(), savedDto.getContactUuid());
+ assertEquals(epTbl.getContact().getNote(), savedDto.getContactNote());
+ assertEquals(epTbl.getContact().getContactType(), savedDto.getContactType());
+ assertEquals(epTbl.getCompanyName(), savedDto.getCompanyName());
+ assertEquals(epTbl.getCompanyType(), savedDto.getCompanyType());
+ }
+
+ @Test
+ public void shouldNotUpdateCompany_Exception1() {
+ CompanyDto epDto = MockDataHelper.mockCompanyDto();
+ TblCompany epTbl = MockDataHelper.mockCompany();
+ when(companyRepository.findByTblContactUuid(any(UUID.class))).thenReturn(Optional.empty());
+ when(salutationRepository.findByUuid(any(UUID.class)))
+ .thenReturn(Optional.of(MockDataHelper.mockRefSalutation()));
+ when(personTypeRepository.findByUuid(any(UUID.class)))
+ .thenReturn(Optional.of(MockDataHelper.mockRefPersonType()));
+
+ when(companyRepository.save(any(TblCompany.class)))
+ .then((Answer<TblCompany>) invocation -> {
+ Object[] args = invocation.getArguments();
+ return (TblCompany) args[0];
+ });
+
+ assertThrows( NotFoundException.class, () -> companyService.updateCompany(epDto));
+ }
+
+ @Test
+ public void shouldInsertCompany() {
+ CompanyDto epDto = MockDataHelper.mockCompanyDto();
+ epDto.setContactUuid(null);
+
+ when(contactRepository.save(any(TblContact.class)))
+ .then((Answer<TblContact>) invocation -> {
+ Object[] args = invocation.getArguments();
+ return (TblContact) args[0];
+ });
+ when(companyRepository.save(any(TblCompany.class)))
+ .then((Answer<TblCompany>) invocation -> {
+ Object[] args = invocation.getArguments();
+ return (TblCompany) args[0];
+ });
+
+ CompanyDto savedDto = companyService.insertCompany(epDto);
+ assertNotNull(savedDto.getContactUuid());
+ assertEquals(epDto.getContactNote(), savedDto.getContactNote());
+ assertEquals(epDto.getContactType(), savedDto.getContactType());
+ assertEquals(epDto.getCompanyName(), savedDto.getCompanyName());
+ assertEquals(epDto.getCompanyType(), savedDto.getCompanyType());
+ }
+}
\ No newline at end of file