Upgrading from Play 2.3 to 2.4.4 and Secure Social 2.1.4 to 3.0-M4. Here is the setup for my FakeApplication in my test:
If I run the test without the additional configuration and update the application.conf to include the correct module, the test execute correctly. When I run it as shown, I get the error pasted below. Anyone seen this or have thoughts on it? Thanks!
Exception encountered when invoking run on a nested suite - Unable to create injector, see the following errors:
1) Could not find a suitable constructor in play.api.Configuration. Classes must have either one (and only one) constructor annotated with @Inject or a zero-argument constructor that is not private.
at play.api.Configuration.class(Configuration.scala:197)
while locating play.api.Configuration
for parameter 2 at play.api.inject.RoutesProvider.<init>(BuiltinModule.scala:64)
while locating play.api.inject.RoutesProvider
for parameter 1 at play.api.test.FakeRouterProvider.<init>(Fakes.scala:258)
at play.api.test.FakeApplication.<init>(Fakes.scala:215):
Binding(interface play.api.routing.Router to ProviderConstructionTarget(class play.api.test.FakeRouterProvider)) (via modules: com.google.inject.util.Modules$OverrideModule -> play.api.inject.guice.GuiceableModuleConversions$$anon$1)
2) Could not find a suitable constructor in play.api.Environment. Classes must have either one (and only one) constructor annotated with @Inject or a zero-argument constructor that is not private.
at play.api.Environment.class(Environment.scala:17)
while locating play.api.Environment
for parameter 1 at play.api.test.FakePluginsProvider.<init>(Fakes.scala:231)
at play.api.test.FakeApplication.<init>(Fakes.scala:214):
Binding(class play.api.Plugins to ProviderConstructionTarget(class play.api.test.FakePluginsProvider)) (via modules: com.google.inject.util.Modules$OverrideModule -> play.api.inject.guice.GuiceableModuleConversions$$anon$1)
3) Could not find a suitable constructor in play.api.Environment. Classes must have either one (and only one) constructor annotated with @Inject or a zero-argument constructor that is not private.
at play.api.Environment.class(Environment.scala:17)
while locating play.api.Environment
for parameter 1 at play.api.inject.RoutesProvider.<init>(BuiltinModule.scala:64)
while locating play.api.inject.RoutesProvider
for parameter 1 at play.api.test.FakeRouterProvider.<init>(Fakes.scala:258)
at play.api.test.FakeApplication.<init>(Fakes.scala:215):
Binding(interface play.api.routing.Router to ProviderConstructionTarget(class play.api.test.FakeRouterProvider)) (via modules: com.google.inject.util.Modules$OverrideModule -> play.api.inject.guice.GuiceableModuleConversions$$anon$1)
4) Could not find a suitable constructor in play.api.http.HttpConfiguration. Classes must have either one (and only one) constructor annotated with @Inject or a zero-argument constructor that is not private.
at play.api.http.HttpConfiguration.class(HttpConfiguration.scala:22)
while locating play.api.http.HttpConfiguration
for parameter 3 at play.api.inject.RoutesProvider.<init>(BuiltinModule.scala:64)
while locating play.api.inject.RoutesProvider
for parameter 1 at play.api.test.FakeRouterProvider.<init>(Fakes.scala:258)
at play.api.test.FakeApplication.<init>(Fakes.scala:215):
Binding(interface play.api.routing.Router to ProviderConstructionTarget(class play.api.test.FakeRouterProvider)) (via modules: com.google.inject.util.Modules$OverrideModule -> play.api.inject.guice.GuiceableModuleConversions$$anon$1)
4 errors
com.google.inject.CreationException: Unable to create injector, see the following errors:
1) Could not find a suitable constructor in play.api.Configuration. Classes must have either one (and only one) constructor annotated with @Inject or a zero-argument constructor that is not private.
at play.api.Configuration.class(Configuration.scala:197)
while locating play.api.Configuration
for parameter 2 at play.api.inject.RoutesProvider.<init>(BuiltinModule.scala:64)
while locating play.api.inject.RoutesProvider
for parameter 1 at play.api.test.FakeRouterProvider.<init>(Fakes.scala:258)
at play.api.test.FakeApplication.<init>(Fakes.scala:215):
Binding(interface play.api.routing.Router to ProviderConstructionTarget(class play.api.test.FakeRouterProvider)) (via modules: com.google.inject.util.Modules$OverrideModule -> play.api.inject.guice.GuiceableModuleConversions$$anon$1)
2) Could not find a suitable constructor in play.api.Environment. Classes must have either one (and only one) constructor annotated with @Inject or a zero-argument constructor that is not private.
at play.api.Environment.class(Environment.scala:17)
while locating play.api.Environment
for parameter 1 at play.api.test.FakePluginsProvider.<init>(Fakes.scala:231)
at play.api.test.FakeApplication.<init>(Fakes.scala:214):
Binding(class play.api.Plugins to ProviderConstructionTarget(class play.api.test.FakePluginsProvider)) (via modules: com.google.inject.util.Modules$OverrideModule -> play.api.inject.guice.GuiceableModuleConversions$$anon$1)
3) Could not find a suitable constructor in play.api.Environment. Classes must have either one (and only one) constructor annotated with @Inject or a zero-argument constructor that is not private.
at play.api.Environment.class(Environment.scala:17)
while locating play.api.Environment
for parameter 1 at play.api.inject.RoutesProvider.<init>(BuiltinModule.scala:64)
while locating play.api.inject.RoutesProvider
for parameter 1 at play.api.test.FakeRouterProvider.<init>(Fakes.scala:258)
at play.api.test.FakeApplication.<init>(Fakes.scala:215):
Binding(interface play.api.routing.Router to ProviderConstructionTarget(class play.api.test.FakeRouterProvider)) (via modules: com.google.inject.util.Modules$OverrideModule -> play.api.inject.guice.GuiceableModuleConversions$$anon$1)
4) Could not find a suitable constructor in play.api.http.HttpConfiguration. Classes must have either one (and only one) constructor annotated with @Inject or a zero-argument constructor that is not private.
at play.api.http.HttpConfiguration.class(HttpConfiguration.scala:22)
while locating play.api.http.HttpConfiguration
for parameter 3 at play.api.inject.RoutesProvider.<init>(BuiltinModule.scala:64)
while locating play.api.inject.RoutesProvider
for parameter 1 at play.api.test.FakeRouterProvider.<init>(Fakes.scala:258)
at play.api.test.FakeApplication.<init>(Fakes.scala:215):
Binding(interface play.api.routing.Router to ProviderConstructionTarget(class play.api.test.FakeRouterProvider)) (via modules: com.google.inject.util.Modules$OverrideModule -> play.api.inject.guice.GuiceableModuleConversions$$anon$1)
4 errors
at com.google.inject.internal.Errors.throwCreationExceptionIfErrorsExist(Errors.java:466)
at com.google.inject.internal.InternalInjectorCreator.initializeStatically(InternalInjectorCreator.java:155)
at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:107)
at com.google.inject.Guice.createInjector(Guice.java:96)
at com.google.inject.Guice.createInjector(Guice.java:73)
at com.google.inject.Guice.createInjector(Guice.java:62)
at play.api.inject.guice.GuiceBuilder.injector(GuiceInjectorBuilder.scala:126)
at play.api.inject.guice.GuiceApplicationBuilder.build(GuiceApplicationBuilder.scala:93)
at play.api.test.FakeApplication.<init>(Fakes.scala:216)
at org.scalatestplus.play.OneAppPerSuite$class.run(OneAppPerSuite.scala:139)
at controllers.TestController.run(TestController.scala:22)
at org.scalatest.tools.SuiteRunner.run(SuiteRunner.scala:55)
at org.scalatest.tools.Runner$$anonfun$doRunRunRunDaDoRunRun$3.apply(Runner.scala:2563)
at org.scalatest.tools.Runner$$anonfun$doRunRunRunDaDoRunRun$3.apply(Runner.scala:2557)
at scala.collection.immutable.List.foreach(List.scala:381)
at org.scalatest.tools.Runner$.doRunRunRunDaDoRunRun(Runner.scala:2557)
at org.scalatest.tools.Runner$$anonfun$runOptionallyWithPassFailReporter$2.apply(Runner.scala:1044)
at org.scalatest.tools.Runner$$anonfun$runOptionallyWithPassFailReporter$2.apply(Runner.scala:1043)
at org.scalatest.tools.Runner$.withClassLoaderAndDispatchReporter(Runner.scala:2722)
at org.scalatest.tools.Runner$.runOptionallyWithPassFailReporter(Runner.scala:1043)
at org.scalatest.tools.Runner$.run(Runner.scala:883)
at org.scalatest.tools.Runner.run(Runner.scala)
at org.jetbrains.plugins.scala.testingSupport.scalaTest.ScalaTestRunner.runScalaTest2(ScalaTestRunner.java:138)
at org.jetbrains.plugins.scala.testingSupport.scalaTest.ScalaTestRunner.main(ScalaTestRunner.java:28)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)