|
|
package de.fd.fh.network;
import de.fd.fh.shared.Utils; import de.fd.fh.shared.network.messages.ChangeUserRequest; import de.fd.fh.shared.network.messages.PlayerResponse; import de.fd.fh.shared.network.messages.UserRequest; import feign.Feign; import feign.Request; import feign.gson.GsonDecoder; import feign.gson.GsonEncoder; import feign.mock.HttpMethod; import feign.mock.MockClient; import feign.mock.MockTarget; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class UserClientTest { private UserClient client; private MockClient mockClient;
@BeforeEach void before() { mockClient = new MockClient();
client = Feign.builder() .decoder(new GsonDecoder()) .encoder(new GsonEncoder()) .client(mockClient) .target(new MockTarget<>(UserClient.class)); }
@Test void updatePlayer() { mockClient.ok(HttpMethod.POST, "/users", "{\n" + " \"id\": {\n" + " \"identifier\":\"12345\"\n" + " },\n" + " \"name\":\"TestName\"\n" + "}");
final ChangeUserRequest request = new ChangeUserRequest( "TestName", "TestPassword");
final PlayerResponse response = client.updatePlayer("TestAuthHeader", request);
assertNotNull(response); assertEquals("TestName", response.getName()); assertEquals("12345", response.getId().getIdentifier());
final Request sended = mockClient.verifyOne(HttpMethod.POST, "/users");
assertTrue(sended.headers().get(Utils.AUTHENTICATION_HEADER).stream().findFirst().isPresent()); assertEquals("Bearer TestAuthHeader", sended.headers().get(Utils.AUTHENTICATION_HEADER).stream().findFirst().get()); }
@Test void getShortPlayerTest() { mockClient.ok(HttpMethod.GET, "/users/12345", "{\n" + " \"id\":\"12345\",\n" + " \"name\":\"TestName\"\n" + "}");
final UserRequest response = client.getShortPlayer("TestAuthHeader", "12345");
assertNotNull(response); assertEquals("TestName", response.getName()); assertEquals("12345", response.getId());
final Request sended = mockClient.verifyOne(HttpMethod.GET, "/users/12345");
assertTrue(sended.headers().get(Utils.AUTHENTICATION_HEADER).stream().findFirst().isPresent()); assertEquals("Bearer TestAuthHeader", sended.headers().get(Utils.AUTHENTICATION_HEADER).stream().findFirst().get()); }
@Test void getCurrentPlayerTest() { mockClient.ok(HttpMethod.GET, "/users", "{\n" + " \"id\":\n" + " {\n" + " \"identifier\":\"12345\"\n" + " },\n" + " \"name\":\"TestName\"\n" + "}");
final PlayerResponse response = client.getCurrentPlayer("TestAuthHeader");
assertNotNull(response); assertEquals("TestName", response.getName()); assertEquals("12345", response.getId().getIdentifier());
final Request sended = mockClient.verifyOne(HttpMethod.GET, "/users");
assertTrue(sended.headers().get(Utils.AUTHENTICATION_HEADER).stream().findFirst().isPresent()); assertEquals("Bearer TestAuthHeader", sended.headers().get(Utils.AUTHENTICATION_HEADER).stream().findFirst().get()); } }
|