jackmiras
05/17/2017, 6:31 PMobject UserPresenterTest : Spek({
given("the user presenter") {
val request = mock<Request>()
val response = mock<Response>()
given("a post action with a valid user to register") {
afterGroup { userFactory.clear() }
on("the attempt to register a valid user") {
it("should have a positive match for valid user from json") {
val user = userFactory.build()
doReturn(user.toJson()).whenever(request).body()
<http://userPresenter.post|userPresenter.post>(request, response)
userPresenter.user.isValid().shouldBeTrue()
}
}
}
}
})
open class UserPresenter : UserContract {
override fun post(request: Request, response: Response): Answer {
user = request.bodyAsObject(User::class)
if (userRepository.isAlreadyPersisted(user.email)) {
return render(response, getMessage(request.locale(), "user_already_exists"), 409)
} else if (user.isValid()) {
user.logged = true
userRepository.save(user)
return render(response, user, 201)
} else {
return render(response, getMessage(request.locale(), "invalid_params"), 422)
}
}
fun render(response: Response, message: String, status: Int): Answer {
response.type("application/json")
response.status(status) // This is the line number 105 referenced at the exception.
return Answer(message, status)
}
}