Я создаю службу аутентификации в Lagom (scala), которая состоит из сущности устройства и обработчика событий. Служба использует подключаемый модуль JDBC вместо Cassandra по умолчанию. При написании интеграционных тестов я обнаружил, что обработчик событий не вызывается для событий только для инициализации. Я не знаю, как подойти...
abstract class AuthApplication(context: LagomApplicationContext) extends LagomApplication(context)
with JdbcPersistenceComponents
with AhcWSComponents
with HikariCPComponents {
override lazy val lagomServer = serverFor[AuthService](wire[AuthServiceImpl])
lazy val jsonSerializerRegistry = AuthSerializerRegistry
lazy val jwtAuthenticator: PkiAuthenticator = new JwtAuthenticator(config.getConfig("jwt"))
lazy val tokenRepository = wire[TokenRepository]
persistentEntityRegistry.register(wire[DeviceEntity])
readSide.register(wire[DeviceEventProcessor])
wire[TokenScheduler]
}
Инициализация интеграционного теста:
override def beforeAll: Unit = {
server = ServiceTest.startServer(ServiceTest.defaultSetup.withCassandra(true)) { ctx =>
new ServiceTestApplication(ctx)
}
authService = server.serviceClient.implement[AuthService]
}
withClient
для таких типов тестов, а не шаблонbeforeAll
. Не уверен, что это что-то решит, но это просто стиль. - person erip   schedule 02.01.2018authService
равноvar
, его начальное значение будетnull
, поэтому возможны побочные эффекты работы инициализации службы. - person erip   schedule 02.01.2018withClient
, я с ней не знаком? - person idoshamun   schedule 02.01.2018