/sitebricks-acceptance-tests/src/test/java/com/google/sitebricks/acceptance/RestfuWebServiceWithSubpathsAcceptanceTest.java

https://github.com/mgenov/sitebricks · Java · 112 lines · 90 code · 18 blank · 4 comment · 0 complexity · 5b04cbc22c4f24a219450017c562e1a0 MD5 · raw file

  1. package com.google.sitebricks.acceptance;
  2. import com.google.common.collect.ImmutableSet;
  3. import com.google.inject.AbstractModule;
  4. import com.google.inject.Guice;
  5. import com.google.inject.Injector;
  6. import com.google.sitebricks.acceptance.util.AcceptanceTest;
  7. import com.google.sitebricks.client.Web;
  8. import com.google.sitebricks.client.WebResponse;
  9. import com.google.sitebricks.client.transport.Json;
  10. import com.google.sitebricks.conversion.Converter;
  11. import com.google.sitebricks.conversion.ConverterRegistry;
  12. import com.google.sitebricks.conversion.StandardTypeConverter;
  13. import com.google.sitebricks.example.RestfulWebServiceWithSubpaths;
  14. import org.testng.annotations.Test;
  15. import java.util.Date;
  16. /**
  17. * @author Dhanji R. Prasanna (dhanji@gmail.com)
  18. */
  19. @Test(suiteName = AcceptanceTest.SUITE)
  20. public class RestfuWebServiceWithSubpathsAcceptanceTest {
  21. public void shouldServiceTopLevelPath() {
  22. WebResponse response = createInjector()
  23. .getInstance(Web.class)
  24. .clientOf(AcceptanceTest.baseUrl() + "/superpath")
  25. .transports(String.class)
  26. .over(Json.class)
  27. .get();
  28. assert RestfulWebServiceWithSubpaths.TOPLEVEL.equals(response.toString());
  29. }
  30. public void shouldServiceFirstSubPath() {
  31. WebResponse response = createInjector()
  32. .getInstance(Web.class)
  33. .clientOf(AcceptanceTest.baseUrl() + "/superpath/subpath1")
  34. .transports(String.class)
  35. .over(Json.class)
  36. .post("");
  37. assert RestfulWebServiceWithSubpaths.PATH_1.equals(response.toString()) : response.toString();
  38. }
  39. public void shouldServiceSecondSubPath() {
  40. WebResponse response = createInjector()
  41. .getInstance(Web.class)
  42. .clientOf(AcceptanceTest.baseUrl() + "/superpath/subpath2")
  43. .transports(String.class)
  44. .over(Json.class)
  45. .post("");
  46. assert RestfulWebServiceWithSubpaths.PATH_2.equals(response.toString()) : response.toString();
  47. }
  48. public void shouldServiceThirdSubPath() {
  49. WebResponse response = createInjector()
  50. .getInstance(Web.class)
  51. .clientOf(AcceptanceTest.baseUrl() + "/superpath/subpath3")
  52. .transports(String.class)
  53. .over(Json.class)
  54. .post("");
  55. assert RestfulWebServiceWithSubpaths.PATH_3.equals(response.toString()) : response.toString();
  56. }
  57. public void shouldServiceVariableTwoLevelSubPath() {
  58. WebResponse response = createInjector()
  59. .getInstance(Web.class)
  60. .clientOf(AcceptanceTest.baseUrl() + "/superpath/subpath1/a_thing")
  61. .transports(String.class)
  62. .over(Json.class)
  63. .post("");
  64. assert "a_thing".equals(response.toString()) : response.toString();
  65. }
  66. public void shouldServiceVariableThreeLevelSubPath() {
  67. WebResponse response = createInjector()
  68. .getInstance(Web.class)
  69. .clientOf(AcceptanceTest.baseUrl() + "/superpath/subpath1/a_thing/another_thing")
  70. .transports(String.class)
  71. .over(Json.class)
  72. .post("");
  73. assert "a_thing_another_thing".equals(response.toString()) : response.toString();
  74. }
  75. public void shouldServiceVariableTwoLevelSubPath2() {
  76. String aString = "aoskdoaksd" + new Date().hashCode();
  77. WebResponse response = createInjector()
  78. .getInstance(Web.class)
  79. .clientOf(AcceptanceTest.baseUrl() + "/superpath/subpath3/" + aString)
  80. .transports(String.class)
  81. .over(Json.class)
  82. .post("");
  83. // Should be reflected
  84. assert aString.equals(response.toString()) : response.toString();
  85. }
  86. private Injector createInjector() {
  87. return Guice.createInjector(new AbstractModule() {
  88. protected void configure() {
  89. bind(ConverterRegistry.class).toInstance(new StandardTypeConverter(
  90. ImmutableSet.<Converter>of()));
  91. }
  92. });
  93. }
  94. }