Skip to content
Snippets Groups Projects
Commit fbc8c4e1 authored by OZGCloud's avatar OZGCloud
Browse files

OZG-6721: OZG-6914: Add map from Stream to Map for OE-data from Repository.

parent 89d43b88
No related branches found
No related tags found
No related merge requests found
package de.ozgcloud.admin.common.organisationseinheit; package de.ozgcloud.admin.common.organisationseinheit;
import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitSettings;
import java.util.Collections;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream; import java.util.stream.Stream;
import org.springframework.stereotype.Service;
import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitSettings;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
...@@ -19,6 +19,14 @@ public class OrganisationsEinheitSettingsService { ...@@ -19,6 +19,14 @@ public class OrganisationsEinheitSettingsService {
} }
Map<String, OrganisationsEinheitSettings> getSettingsMap(Stream<OrganisationsEinheitWithSettings> settings) { Map<String, OrganisationsEinheitSettings> getSettingsMap(Stream<OrganisationsEinheitWithSettings> settings) {
return Map.of(); if(settings == null){
return Collections.emptyMap();
}
return settings.collect(
Collectors.toMap(
entry -> entry.organisationsEinheitId(),
entry -> entry.settings()
)
);
} }
} }
...@@ -2,8 +2,9 @@ package de.ozgcloud.admin.common.organisationseinheit; ...@@ -2,8 +2,9 @@ package de.ozgcloud.admin.common.organisationseinheit;
import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitSettings; import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitSettings;
interface OrganisationsEinheitWithSettings { record OrganisationsEinheitWithSettings(
String organisationsEinheitId,
OrganisationsEinheitSettings settings
) {
String getOrganisationsEinheitId();
OrganisationsEinheitSettings getSettings();
} }
...@@ -74,7 +74,7 @@ class OrganisationsEinheitSettingsRepositoryITCase { ...@@ -74,7 +74,7 @@ class OrganisationsEinheitSettingsRepositoryITCase {
void shouldFind() { void shouldFind() {
var found = repository.getSettings(); var found = repository.getSettings();
assertThat(found).extracting(OrganisationsEinheitWithSettings::getOrganisationsEinheitId, item -> item.getSettings().getSignatur()) assertThat(found).extracting(OrganisationsEinheitWithSettings::organisationsEinheitId, item -> item.settings().getSignatur())
.containsExactlyInAnyOrder( .containsExactlyInAnyOrder(
tuple(withSignatur1.getOrganisationsEinheitId(), withSignatur1.getSettings().getSignatur()), tuple(withSignatur1.getOrganisationsEinheitId(), withSignatur1.getSettings().getSignatur()),
tuple(withSignatur2.getOrganisationsEinheitId(), withSignatur2.getSettings().getSignatur())); tuple(withSignatur2.getOrganisationsEinheitId(), withSignatur2.getSettings().getSignatur()));
......
package de.ozgcloud.admin.common.organisationseinheit; package de.ozgcloud.admin.common.organisationseinheit;
import static org.assertj.core.api.Assertions.*; import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.ArgumentMatchers.*; import static org.assertj.core.api.Assertions.entry;
import static org.mockito.Mockito.*; import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitSettings;
import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitSettingsTestFactory;
import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitTestFactory;
import java.util.Map; import java.util.Map;
import java.util.stream.Stream; import java.util.stream.Stream;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
...@@ -14,12 +21,9 @@ import org.mockito.ArgumentCaptor; ...@@ -14,12 +21,9 @@ import org.mockito.ArgumentCaptor;
import org.mockito.Captor; import org.mockito.Captor;
import org.mockito.InjectMocks; import org.mockito.InjectMocks;
import org.mockito.Mock; import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.Spy; import org.mockito.Spy;
import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitSettings;
import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitSettingsTestFactory;
import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitTestFactory;
class OrganisationsEinheitSettingsServiceTest { class OrganisationsEinheitSettingsServiceTest {
@Mock @Mock
...@@ -31,14 +35,14 @@ class OrganisationsEinheitSettingsServiceTest { ...@@ -31,14 +35,14 @@ class OrganisationsEinheitSettingsServiceTest {
private final OrganisationsEinheitWithSettings withSettings1 = mockWith(OrganisationsEinheitTestFactory.ID, private final OrganisationsEinheitWithSettings withSettings1 = mockWith(OrganisationsEinheitTestFactory.ID,
OrganisationsEinheitSettingsTestFactory.create()); OrganisationsEinheitSettingsTestFactory.create());
@Nested
class TestGetSettings {
@BeforeEach @BeforeEach
void init() { void init2() {
when(settingsRepository.getSettings()).thenReturn(Stream.of(withSettings1)); when(settingsRepository.getSettings()).thenReturn(Stream.of(withSettings1));
} }
@Nested
class TestGetSettings {
private final Map<String, OrganisationsEinheitSettings> settingsMap = Map.of( private final Map<String, OrganisationsEinheitSettings> settingsMap = Map.of(
OrganisationsEinheitTestFactory.ORGANISATIONS_EINHEIT_ID, OrganisationsEinheitSettingsTestFactory.create() OrganisationsEinheitTestFactory.ORGANISATIONS_EINHEIT_ID, OrganisationsEinheitSettingsTestFactory.create()
); );
...@@ -74,12 +78,63 @@ class OrganisationsEinheitSettingsServiceTest { ...@@ -74,12 +78,63 @@ class OrganisationsEinheitSettingsServiceTest {
@Nested @Nested
class TestGetSettingsMap { class TestGetSettingsMap {
@Test
void shouldUseGetterWhenMapping() {
OrganisationsEinheitWithSettings settings = Mockito.mock(OrganisationsEinheitWithSettings.class);
doReturn(OrganisationsEinheitTestFactory.ORGANISATIONS_EINHEIT_ID).when(settings).organisationsEinheitId();
doReturn(OrganisationsEinheitSettingsTestFactory.create()).when(settings).settings();
callService(Stream.of(settings));
verify(settings, times(1)).organisationsEinheitId();
verify(settings, times(1)).settings();
}
@Test
void shouldConvertToMap() {
OrganisationsEinheitWithSettings oews = OrganisationsEinheitWithSettingsTestFactory.create();
var settingsMap = callService(Stream.of(oews));
assertThat(settingsMap).containsEntry(OrganisationsEinheitTestFactory.ORGANISATIONS_EINHEIT_ID, oews.settings());
}
@Test
void shouldGetEmptyMapIfStreamEmpty() {
var settingsMap = callService(Stream.of());
assertThat(settingsMap).size().isEqualTo(0);
}
@Test
void shouldGetEmptyMapIfNull() {
var settingsMap = callService(null);
assertThat(settingsMap).size().isEqualTo(0);
}
@Test
void shouldHaveAllEntries() {
OrganisationsEinheitWithSettings owes = OrganisationsEinheitWithSettingsTestFactory.create();
OrganisationsEinheitWithSettings owes2 = OrganisationsEinheitWithSettingsTestFactory.createAnother();
var settingsMap = callService(Stream.of(owes, owes2));
assertThat(settingsMap).containsExactly(
entry(owes.organisationsEinheitId(), owes.settings()),
entry(owes2.organisationsEinheitId(), owes2.settings()));
}
Map<String, OrganisationsEinheitSettings> callService(Stream<OrganisationsEinheitWithSettings> settings) {
return service.getSettingsMap(settings);
}
} }
private OrganisationsEinheitWithSettings mockWith(String organisationsEinheitId, OrganisationsEinheitSettings settings) { private OrganisationsEinheitWithSettings mockWith(String organisationsEinheitId, OrganisationsEinheitSettings settings) {
var withSettings = mock(OrganisationsEinheitWithSettings.class); var withSettings = mock(OrganisationsEinheitWithSettings.class);
when(withSettings.getOrganisationsEinheitId()).thenReturn(organisationsEinheitId); when(withSettings.organisationsEinheitId()).thenReturn(organisationsEinheitId);
when(withSettings.getSettings()).thenReturn(settings); when(withSettings.settings()).thenReturn(settings);
return withSettings; return withSettings;
} }
} }
package de.ozgcloud.admin.common.organisationseinheit;
import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitSettingsTestFactory;
import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitTestFactory;
import java.util.UUID;
public class OrganisationsEinheitWithSettingsTestFactory {
public static OrganisationsEinheitWithSettings create() {
return new OrganisationsEinheitWithSettings(
OrganisationsEinheitTestFactory.ORGANISATIONS_EINHEIT_ID,
OrganisationsEinheitSettingsTestFactory.create()
);
}
public static OrganisationsEinheitWithSettings createAnother() {
return new OrganisationsEinheitWithSettings(
UUID.randomUUID().toString(),
OrganisationsEinheitSettingsTestFactory.create()
);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment