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

OZG-6099 add test for context provider

parent 70278716
Branches
Tags
No related merge requests found
/*
* Copyright (C) 2024 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.ozgcloud.vorgang;
import static org.assertj.core.api.Assertions.*;
import static org.mockito.Mockito.*;
import java.util.Optional;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Spy;
import de.ozgcloud.apilib.user.OzgCloudUserId;
import de.ozgcloud.vorgang.callcontext.CallContextUser;
import de.ozgcloud.vorgang.callcontext.CurrentUserService;
import de.ozgcloud.vorgang.callcontext.VorgangManagerClientCallContextAttachingInterceptor;
class VorgangManagerCallContextProviderTest {
private static final String USER_ID = "userId";
@Spy
@InjectMocks
private VorgangManagerCallContextProvider contextProvider;
@Mock
private CurrentUserService currentUserService;
@Nested
class TestProvideContext {
@Test
void shouldSetClientName() {
var result = contextProvider.provideContext();
assertThat(result.getClientName()).isEqualTo(VorgangManagerClientCallContextAttachingInterceptor.VORGANG_MANAGER_CLIENT_NAME);
}
@Test
void shouldCallFindUserId() {
contextProvider.provideContext();
verify(contextProvider).findUserId();
}
@Test
void shouldSetUserId() {
var userId = OzgCloudUserId.from(USER_ID);
when(contextProvider.findUserId()).thenReturn(Optional.of(userId));
var result = contextProvider.provideContext();
assertThat(result.getUserId()).isEqualTo(userId);
}
}
@Nested
class TestFindUserId {
@Test
void shouldCallCurrentUserService() {
contextProvider.findUserId();
verify(currentUserService).findUser();
}
@Test
void shouldReturnUserId() {
var callContextUser = CallContextUser.builder().userId(Optional.of(USER_ID)).build();
when(currentUserService.findUser()).thenReturn(Optional.of(callContextUser));
var result = contextProvider.findUserId();
assertThat(result).contains(OzgCloudUserId.from(USER_ID));
}
@Test
void shouldReturnIfNoUser() {
var result = contextProvider.findUserId();
assertThat(result).isEmpty();
}
@Test
void shouldReturnIfNoUserId() {
var callContextUser = CallContextUser.builder().userId(Optional.empty()).build();
when(currentUserService.findUser()).thenReturn(Optional.of(callContextUser));
var result = contextProvider.findUserId();
assertThat(result).isEmpty();
}
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment