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;
import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitSettings;
import java.util.Collections;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.springframework.stereotype.Service;
import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitSettings;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@Service
@RequiredArgsConstructor
......@@ -19,6 +19,14 @@ public class OrganisationsEinheitSettingsService {
}
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;
import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitSettings;
interface OrganisationsEinheitWithSettings {
record OrganisationsEinheitWithSettings(
String organisationsEinheitId,
OrganisationsEinheitSettings settings
) {
String getOrganisationsEinheitId();
OrganisationsEinheitSettings getSettings();
}
......@@ -74,7 +74,7 @@ class OrganisationsEinheitSettingsRepositoryITCase {
void shouldFind() {
var found = repository.getSettings();
assertThat(found).extracting(OrganisationsEinheitWithSettings::getOrganisationsEinheitId, item -> item.getSettings().getSignatur())
assertThat(found).extracting(OrganisationsEinheitWithSettings::organisationsEinheitId, item -> item.settings().getSignatur())
.containsExactlyInAnyOrder(
tuple(withSignatur1.getOrganisationsEinheitId(), withSignatur1.getSettings().getSignatur()),
tuple(withSignatur2.getOrganisationsEinheitId(), withSignatur2.getSettings().getSignatur()));
......
package de.ozgcloud.admin.common.organisationseinheit;
import static org.assertj.core.api.Assertions.*;
import static org.mockito.ArgumentMatchers.*;
import static org.mockito.Mockito.*;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.entry;
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.stream.Stream;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
......@@ -14,12 +21,9 @@ import org.mockito.ArgumentCaptor;
import org.mockito.Captor;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.Spy;
import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitSettings;
import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitSettingsTestFactory;
import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitTestFactory;
class OrganisationsEinheitSettingsServiceTest {
@Mock
......@@ -31,14 +35,14 @@ class OrganisationsEinheitSettingsServiceTest {
private final OrganisationsEinheitWithSettings withSettings1 = mockWith(OrganisationsEinheitTestFactory.ID,
OrganisationsEinheitSettingsTestFactory.create());
@Nested
class TestGetSettings {
@BeforeEach
void init() {
void init2() {
when(settingsRepository.getSettings()).thenReturn(Stream.of(withSettings1));
}
@Nested
class TestGetSettings {
private final Map<String, OrganisationsEinheitSettings> settingsMap = Map.of(
OrganisationsEinheitTestFactory.ORGANISATIONS_EINHEIT_ID, OrganisationsEinheitSettingsTestFactory.create()
);
......@@ -74,12 +78,63 @@ class OrganisationsEinheitSettingsServiceTest {
@Nested
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) {
var withSettings = mock(OrganisationsEinheitWithSettings.class);
when(withSettings.getOrganisationsEinheitId()).thenReturn(organisationsEinheitId);
when(withSettings.getSettings()).thenReturn(settings);
when(withSettings.organisationsEinheitId()).thenReturn(organisationsEinheitId);
when(withSettings.settings()).thenReturn(settings);
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