From bc08a4b33e0c9f11ed95b3c70f2f2b7aecaf0db3 Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Thu, 17 Oct 2024 18:01:09 +0200 Subject: [PATCH] OZG-6867 OZG-6902 implement data access api --- .../OrganisationsEinheitRepository.java | 9 ++++ .../OrganisationsEinheitService.java | 17 +++++++ .../OrganisationsEinheitServiceTest.java | 45 +++++++++++++++++++ .../OrganisationsEinheitTestFactory.java | 35 +++++++++++++++ 4 files changed, 106 insertions(+) create mode 100644 src/main/java/de/ozgcloud/admin/organisationseinheit/OrganisationsEinheitRepository.java create mode 100644 src/main/java/de/ozgcloud/admin/organisationseinheit/OrganisationsEinheitService.java create mode 100644 src/test/java/de/ozgcloud/admin/organisationseinheit/OrganisationsEinheitServiceTest.java create mode 100644 src/test/java/de/ozgcloud/admin/organisationseinheit/OrganisationsEinheitTestFactory.java diff --git a/src/main/java/de/ozgcloud/admin/organisationseinheit/OrganisationsEinheitRepository.java b/src/main/java/de/ozgcloud/admin/organisationseinheit/OrganisationsEinheitRepository.java new file mode 100644 index 00000000..b6b004cc --- /dev/null +++ b/src/main/java/de/ozgcloud/admin/organisationseinheit/OrganisationsEinheitRepository.java @@ -0,0 +1,9 @@ +package de.ozgcloud.admin.organisationseinheit; + +import org.springframework.data.mongodb.repository.MongoRepository; +import org.springframework.stereotype.Repository; + +@Repository +interface OrganisationsEinheitRepository extends MongoRepository<OrganisationsEinheit, String> { + +} diff --git a/src/main/java/de/ozgcloud/admin/organisationseinheit/OrganisationsEinheitService.java b/src/main/java/de/ozgcloud/admin/organisationseinheit/OrganisationsEinheitService.java new file mode 100644 index 00000000..e4f0dee2 --- /dev/null +++ b/src/main/java/de/ozgcloud/admin/organisationseinheit/OrganisationsEinheitService.java @@ -0,0 +1,17 @@ +package de.ozgcloud.admin.organisationseinheit; + +import org.springframework.stereotype.Service; + +import lombok.RequiredArgsConstructor; + +@Service +@RequiredArgsConstructor +class OrganisationsEinheitService { + + private final OrganisationsEinheitRepository organisationsEinheitRepository; + + public OrganisationsEinheit saveOrganisationsEinheit(OrganisationsEinheit organisationsEinheit) { + return organisationsEinheitRepository.save(organisationsEinheit); + } + +} diff --git a/src/test/java/de/ozgcloud/admin/organisationseinheit/OrganisationsEinheitServiceTest.java b/src/test/java/de/ozgcloud/admin/organisationseinheit/OrganisationsEinheitServiceTest.java new file mode 100644 index 00000000..345b190d --- /dev/null +++ b/src/test/java/de/ozgcloud/admin/organisationseinheit/OrganisationsEinheitServiceTest.java @@ -0,0 +1,45 @@ +package de.ozgcloud.admin.organisationseinheit; + +import static org.assertj.core.api.Assertions.*; +import static org.mockito.Mockito.*; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; + +class OrganisationsEinheitServiceTest { + + @InjectMocks + private OrganisationsEinheitService service; + + @Mock + private OrganisationsEinheitRepository organisationsEinheitRepository; + + @Nested + class TestSaveOrganisationsEinheit { + + private final OrganisationsEinheit organisationsEinheit = OrganisationsEinheitTestFactory.create(); + + @BeforeEach + void setUp() { + when(organisationsEinheitRepository.save(organisationsEinheit)).thenReturn(organisationsEinheit); + } + + @Test + void shouldCallRepository() { + service.saveOrganisationsEinheit(organisationsEinheit); + + verify(organisationsEinheitRepository).save(organisationsEinheit); + } + + @Test + void shouldReturnSavedOrganisationsEinheit() { + var saved = service.saveOrganisationsEinheit(organisationsEinheit); + + assertThat(saved).isEqualTo(organisationsEinheit); + } + } + +} \ No newline at end of file diff --git a/src/test/java/de/ozgcloud/admin/organisationseinheit/OrganisationsEinheitTestFactory.java b/src/test/java/de/ozgcloud/admin/organisationseinheit/OrganisationsEinheitTestFactory.java new file mode 100644 index 00000000..a75e00d6 --- /dev/null +++ b/src/test/java/de/ozgcloud/admin/organisationseinheit/OrganisationsEinheitTestFactory.java @@ -0,0 +1,35 @@ +package de.ozgcloud.admin.organisationseinheit; + +import java.util.List; +import java.util.UUID; + +import com.thedeanda.lorem.LoremIpsum; + +public class OrganisationsEinheitTestFactory { + + public static final String ID = UUID.randomUUID().toString(); + public static final String NAME = LoremIpsum.getInstance().getName(); + public static final String ANSCHRIFT = LoremIpsum.getInstance().getCity(); + public static final String ORGANISATIONS_EINHEIT_ID = UUID.randomUUID().toString(); + public static final String UEBERGEORDNETE_ORGANISATIONSEINHEIT_ID = UUID.randomUUID().toString(); + public static final List<String> UNTERGEORDNETE_ORGANISATIONSEINHEIT_ID = List.of(UUID.randomUUID().toString()); + public static final String ZUFI_ID = UUID.randomUUID().toString(); + public static final SyncResult SYNC_RESULT = SyncResult.OK; + + public static OrganisationsEinheit create(){ + return createBuilder().build(); + } + + public static OrganisationsEinheit.OrganisationsEinheitBuilder createBuilder(){ + return OrganisationsEinheit.builder() + .id(ID) + .name(NAME) + .anschrift(ANSCHRIFT) + .organisationsEinheitId(ORGANISATIONS_EINHEIT_ID) + .uebergeordneteOrganisationseinheitId(UEBERGEORDNETE_ORGANISATIONSEINHEIT_ID) + .untergeordneteOrganisationseinheitId(UNTERGEORDNETE_ORGANISATIONSEINHEIT_ID) + .zufiId(ZUFI_ID) + .syncResult(SYNC_RESULT); + } + +} -- GitLab