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.

110 lines
3.7 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 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());
}
}