You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by na...@apache.org on 2018/01/11 15:41:27 UTC
[44/50] [abbrv] jclouds git commit: Complete mock tests for the V3
AuthApi
Complete mock tests for the V3 AuthApi
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/3dbdbbfa
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/3dbdbbfa
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/3dbdbbfa
Branch: refs/heads/keystonev3
Commit: 3dbdbbfa07e742c0971c9fbc6b877663c5b715cd
Parents: e32508b
Author: Ignasi Barrera <na...@apache.org>
Authored: Tue Jan 9 12:22:06 2018 +0100
Committer: Ignasi Barrera <na...@apache.org>
Committed: Thu Jan 11 16:21:31 2018 +0100
----------------------------------------------------------------------
.../openstack/keystone/v3/features/AuthApi.java | 3 +-
.../keystone/v3/features/AuthApiMockTest.java | 55 ++++++++++++++++++++
.../v3/internal/BaseV3KeystoneApiMockTest.java | 21 ++++++--
3 files changed, 73 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/3dbdbbfa/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v3/features/AuthApi.java
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v3/features/AuthApi.java b/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v3/features/AuthApi.java
index 50fe55c..845c738 100644
--- a/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v3/features/AuthApi.java
+++ b/apis/openstack-keystone/src/main/java/org/jclouds/openstack/keystone/v3/features/AuthApi.java
@@ -64,9 +64,10 @@ public interface AuthApi {
@Named("token:getuser")
@GET
@SelectJson("user")
- @Path("/tokens/{token}")
+ @Path("/tokens")
@Fallback(NullOnNotFoundOr404.class)
@Nullable
+ @Headers(keys = "X-Subject-Token", values = "{token}")
User getUserOfToken(@PathParam("token") String token);
/**
http://git-wip-us.apache.org/repos/asf/jclouds/blob/3dbdbbfa/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/features/AuthApiMockTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/features/AuthApiMockTest.java b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/features/AuthApiMockTest.java
index 87ca0b3..a156fad 100644
--- a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/features/AuthApiMockTest.java
+++ b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/features/AuthApiMockTest.java
@@ -17,9 +17,12 @@
package org.jclouds.openstack.keystone.v3.features;
import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
import static org.testng.Assert.assertNull;
+import static org.testng.Assert.assertTrue;
import org.jclouds.openstack.keystone.v3.domain.Token;
+import org.jclouds.openstack.keystone.v3.domain.User;
import org.jclouds.openstack.keystone.v3.internal.BaseV3KeystoneApiMockTest;
import org.testng.annotations.Test;
@@ -55,4 +58,56 @@ public class AuthApiMockTest extends BaseV3KeystoneApiMockTest {
assertEquals(request.getHeader("X-Subject-Token"), "foo");
}
+ public void testIsValidToken() throws InterruptedException {
+ enqueueAuthentication(server);
+ server.enqueue(response204());
+
+ boolean valid = api.getAuthApi().isValid(authToken);
+ assertTrue(valid);
+
+ assertEquals(server.getRequestCount(), 2);
+ assertAuthentication(server);
+ RecordedRequest request = assertSent(server, "HEAD", "/auth/tokens");
+ assertEquals(request.getHeader("X-Subject-Token"), authToken);
+ }
+
+ public void testIsValidTokenReturns404() throws InterruptedException {
+ enqueueAuthentication(server);
+ server.enqueue(response404());
+
+ boolean valid = api.getAuthApi().isValid("foo");
+ assertFalse(valid);
+
+ assertEquals(server.getRequestCount(), 2);
+ assertAuthentication(server);
+ RecordedRequest request = assertSent(server, "HEAD", "/auth/tokens");
+ assertEquals(request.getHeader("X-Subject-Token"), "foo");
+ }
+
+ public void testGetUserOfToken() throws InterruptedException {
+ enqueueAuthentication(server);
+ server.enqueue(jsonResponse("/v3/token.json"));
+
+ User user = api.getAuthApi().getUserOfToken(authToken);
+
+ assertEquals(user, tokenFromResource("/v3/token.json").user());
+
+ assertEquals(server.getRequestCount(), 2);
+ assertAuthentication(server);
+ RecordedRequest request = assertSent(server, "GET", "/auth/tokens");
+ assertEquals(request.getHeader("X-Subject-Token"), authToken);
+ }
+
+ public void testGetUserOfTokenReturns404() throws InterruptedException {
+ enqueueAuthentication(server);
+ server.enqueue(response404());
+
+ User user = api.getAuthApi().getUserOfToken("foo");
+ assertNull(user);
+
+ assertEquals(server.getRequestCount(), 2);
+ assertAuthentication(server);
+ RecordedRequest request = assertSent(server, "GET", "/auth/tokens");
+ assertEquals(request.getHeader("X-Subject-Token"), "foo");
+ }
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/3dbdbbfa/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/internal/BaseV3KeystoneApiMockTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/internal/BaseV3KeystoneApiMockTest.java b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/internal/BaseV3KeystoneApiMockTest.java
index 60fdb41..914f760 100644
--- a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/internal/BaseV3KeystoneApiMockTest.java
+++ b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/internal/BaseV3KeystoneApiMockTest.java
@@ -145,10 +145,11 @@ public class BaseV3KeystoneApiMockTest {
}
protected void assertAuthentication(MockWebServer server) throws InterruptedException {
- assertSent(server, "POST", "/auth/tokens", stringFromResource("/v3/auth-password-scoped.json"));
+ RecordedRequest request = assertSentNoAuth(server, "POST", "/auth/tokens");
+ assertBody(request, stringFromResource("/v3/auth-password-scoped.json"));
}
-
- protected RecordedRequest assertSent(MockWebServer server, String method, String path) throws InterruptedException {
+
+ private RecordedRequest assertSentNoAuth(MockWebServer server, String method, String path) throws InterruptedException {
RecordedRequest request = server.takeRequest();
assertEquals(request.getMethod(), method);
assertEquals(request.getPath(), path);
@@ -156,13 +157,23 @@ public class BaseV3KeystoneApiMockTest {
return request;
}
+ protected RecordedRequest assertSent(MockWebServer server, String method, String path) throws InterruptedException {
+ RecordedRequest request = assertSentNoAuth(server, method, path);
+ assertEquals(request.getHeader("X-Auth-Token"), authToken);
+ return request;
+ }
+
protected RecordedRequest assertSent(MockWebServer server, String method, String path, String json)
throws InterruptedException {
RecordedRequest request = assertSent(server, method, path);
- assertEquals(request.getHeader("Content-Type"), "application/json");
- assertEquals(parser.parse(new String(request.getBody(), Charsets.UTF_8)), parser.parse(json));
+ assertBody(request, json);
return request;
}
+
+ private void assertBody(RecordedRequest request, String body) {
+ assertEquals(request.getHeader("Content-Type"), "application/json");
+ assertEquals(parser.parse(new String(request.getBody(), Charsets.UTF_8)), parser.parse(body));
+ }
protected Token tokenFromResource(String resource) {
return onlyObjectFromResource(resource, new TypeToken<Map<String, Token>>() {