diff --git a/user-manager-server/src/test/java/de/itvsh/kop/user/recipient/RecipientRepositoryTest.java b/user-manager-server/src/test/java/de/itvsh/kop/user/recipient/RecipientRepositoryTest.java new file mode 100644 index 0000000000000000000000000000000000000000..cbaa0e317db05fae25cf5adf319144cd8176d42d --- /dev/null +++ b/user-manager-server/src/test/java/de/itvsh/kop/user/recipient/RecipientRepositoryTest.java @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den + * Ministerpräsidenten des Landes Schleswig-Holstein + * Staatskanzlei + * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung + * + * Lizenziert unter der EUPL, Version 1.2 oder - sobald + * diese von der Europäischen Kommission genehmigt wurden - + * Folgeversionen der EUPL ("Lizenz"); + * Sie dürfen dieses Werk ausschließlich gemäß + * dieser Lizenz nutzen. + * Eine Kopie der Lizenz finden Sie hier: + * + * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * Sofern nicht durch anwendbare Rechtsvorschriften + * gefordert oder in schriftlicher Form vereinbart, wird + * die unter der Lizenz verbreitete Software "so wie sie + * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - + * ausdrücklich oder stillschweigend - verbreitet. + * Die sprachspezifischen Genehmigungen und Beschränkungen + * unter der Lizenz sind dem Lizenztext zu entnehmen. + */ +package de.itvsh.kop.user.recipient; + +import static de.itvsh.kop.user.User.*; +import static org.mockito.ArgumentMatchers.*; +import static org.mockito.Mockito.*; + +import java.util.List; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; +import org.mockito.Mock; +import org.mockito.Spy; + +import de.itvsh.kop.user.User; +import de.itvsh.kop.user.UserTestFactory; +import de.itvsh.kop.user.settings.NotificationsSendFor; +import io.quarkus.mongodb.panache.PanacheQuery; + +class RecipientRepositoryTest { + @Spy + RecipientRepository recipientRepository; + + @Mock + PanacheQuery<User> panacheQuery; + + @DisplayName("Test finding users by Organistationseinheit") + @Nested + class TestFindByOrganisationsEinheit { + private static final String QUERY = ORGANISATIONS_EINHEIT_IDS_FIELD + " = ?1 and " + NOTIFICATION_SEND_FOR_FIELD + " = ?2"; + + @Test + void shouldCallFind() { + when(panacheQuery.list()).thenReturn(List.of(UserTestFactory.create())); + doReturn(panacheQuery).when(recipientRepository).find(anyString(), anyString(), anyString()); + + recipientRepository.findByOrganisationsEinheitId(UserTestFactory.ORGANISTATIONSEINHEITEN_ID); + + verify(recipientRepository).find(QUERY, UserTestFactory.ORGANISTATIONSEINHEITEN_ID, NotificationsSendFor.ALL.name()); + } + } +}