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.
86 lines
2.8 KiB
86 lines
2.8 KiB
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 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 getPlayerTest()
|
|
{
|
|
mockClient.ok(HttpMethod.GET, "/users/12345",
|
|
"{\n" +
|
|
" \"id\": {\n" +
|
|
" \"identifier\":\"12345\"\n" +
|
|
" },\n" +
|
|
" \"name\":\"TestName\"\n" +
|
|
"}");
|
|
|
|
final PlayerResponse response = client.getPlayer("TestAuthHeader", "12345");
|
|
|
|
assertNotNull(response);
|
|
assertEquals("TestName", response.getName());
|
|
assertEquals("12345", response.getId().getIdentifier());
|
|
|
|
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());
|
|
}
|
|
}
|