You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

109 lines
3.7 KiB

  1. package de.fd.fh.network;
  2. import de.fd.fh.shared.Utils;
  3. import de.fd.fh.shared.network.messages.ChangeUserRequest;
  4. import de.fd.fh.shared.network.messages.PlayerResponse;
  5. import de.fd.fh.shared.network.messages.UserRequest;
  6. import feign.Feign;
  7. import feign.Request;
  8. import feign.gson.GsonDecoder;
  9. import feign.gson.GsonEncoder;
  10. import feign.mock.HttpMethod;
  11. import feign.mock.MockClient;
  12. import feign.mock.MockTarget;
  13. import org.junit.jupiter.api.BeforeEach;
  14. import org.junit.jupiter.api.Test;
  15. import static org.junit.jupiter.api.Assertions.*;
  16. class UserClientTest
  17. {
  18. private UserClient client;
  19. private MockClient mockClient;
  20. @BeforeEach
  21. void before()
  22. {
  23. mockClient = new MockClient();
  24. client = Feign.builder()
  25. .decoder(new GsonDecoder())
  26. .encoder(new GsonEncoder())
  27. .client(mockClient)
  28. .target(new MockTarget<>(UserClient.class));
  29. }
  30. @Test
  31. void updatePlayer()
  32. {
  33. mockClient.ok(HttpMethod.POST, "/users",
  34. "{\n" +
  35. " \"id\": {\n" +
  36. " \"identifier\":\"12345\"\n" +
  37. " },\n" +
  38. " \"name\":\"TestName\"\n" +
  39. "}");
  40. final ChangeUserRequest request = new ChangeUserRequest(
  41. "TestName",
  42. "TestPassword");
  43. final PlayerResponse response = client.updatePlayer("TestAuthHeader", request);
  44. assertNotNull(response);
  45. assertEquals("TestName", response.getName());
  46. assertEquals("12345", response.getId().getIdentifier());
  47. final Request sended = mockClient.verifyOne(HttpMethod.POST, "/users");
  48. assertTrue(sended.headers().get(Utils.AUTHENTICATION_HEADER).stream().findFirst().isPresent());
  49. assertEquals("Bearer TestAuthHeader",
  50. sended.headers().get(Utils.AUTHENTICATION_HEADER).stream().findFirst().get());
  51. }
  52. @Test
  53. void getShortPlayerTest()
  54. {
  55. mockClient.ok(HttpMethod.GET, "/users/12345",
  56. "{\n" +
  57. " \"id\":\"12345\",\n" +
  58. " \"name\":\"TestName\"\n" +
  59. "}");
  60. final UserRequest response = client.getShortPlayer("TestAuthHeader", "12345");
  61. assertNotNull(response);
  62. assertEquals("TestName", response.getName());
  63. assertEquals("12345", response.getId());
  64. final Request sended = mockClient.verifyOne(HttpMethod.GET, "/users/12345");
  65. assertTrue(sended.headers().get(Utils.AUTHENTICATION_HEADER).stream().findFirst().isPresent());
  66. assertEquals("Bearer TestAuthHeader",
  67. sended.headers().get(Utils.AUTHENTICATION_HEADER).stream().findFirst().get());
  68. }
  69. @Test
  70. void getCurrentPlayerTest()
  71. {
  72. mockClient.ok(HttpMethod.GET, "/users",
  73. "{\n" +
  74. " \"id\":\n" +
  75. " {\n" +
  76. " \"identifier\":\"12345\"\n" +
  77. " },\n" +
  78. " \"name\":\"TestName\"\n" +
  79. "}");
  80. final PlayerResponse response = client.getCurrentPlayer("TestAuthHeader");
  81. assertNotNull(response);
  82. assertEquals("TestName", response.getName());
  83. assertEquals("12345", response.getId().getIdentifier());
  84. final Request sended = mockClient.verifyOne(HttpMethod.GET, "/users");
  85. assertTrue(sended.headers().get(Utils.AUTHENTICATION_HEADER).stream().findFirst().isPresent());
  86. assertEquals("Bearer TestAuthHeader",
  87. sended.headers().get(Utils.AUTHENTICATION_HEADER).stream().findFirst().get());
  88. }
  89. }