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

OZG-6867 Throw exception when group could not be created in KC

parent 26c8272e
Branches
Tags
No related merge requests found
......@@ -5,4 +5,8 @@ public class OrganisationsEinheitSynchronizationException extends RuntimeExcepti
public OrganisationsEinheitSynchronizationException(String message) {
super(message);
}
public OrganisationsEinheitSynchronizationException(String message, Throwable cause) {
super(message, cause);
}
}
......@@ -100,7 +100,8 @@ class SyncService {
Optional<String> addAsGroupInKeycloak(OrganisationsEinheit organisationsEinheit) {
if (organisationsEinheit.getParentId() != null) {
throw new OrganisationsEinheitSynchronizationException("Organisationseinheit %s has parent".formatted(organisationsEinheit.getOrganisationsEinheitId()));
throw new OrganisationsEinheitSynchronizationException(
"Organisationseinheit %s has parent".formatted(organisationsEinheit.getOrganisationsEinheitId()));
}
var addGroupData = organisationsEinheitMapper.toAddGroupData(organisationsEinheit);
return addGroupInKeycloak(addGroupData);
......@@ -119,8 +120,7 @@ class SyncService {
try {
return Optional.of(keycloakRemoteService.addGroup(addGroupData));
} catch (ResourceCreationException e) {
LOG.error("Error adding group %s in Keycloak".formatted(addGroupData), e);
return Optional.empty();
throw new OrganisationsEinheitSynchronizationException("Error creating group %s in Keycloak".formatted(addGroupData), e);
}
}
}
......@@ -603,6 +603,9 @@ class SyncServiceTest {
@Nested
class TestAddGroupInKeycloak {
private static final String FAILURE_MESSAGE = LoremIpsum.getInstance().getWords(5);
private final Throwable resourceCreationException = new ResourceCreationException(FAILURE_MESSAGE);
private final String keycloakId = GroupTestFactory.ID;
private final AddGroupData addGroupData = AddGroupDataTestFactory.create();
......@@ -625,12 +628,11 @@ class SyncServiceTest {
}
@Test
void shouldReturnEmptyInCaseOfException() {
void shouldThrowExceptionInCaseOfResourceCreationException() {
givenAddGroupFailed();
var keycloakId = callService();
assertThat(keycloakId).isEmpty();
assertThatExceptionOfType(OrganisationsEinheitSynchronizationException.class).isThrownBy(this::callService)
.withMessage("Error creating group %s in Keycloak", addGroupData.toString()).withCause(resourceCreationException);
}
private void givenAddGroupSuccessful() {
......@@ -638,7 +640,7 @@ class SyncServiceTest {
}
private void givenAddGroupFailed() {
when(keycloakRemoteService.addGroup(addGroupData)).thenThrow(new ResourceCreationException("Failure"));
when(keycloakRemoteService.addGroup(addGroupData)).thenThrow(resourceCreationException);
}
private Optional<String> callService() {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment