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.
|
|
package de.fd.fh.network;
import de.fd.fh.shared.Utils; import de.fd.fh.shared.network.messages.LoginResponse; import de.fd.fh.shared.network.messages.RegistrateRequest; import feign.Feign; import feign.Request; import feign.Response; 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 AccessClientTest { private AccessClient client; private MockClient mockClient;
@BeforeEach void before() { mockClient = new MockClient();
client = Feign.builder() .decoder(new GsonDecoder()) .encoder(new GsonEncoder()) .client(mockClient) .target(new MockTarget<>(AccessClient.class)); }
@Test void testRegistrate() { mockClient.ok(HttpMethod.POST, "/accounts/registrate");
final RegistrateRequest request = RegistrateRequest.of("TestName", "TestPassword");
final Response result = client.registrate(request);
assertEquals(200, result.status(), "Should return status code 200.");
mockClient.verifyStatus(); }
@Test void testLogin() { mockClient .ok(HttpMethod.POST, "/accounts/login", "{\n" + " \"name\":\"testName\",\n" + " \"userId\": \"12345\",\n" + " \"token\": \"testToken\"\n" + "}" ); final LoginResponse result = client.login("testToken");
final Request request = mockClient.verifyOne(HttpMethod.POST, "/accounts/login");
assertNotNull(result); assertEquals("testName", result.getName()); assertEquals("12345", result.getUserId()); assertEquals("testToken", result.getToken());
assertTrue(request.headers().get(Utils.AUTHENTICATION_HEADER).stream().findFirst().isPresent(), "Should have auth header"); final String authHeader = request.headers().get(Utils.AUTHENTICATION_HEADER).stream().findFirst().get();
assertEquals("Basic testToken", authHeader, "Should use given token."); }
@Test void testLogout() { mockClient.ok(HttpMethod.POST, "/accounts/logout");
final Response result = client.logout("testToken");
assertEquals(200, result.status(), "Should return status code 200."); }
@Test void testDeletePlayer() { mockClient.ok(HttpMethod.DELETE, "/accounts/12345");
final Response result = client.deletePlayer("12345");
assertEquals(200, result.status(), "Should return status code 200."); } }
|