Migration complète vers PrimeFaces Freya - Corrections des incompatibilités et intégration de primefaces-freya-extension
This commit is contained in:
@@ -0,0 +1,88 @@
|
||||
package dev.lions.user.manager.security;
|
||||
|
||||
import jakarta.ws.rs.container.ContainerRequestContext;
|
||||
import jakarta.ws.rs.core.SecurityContext;
|
||||
import jakarta.ws.rs.core.UriInfo;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
/**
|
||||
* Tests unitaires pour DevSecurityContextProducer
|
||||
*/
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
class DevSecurityContextProducerTest {
|
||||
|
||||
@Mock
|
||||
private ContainerRequestContext requestContext;
|
||||
|
||||
@Mock
|
||||
private UriInfo uriInfo;
|
||||
|
||||
@Mock
|
||||
private SecurityContext originalSecurityContext;
|
||||
|
||||
private DevSecurityContextProducer producer;
|
||||
|
||||
@BeforeEach
|
||||
void setUp() throws Exception {
|
||||
producer = new DevSecurityContextProducer();
|
||||
|
||||
// Injecter les propriétés via reflection
|
||||
setField("profile", "dev");
|
||||
setField("oidcEnabled", false);
|
||||
}
|
||||
|
||||
private void setField(String fieldName, Object value) throws Exception {
|
||||
Field field = DevSecurityContextProducer.class.getDeclaredField(fieldName);
|
||||
field.setAccessible(true);
|
||||
field.set(producer, value);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testFilter_DevMode() throws Exception {
|
||||
setField("profile", "dev");
|
||||
setField("oidcEnabled", true);
|
||||
|
||||
when(requestContext.getUriInfo()).thenReturn(uriInfo);
|
||||
when(uriInfo.getPath()).thenReturn("/api/users");
|
||||
when(requestContext.getSecurityContext()).thenReturn(originalSecurityContext);
|
||||
|
||||
producer.filter(requestContext);
|
||||
|
||||
verify(requestContext, times(1)).setSecurityContext(any(SecurityContext.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testFilter_ProdMode() throws Exception {
|
||||
setField("profile", "prod");
|
||||
setField("oidcEnabled", true);
|
||||
|
||||
// En mode prod, on n'a pas besoin de mocker getUriInfo car le code ne l'utilise pas
|
||||
producer.filter(requestContext);
|
||||
|
||||
verify(requestContext, never()).setSecurityContext(any(SecurityContext.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testFilter_OidcDisabled() throws Exception {
|
||||
setField("profile", "prod");
|
||||
setField("oidcEnabled", false);
|
||||
|
||||
when(requestContext.getUriInfo()).thenReturn(uriInfo);
|
||||
when(uriInfo.getPath()).thenReturn("/api/users");
|
||||
when(requestContext.getSecurityContext()).thenReturn(originalSecurityContext);
|
||||
|
||||
producer.filter(requestContext);
|
||||
|
||||
verify(requestContext, times(1)).setSecurityContext(any(SecurityContext.class));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user