mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-15 01:36:19 +01:00
added modules, classloading and view packages to sonia.scm.lifecycle
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
package sonia.scm.lifecycle.modules;
|
||||
|
||||
import com.google.inject.Guice;
|
||||
import com.google.inject.Injector;
|
||||
import com.google.inject.servlet.GuiceFilter;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
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 sonia.scm.Default;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.servlet.FilterConfig;
|
||||
import javax.servlet.ServletContext;
|
||||
import javax.servlet.ServletException;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
class ServletContextModuleTest {
|
||||
|
||||
@Mock
|
||||
private ServletContext servletContext;
|
||||
|
||||
private GuiceFilter guiceFilter;
|
||||
|
||||
@BeforeEach
|
||||
void setUpEnvironment() throws ServletException {
|
||||
guiceFilter = new GuiceFilter();
|
||||
FilterConfig filterConfig = mock(FilterConfig.class);
|
||||
when(filterConfig.getServletContext()).thenReturn(servletContext);
|
||||
|
||||
guiceFilter.init(filterConfig);
|
||||
}
|
||||
|
||||
@AfterEach
|
||||
void tearDownEnvironment() {
|
||||
guiceFilter.destroy();
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldBeAbleToInjectServletContext() {
|
||||
Injector injector = Guice.createInjector(new ServletContextModule());
|
||||
WebComponent instance = injector.getInstance(WebComponent.class);
|
||||
assertThat(instance.context).isSameAs(servletContext);
|
||||
}
|
||||
|
||||
|
||||
public static class WebComponent {
|
||||
|
||||
private ServletContext context;
|
||||
|
||||
@Inject
|
||||
public WebComponent(@Default ServletContext context) {
|
||||
this.context = context;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user