diff --git a/src/test/java/de/ozgcloud/admin/organisationseinheit/SyncAddedOrganisationsEinheitenITCase.java b/src/test/java/de/ozgcloud/admin/organisationseinheit/SyncAddedOrganisationsEinheitenITCase.java index 9204b58dc98768fb140ab4479ab7fe9651324ad5..ca1b0366500f5ea25e29cef7ebdaee5deff22484 100644 --- a/src/test/java/de/ozgcloud/admin/organisationseinheit/SyncAddedOrganisationsEinheitenITCase.java +++ b/src/test/java/de/ozgcloud/admin/organisationseinheit/SyncAddedOrganisationsEinheitenITCase.java @@ -67,6 +67,20 @@ class SyncAddedOrganisationsEinheitenITCase { .containsExactly(childLevel1.getName()); } + @Test + void shouldSynchronizeChildAddedToAlreadySynchronizedParent() { + var parent = topLevel("shouldSynchronizeChildAddedToAlreadySynchronizedParent"); + syncOrganisationsEinheitToKeycloak(parent); + var childLevel1 = childLevel("shouldSynchronizeChildAddedToAlreadySynchronizedParent", parent); + operations.save(childLevel1); + + service.syncAddedOrganisationsEinheiten(syncTimestamp); + + assertThat(findGroupInKeycloak(parent.getName())).isPresent().get() + .extracting(Group::getSubGroups).asList().extracting("name") + .containsExactly(childLevel1.getName()); + } + @Test void shouldNotAddChildIfParentWasNotSynchronized() { var topLevel = topLevel("shouldNotAddChildIfParentWasNotSynchronized"); @@ -106,4 +120,9 @@ class SyncAddedOrganisationsEinheitenITCase { .filter(group -> groupName.equals(group.getName())) .findFirst(); } + + private void syncOrganisationsEinheitToKeycloak(OrganisationsEinheit organisationsEinheit) { + operations.save(organisationsEinheit); + service.syncAddedOrganisationsEinheiten(syncTimestamp); + } }