diff --git a/view/pom.xml b/view/pom.xml index 09d31eda79..b05f59bd56 100644 --- a/view/pom.xml +++ b/view/pom.xml @@ -55,6 +55,11 @@ <artifactId>wicket-tester</artifactId> <scope>test</scope> </dependency> + <dependency> + <groupId>org.apache.wicket</groupId> + <artifactId>wicket-spring</artifactId> + <scope>test</scope> + </dependency> <dependency> <groupId>org.wicketstuff</groupId> <artifactId>wicketstuff-jasperreports</artifactId> diff --git a/view/src/test/java/se/su/dsv/scipro/SciProTest.java b/view/src/test/java/se/su/dsv/scipro/SciProTest.java index 9a400e0086..c8240ce767 100755 --- a/view/src/test/java/se/su/dsv/scipro/SciProTest.java +++ b/view/src/test/java/se/su/dsv/scipro/SciProTest.java @@ -12,6 +12,8 @@ import org.apache.wicket.Session; import org.apache.wicket.guice.GuiceComponentInjector; import org.apache.wicket.request.Request; import org.apache.wicket.request.Response; +import org.apache.wicket.spring.injection.annot.SpringComponentInjector; +import org.apache.wicket.spring.test.ApplicationContextMock; import org.apache.wicket.util.tester.WicketTester; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.extension.ExtendWith; @@ -361,9 +363,12 @@ public abstract class SciProTest { @BeforeEach public void setUpApplication() { final Class<? extends SciProTest> clazz = getClass(); - final Injector injector = Guice.createInjector(new MockModule(clazz)); + ApplicationContextMock applicationContext = new MockModule(clazz); - SciProApplication application = new SciProApplication(injector.getInstance(CurrentProfile.class)) { + CurrentProfile currentProfile = new CurrentProfile(); + currentProfile.setCurrentProfileString("TEST"); + + SciProApplication application = new SciProApplication(currentProfile) { @Override public Session newSession(Request request, Response response) { @@ -371,7 +376,7 @@ public abstract class SciProTest { } }; application.getComponentInstantiationListeners().add( - new GuiceComponentInjector(application, injector)); + new SpringComponentInjector(application, applicationContext)); tester = new WicketTester(application, System.getProperty("user.dir") + "/src/main/webapp"); setLoggedIn(true); @@ -464,27 +469,23 @@ public abstract class SciProTest { return sb.toString(); } - private class MockModule extends AbstractModule { + private class MockModule extends ApplicationContextMock { private final Class<? extends SciProTest> clazz; public MockModule(Class<? extends SciProTest> clazz) { this.clazz = clazz; + configure(); } @SuppressWarnings("unchecked") - @Override - protected void configure() { - Multibinder.newSetBinder(binder(), Lifecycle.class); - Multibinder.newSetBinder(binder(), UserImportService.class) - .addBinding().toInstance(userImportService); - bindConstant().annotatedWith(Names.named("profile")).to("TEST"); - bind(Clock.class).toInstance(Clock.systemDefaultZone()); + private void configure() { + putBean(Clock.systemDefaultZone()); for (Class<?> c = clazz; c != null; c = c.getSuperclass()) { for (Field f : c.getDeclaredFields()) { if (f.getAnnotation(Mock.class) != null && f.trySetAccessible()) { try { Class<Object> type = (Class<Object>) f.getType(); - bind(type).toInstance(f.get(SciProTest.this)); + putBean(f.getName(), f.get(SciProTest.this)); } catch (IllegalAccessException e) { throw new RuntimeException(e); }