Browse Source

add login method to AccessClient and test

feat-loginClient
Steffen Nitschke 4 years ago
parent
commit
01fcf86ce2
  1. 8
      fh.fd.ci.client/src/main/java/de/fd/fh/network/AccessClient.java
  2. 32
      fh.fd.ci.client/src/test/java/de/fd/fh/network/AccessClientTest.java

8
fh.fd.ci.client/src/main/java/de/fd/fh/network/AccessClient.java

@ -1,6 +1,10 @@
package de.fd.fh.network; 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 de.fd.fh.shared.network.messages.RegistrateRequest;
import feign.Headers;
import feign.Param;
import feign.RequestLine; import feign.RequestLine;
import feign.Response; import feign.Response;
@ -8,4 +12,8 @@ public interface AccessClient
{ {
@RequestLine("POST /accounts/registrate") @RequestLine("POST /accounts/registrate")
Response registrate(RegistrateRequest request); Response registrate(RegistrateRequest request);
@RequestLine("POST /accounts/login")
@Headers(Utils.AUTHENTICATION_HEADER + ":Basic {authToken}")
LoginResponse login(@Param("authToken") final String authenticationHeader);
} }

32
fh.fd.ci.client/src/test/java/de/fd/fh/network/AccessClientTest.java

@ -1,7 +1,10 @@
package de.fd.fh.network; 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 de.fd.fh.shared.network.messages.RegistrateRequest;
import feign.Feign; import feign.Feign;
import feign.Request;
import feign.Response; import feign.Response;
import feign.gson.GsonDecoder; import feign.gson.GsonDecoder;
import feign.gson.GsonEncoder; import feign.gson.GsonEncoder;
@ -11,7 +14,7 @@ import feign.mock.MockTarget;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.*;
class AccessClientTest class AccessClientTest
{ {
@ -43,4 +46,31 @@ class AccessClientTest
mockClient.verifyStatus(); 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.");
}
} }
Loading…
Cancel
Save