import org.junit.FixMethodOrder; import org.junit.Test; import org.junit.runners.MethodSorters; import play.mvc.Result; import play.test.WithApplication; import java.util.HashMap; import java.util.Map; import static org.assertj.core.api.Assertions.assertThat; import static play.api.test.CSRFTokenHelper.addCSRFToken; import static play.test.Helpers.*; // Use FixMethodOrder to run the tests sequentially @FixMethodOrder(MethodSorters.NAME_ASCENDING) public class FunctionalTest extends WithApplication { @Test public void redirectHomePage() { Result result = route(app, controllers.routes.HomeController.index()); assertThat(result.status()).isEqualTo(SEE_OTHER); assertThat(result.redirectLocation().get()).isEqualTo("/computers"); } @Test public void listComputersOnTheFirstPage() { Result result = route(app, controllers.routes.HomeController.list(0, "name", "asc", "")); assertThat(result.status()).isEqualTo(OK); assertThat(contentAsString(result)).contains("574 computers found"); } @Test public void filterComputerByName() { Result result = route(app, controllers.routes.HomeController.list(0, "name", "asc", "Apple")); assertThat(result.status()).isEqualTo(OK); assertThat(contentAsString(result)).contains("13 computers found"); } @Test public void createANewComputer() { Result result = route(app, addCSRFToken(fakeRequest().uri(controllers.routes.HomeController.save().url()))); assertThat(result.status()).isEqualTo(OK); Map data = new HashMap<>(); data.put("name", "FooBar"); data.put("introduced", "badbadbad"); data.put("company.id", "1"); String saveUrl = controllers.routes.HomeController.save().url(); result = route(app, addCSRFToken(fakeRequest().bodyForm(data).method("POST").uri(saveUrl))); assertThat(result.status()).isEqualTo(BAD_REQUEST); assertThat(contentAsString(result)).contains(""); // assertThat(contentAsString(result)).contains(" assertThat(contentAsString(result)).contains("