Я хочу написать единичный тест, чтобы протестировать мой пользовательский механизм действий.Как я могу проверить это пользовательское действие, которое расширяет ActionBuilder?
Как только я установил ActionWithSession как в экземпляре в своем тесте, как мне создать экземпляр, как если бы он был в контроллере?
Как я могу проверить для случаев краев, если он перенаправляет или возвращает с помощью сеанса?
class SessionAwareRequest[A](val context: MyContext, request: Request[A]) extends WrappedRequest[A](request)
class ActionWithSession @Inject()(siteConfig: SiteConfig, userService: UserService)
extends ActionBuilder[SessionAwareRequest] {
def invokeBlock[A](request: Request[A], block: (SessionAwareRequest[A]) => Future[Result]) = {
val session = loadSession(request)
if(session.isDefined) {
val result: Future[Result] = block(new SessionAwareRequest(session.get, request))
result.map(_.withCookies(CookieHelper.newSession(session.get)(request)))
}
else {
Future.successful(Results.Redirect(routes.MessagesController.show("error!")))
}
def loadSession(requestHeader: RequestHeader): Option[MySession] = {
...
Some(MySession(...))
else
None
}
}