class ValidationControllerTest extends play.test.WithApplication {
@Test
def testValidate {
import scala.collection.JavaConversions._
val fakeApp = new play.test.FakeApplication(
new java.io.File("."),
classOf[FakeApplication].getClassLoader,
new java.util.HashMap,
List("ch.maxant.scalabook.play20.plugins.xasupport.XASupportPlugin"),
null)
start(fakeApp)
//setup inputs
val request = FakeRequest(POST, "/validate").
withSession(ValidationController.EventUid -> "LKJSC-W1").
withHeaders("content-type" -> "application/x-www-form-urlencoded").
withFormUrlEncodedBody(ValidationController.BookingRef -> "bookingRefAsdf")
//setup dependencies
ValidationController.ticketGateway = TicketGatewayStub
ValidationController.validationRepository = ValidationRepoStub
ValidationController.userRepository = UserRepoStub
//call to method under test
val result = route(request).get
//assertions
val c = contentAsString(result) //waits for async result
val s = status(result)
assertEquals(OK, s)
assertTrue(c.contains("bookingRefStillOpen"))
assertFalse(c.contains("bookingRefAsdf"))
}