jeudi 8 octobre 2015

How to test controllers that has akka system injected for Play framework?

Below is my controller:

package controllers

import java.util.TimeZone

import akka.actor.{ActorNotFound, ActorSystem}
import akka.util.Timeout
import com.google.inject.Inject
import com.typesafe.akka.extension.quartz.QuartzSchedulerExtension
import play.api.Logger
import play.api.libs.concurrent.Execution.Implicits.defaultContext
import play.api.libs.json.{JsValue, JsError, JsSuccess}
import play.api.mvc._

import scala.concurrent.Future
import scala.concurrent.duration._

class ScheduleController @Inject()(system: ActorSystem) extends Controller {

  val scheduler = QuartzSchedulerExtension.get(system)
  implicit val timeout = new Timeout(5.seconds)

  def index = Action.async {
    Future.successful(Ok("hi"))
  }

  def run = Action.async { request =>
    // find actor and "start" it by sending message to it, return Ok() if found
    // if actor is not found, return BadRequest()
    // if error return InternalServerError()
  }
}

I've been looking for tutorials but most are outdated since they deal with Play 2.3.

Aucun commentaire:

Enregistrer un commentaire