HelloDbControllerTest.java 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. package controllers;
  2. import dao.SetupDao;
  3. import model.World;
  4. import ninja.NinjaDocTester;
  5. import org.doctester.testbrowser.Request;
  6. import org.doctester.testbrowser.Response;
  7. import org.hamcrest.CoreMatchers;
  8. import static org.hamcrest.CoreMatchers.is;
  9. import static org.hamcrest.CoreMatchers.notNullValue;
  10. import org.junit.Test;
  11. import static org.junit.Assert.*;
  12. import org.junit.Before;
  13. public class HelloDbControllerTest extends NinjaDocTester {
  14. String URL_DB = "/db";
  15. String URL_QUERIES = "/queries";
  16. String URL_UPDATE = "/update";
  17. @Before
  18. public void setupClass() {
  19. getInjector().getInstance(SetupDao.class).generateWorldsForTest();
  20. }
  21. @Test
  22. public void testSingleGet() {
  23. Response response = makeRequest(
  24. Request
  25. .GET()
  26. .url(testServerUrl().path(URL_DB))
  27. .contentTypeApplicationJson());
  28. // Just make sure that we get back a World Json.
  29. assertThat(response.payloadAs(World.class), notNullValue());
  30. }
  31. @Test
  32. public void multipleQueries() {
  33. assertThatMutipleGetWorksFor(1);
  34. assertThatMutipleGetWorksFor(5);
  35. assertThatMutipleGetWorksFor(10);
  36. assertThatMutipleGetWorksFor(15);
  37. assertThatMutipleGetWorksFor(20);
  38. }
  39. private void assertThatMutipleGetWorksFor(int numberOfQueries) {
  40. Response response = makeRequest(
  41. Request
  42. .GET()
  43. .url(
  44. testServerUrl()
  45. .path(URL_QUERIES)
  46. .addQueryParameter("queries", numberOfQueries + ""))
  47. .contentTypeApplicationJson());
  48. // Just make sure that we get back an array
  49. assertThat(response.payloadAs(World[].class).length, is(numberOfQueries));
  50. }
  51. @Test
  52. public void testUpdates() {
  53. assertThatUpdateWorks(1);
  54. assertThatUpdateWorks(5);
  55. assertThatUpdateWorks(10);
  56. assertThatUpdateWorks(15);
  57. assertThatUpdateWorks(20);
  58. }
  59. private void assertThatUpdateWorks(int numberOfQueries) {
  60. Response response = makeRequest(
  61. Request.GET()
  62. .url(
  63. testServerUrl()
  64. .path(URL_UPDATE)
  65. .addQueryParameter("queries", numberOfQueries + ""))
  66. .contentTypeApplicationJson());
  67. assertThat(response.payloadAs(World[].class).length, is(numberOfQueries));
  68. }
  69. }