package controllers; import org.junit.Test; import play.Application; import play.inject.guice.GuiceApplicationBuilder; import play.mvc.Http; import play.mvc.Result; import play.test.WithApplication; import java.util.Optional; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static play.mvc.Http.Status.*; import static play.test.Helpers.GET; import static play.test.Helpers.route; public class HomeControllerUnitTest extends WithApplication { @Override protected Application provideApplication() { return new GuiceApplicationBuilder().build(); } @Test public void givenRequest_whenRootPath_ThenStatusOkay() { Http.RequestBuilder request = new Http.RequestBuilder() .method(GET) .uri("/"); Result result = route(app, request); assertEquals(OK, result.status()); } @Test public void givenRequest_whenHtmlPath_ThenStatusOkay() { Http.RequestBuilder request = new Http.RequestBuilder() .method(GET) .uri("/baeldung/html"); Result result = route(app, request); assertEquals(OK, result.status()); } @Test public void givenRequest_whenBadRequest_ThenStatusBadRequest() { Http.RequestBuilder request = new Http.RequestBuilder() .method(GET) .uri("/baeldung/bad-req"); Result result = route(app, request); assertEquals(BAD_REQUEST, result.status()); } @Test public void givenRequest_whenNotFound_ThenStatusNotFound() { Http.RequestBuilder request = new Http.RequestBuilder() .method(GET) .uri("/baeldung/not-found"); Result result = route(app, request); assertEquals(NOT_FOUND, result.status()); } @Test public void givenRequest_whenCustomContentTypePath_ThenContextTypeTextHtml() { Http.RequestBuilder request = new Http.RequestBuilder() .method(GET) .uri("/baeldung/custom-content-type"); Result result = route(app, request); assertTrue(result.contentType().isPresent()); assertEquals("text/html", result.contentType().get()); } @Test public void givenRequest_whenAsyncPath_ThenStatusOkay() { Http.RequestBuilder request = new Http.RequestBuilder() .method(GET) .uri("/baeldung/async"); Result result = route(app, request); assertEquals(OK, result.status()); } @Test public void givenRequest_whenHeadersPath_ThenCustomHeaderFieldSet() { Http.RequestBuilder request = new Http.RequestBuilder() .method(GET) .uri("/baeldung/headers"); Result result = route(app, request); final Optional headerOptional = result.header("Header-Key"); assertTrue(headerOptional.isPresent()); assertEquals("Some value", headerOptional.get()); } }