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 0000000000000000000000000000000000000000..b6b004ccb687e1ac21979c5b4ff148d4c5ab6b6a --- /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 0000000000000000000000000000000000000000..e4f0dee20887cad830a95666be154a6c204a13c3 --- /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 0000000000000000000000000000000000000000..345b190daa67a011ac5ee4d417d88fada7374138 --- /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 0000000000000000000000000000000000000000..a75e00d6c71d081e3b2a686d462ecbbacf416a9d --- /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); + } + +}