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:08 UTC

[25/50] [abbrv] jclouds git commit: improve mocke tests

improve mocke tests


Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/1c8a603f
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/1c8a603f
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/1c8a603f

Branch: refs/heads/keystonev3
Commit: 1c8a603f6721ae4eba7d24df64435984a5113367
Parents: d8c3d88
Author: Andrea Turli <an...@gmail.com>
Authored: Wed Dec 20 17:11:18 2017 +0100
Committer: Ignasi Barrera <na...@apache.org>
Committed: Thu Jan 11 16:21:30 2018 +0100

----------------------------------------------------------------------
 .../v3/auth/V3AuthenticationApiMockTest.java    | 62 ++++++++++++++++++++
 .../keystone/v3/features/TokenApiMockTest.java  |  5 --
 .../v3/internal/BaseV3KeystoneApiMockTest.java  | 16 ++++-
 .../src/test/resources/v3/token.json            | 48 +++++++--------
 4 files changed, 99 insertions(+), 32 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/1c8a603f/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/auth/V3AuthenticationApiMockTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/auth/V3AuthenticationApiMockTest.java b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/auth/V3AuthenticationApiMockTest.java
new file mode 100644
index 0000000..4f7f2cd
--- /dev/null
+++ b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/auth/V3AuthenticationApiMockTest.java
@@ -0,0 +1,62 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jclouds.openstack.keystone.v3.auth;
+
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNull;
+import static org.testng.Assert.assertTrue;
+
+import org.jclouds.openstack.keystone.auth.domain.AuthInfo;
+import org.jclouds.openstack.keystone.auth.domain.PasswordCredentials;
+import org.jclouds.openstack.keystone.auth.domain.TenantAndCredentials;
+import org.jclouds.openstack.keystone.auth.domain.TokenCredentials;
+import org.jclouds.openstack.keystone.v3.domain.Token;
+import org.jclouds.openstack.keystone.v3.internal.BaseV3KeystoneApiMockTest;
+import org.testng.annotations.Test;
+
+import com.google.common.reflect.TypeToken;
+
+import java.util.Map;
+
+@Test(groups = "unit", testName = "TokenApiMockTest", singleThreaded = true)
+public class V3AuthenticationApiMockTest extends BaseV3KeystoneApiMockTest {
+
+   public void testAuthenticatePassword() throws InterruptedException {
+      server.enqueue(jsonResponse("/v3/token.json"));
+
+      AuthInfo authInfo = authenticationApi.authenticatePassword(TenantAndCredentials.<PasswordCredentials>builder().credentials(PasswordCredentials.builder().username("user").password("pwd").build()).build());
+
+      assertTrue(authInfo instanceof Token);
+      assertEquals(authInfo, tokenFromResource("/v3/token.json"));
+
+      assertEquals(server.getRequestCount(), 1);
+      assertSent(server, "POST", "/auth/tokens");
+   }
+
+   public void testAuthenticateToken() throws InterruptedException {
+      server.enqueue(jsonResponse("/v3/token.json"));
+
+      AuthInfo authInfo = authenticationApi.authenticateToken(TenantAndCredentials.<TokenCredentials>builder().credentials(TokenCredentials.builder().id("token").build()).build());
+
+      assertTrue(authInfo instanceof Token);
+      assertEquals(authInfo, tokenFromResource("/v3/token.json"));
+
+      assertEquals(server.getRequestCount(), 1);
+      assertSent(server, "POST", "/auth/tokens");
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/jclouds/blob/1c8a603f/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/features/TokenApiMockTest.java
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/features/TokenApiMockTest.java b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/features/TokenApiMockTest.java
index 57520fa..ba33431 100644
--- a/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/features/TokenApiMockTest.java
+++ b/apis/openstack-keystone/src/test/java/org/jclouds/openstack/keystone/v3/features/TokenApiMockTest.java
@@ -51,9 +51,4 @@ public class TokenApiMockTest extends BaseV3KeystoneApiMockTest {
       assertSent(server, "GET", "/token/bf583aefb74e45108346b4c1c8527a10");
    }
    
-   private Token tokenFromResource(String resource) {
-      return onlyObjectFromResource(resource, new TypeToken<Token>() {
-         private static final long serialVersionUID = 1L;
-      });
-   }
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/1c8a603f/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 1d87cf8..599a0e8 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
@@ -29,8 +29,11 @@ import java.util.Set;
 import org.jclouds.ContextBuilder;
 import org.jclouds.concurrent.config.ExecutorServiceModule;
 import org.jclouds.json.Json;
+import org.jclouds.openstack.keystone.auth.AuthenticationApi;
+import org.jclouds.openstack.keystone.auth.filters.AuthenticateRequest;
 import org.jclouds.openstack.keystone.v3.KeystoneApi;
 import org.jclouds.openstack.keystone.v3.KeystoneApiMetadata;
+import org.jclouds.openstack.keystone.v3.domain.Token;
 import org.jclouds.rest.ApiContext;
 import org.testng.annotations.AfterMethod;
 import org.testng.annotations.BeforeMethod;
@@ -54,6 +57,7 @@ public class BaseV3KeystoneApiMockTest {
    
    protected MockWebServer server;
    protected KeystoneApi api;
+   protected AuthenticationApi authenticationApi;
    private Json json;
    
    // So that we can ignore formatting.
@@ -70,6 +74,7 @@ public class BaseV3KeystoneApiMockTest {
               .overrides(overrides())
               .build();
       json = ctx.utils().injector().getInstance(Json.class);
+      authenticationApi = ctx.utils().injector().getInstance(AuthenticationApi.class);
       api = ctx.getApi();
    }
 
@@ -108,7 +113,7 @@ public class BaseV3KeystoneApiMockTest {
       }
    }
    
-   protected <T> T onlyObjectFromResource(String resourceName, TypeToken<T> type) {
+   protected <T> T onlyObjectFromResource(String resourceName, TypeToken<Map<String, T>> type) {
       // Assume JSON objects passed here will be in the form: { "entity": { ... } }
       String text = stringFromResource(resourceName);
       Map<String, T> object = json.fromJson(text, type.getType());
@@ -116,7 +121,7 @@ public class BaseV3KeystoneApiMockTest {
       checkArgument(object.keySet().size() == 1, "The given json does not contain more than one object: %s", text);
       return object.get(getOnlyElement(object.keySet()));
    }
-   
+
    protected <T> T objectFromResource(String resourceName, Class<T> type) {
       String text = stringFromResource(resourceName);
       return json.fromJson(text, type);
@@ -127,7 +132,6 @@ public class BaseV3KeystoneApiMockTest {
       assertEquals(request.getMethod(), method);
       assertEquals(request.getPath(), path);
       assertEquals(request.getHeader("Accept"), "application/json");
-      assertEquals(request.getHeader("Authorization"), "X-Token " + "token");
       return request;
    }
 
@@ -138,4 +142,10 @@ public class BaseV3KeystoneApiMockTest {
       assertEquals(parser.parse(new String(request.getBody(), Charsets.UTF_8)), parser.parse(json));
       return request;
    }
+
+   protected Token tokenFromResource(String resource) {
+      return onlyObjectFromResource(resource, new TypeToken<Map<String, Token>>() {
+         private static final long serialVersionUID = 1L;
+      });
+   }
 }

http://git-wip-us.apache.org/repos/asf/jclouds/blob/1c8a603f/apis/openstack-keystone/src/test/resources/v3/token.json
----------------------------------------------------------------------
diff --git a/apis/openstack-keystone/src/test/resources/v3/token.json b/apis/openstack-keystone/src/test/resources/v3/token.json
index 1e8906d..20734d5 100644
--- a/apis/openstack-keystone/src/test/resources/v3/token.json
+++ b/apis/openstack-keystone/src/test/resources/v3/token.json
@@ -31,7 +31,7 @@
         "endpoints": [
           {
             "region_id": "uk-1",
-            "url": "https://objectstorage.uk-1.cloud.global.fujitsu.com/v1/AUTH_2233c4d7d5c044b1b48e1bef25c1f305",
+            "url": "https://objectstorage.myprovider.com/v1/AUTH_2233c4d7d5c044b1b48e1bef25c1f305",
             "region": "uk-1",
             "interface": "public",
             "id": "b506af0e016a4b5fb592f196da569a41",
@@ -46,7 +46,7 @@
         "endpoints": [
           {
             "region_id": "uk-1",
-            "url": "https://keymanagement.uk-1.cloud.global.fujitsu.com/v1",
+            "url": "https://keymanagement.myprovider.com/v1",
             "region": "uk-1",
             "interface": "public",
             "id": "0419c448001845af8f6828cf49745e72",
@@ -61,7 +61,7 @@
         "endpoints": [
           {
             "region_id": "uk-1",
-            "url": "https://certificate.uk-1.cloud.global.fujitsu.com/v1",
+            "url": "https://certificate.myprovider.com/v1",
             "region": "uk-1",
             "interface": "public",
             "id": "e1cc93936fb94cdbadc20f17c4ad3140",
@@ -76,7 +76,7 @@
         "endpoints": [
           {
             "region_id": "uk-1",
-            "url": "https://orchestration.uk-1.cloud.global.fujitsu.com/v1/2233c4d7d5c044b1b48e1bef25c1f305",
+            "url": "https://orchestration.myprovider.com/v1/2233c4d7d5c044b1b48e1bef25c1f305",
             "region": "uk-1",
             "interface": "public",
             "id": "c3ee708a6ae24ddf92c078526c36a446",
@@ -91,7 +91,7 @@
         "endpoints": [
           {
             "region_id": "uk-1",
-            "url": "https://blockstorage.uk-1.cloud.global.fujitsu.com/v1/2233c4d7d5c044b1b48e1bef25c1f305",
+            "url": "https://blockstorage.myprovider.com/v1/2233c4d7d5c044b1b48e1bef25c1f305",
             "region": "uk-1",
             "interface": "public",
             "id": "ba9061d324954b1a9f6b1c1f5d4a5c5e",
@@ -106,7 +106,7 @@
         "endpoints": [
           {
             "region_id": "uk-1",
-            "url": "https://loadbalancing.uk-1.cloud.global.fujitsu.com",
+            "url": "https://loadbalancing.myprovider.com",
             "region": "uk-1",
             "interface": "public",
             "id": "169bcb3f92384f709232864f4d5304eb",
@@ -139,7 +139,7 @@
         "endpoints": [
           {
             "region_id": "uk-1",
-            "url": "https://compute-w.uk-1.cloud.global.fujitsu.com",
+            "url": "https://compute-w.myprovider.com",
             "region": "uk-1",
             "interface": "public",
             "id": "e26ad89a682d4c8f8a71c9e76cd785b4",
@@ -160,7 +160,7 @@
         "endpoints": [
           {
             "region_id": "uk-1",
-            "url": "https://compute.uk-1.cloud.global.fujitsu.com/v2/2233c4d7d5c044b1b48e1bef25c1f305",
+            "url": "https://compute.myprovider.com/v2/2233c4d7d5c044b1b48e1bef25c1f305",
             "region": "uk-1",
             "interface": "public",
             "id": "f70e51b9a6a74a87a4c7055b8df8bedf",
@@ -175,7 +175,7 @@
         "endpoints": [
           {
             "region_id": "uk-1",
-            "url": "https://queue.uk-1.cloud.global.fujitsu.com",
+            "url": "https://queue.myprovider.com",
             "region": "uk-1",
             "interface": "public",
             "id": "c46b5ec51ab04402a9ffd8177743ba6f",
@@ -190,7 +190,7 @@
         "endpoints": [
           {
             "region_id": "uk-1",
-            "url": "https://autoscale.uk-1.cloud.global.fujitsu.com/autoscale_schedulers",
+            "url": "https://autoscale.myprovider.com/autoscale_schedulers",
             "region": "uk-1",
             "interface": "public",
             "id": "071ee50be4b341558e37f84abac47d02",
@@ -205,7 +205,7 @@
         "endpoints": [
           {
             "region_id": "uk-1",
-            "url": "https://telemetry.uk-1.cloud.global.fujitsu.com",
+            "url": "https://telemetry.myprovider.com",
             "region": "uk-1",
             "interface": "public",
             "id": "6ac15657fbc548d7ab2ed986b8d94192",
@@ -232,7 +232,7 @@
         "endpoints": [
           {
             "region_id": "uk-1",
-            "url": "https://rolemanagement.uk-1.cloud.global.fujitsu.com/v1",
+            "url": "https://rolemanagement.myprovider.com/v1",
             "region": "uk-1",
             "interface": "public",
             "id": "2d600a5de6ec42c6a5eab7b519832d87",
@@ -247,7 +247,7 @@
         "endpoints": [
           {
             "region_id": "uk-1",
-            "url": "https://compute-b.uk-1.cloud.global.fujitsu.com",
+            "url": "https://compute-b.myprovider.com",
             "region": "uk-1",
             "interface": "public",
             "id": "768450282d5546409395d2cb35502dad",
@@ -262,7 +262,7 @@
         "endpoints": [
           {
             "region_id": "uk-1",
-            "url": "https://networking.uk-1.cloud.global.fujitsu.com",
+            "url": "https://networking.myprovider.com",
             "region": "uk-1",
             "interface": "public",
             "id": "675910513a7e466c84c39c5ca9445b81",
@@ -283,7 +283,7 @@
         "endpoints": [
           {
             "region_id": "uk-1",
-            "url": "https://database.uk-1.cloud.global.fujitsu.com/v1.0/2233c4d7d5c044b1b48e1bef25c1f305",
+            "url": "https://database.myprovider.com/v1.0/2233c4d7d5c044b1b48e1bef25c1f305",
             "region": "uk-1",
             "interface": "public",
             "id": "6976cbeed14c464da15c13e949b41607",
@@ -298,7 +298,7 @@
         "endpoints": [
           {
             "region_id": "uk-1",
-            "url": "https://identity.uk-1.cloud.global.fujitsu.com/v2.0",
+            "url": "http://localhost/v3",
             "region": "uk-1",
             "interface": "admin",
             "id": "db15a7126d4a4f1f81903bb4d56be32b",
@@ -331,7 +331,7 @@
         "endpoints": [
           {
             "region_id": "uk-1",
-            "url": "https://software.uk-1.cloud.global.fujitsu.com/v1.0",
+            "url": "https://software.myprovider.com/v1.0",
             "region": "uk-1",
             "interface": "public",
             "id": "fd6g35fgknrzumut7bx6p6bwzehkfhrz",
@@ -346,7 +346,7 @@
         "endpoints": [
           {
             "region_id": "uk-1",
-            "url": "https://blockstorage.uk-1.cloud.global.fujitsu.com/v2/2233c4d7d5c044b1b48e1bef25c1f305",
+            "url": "https://blockstorage.myprovider.com/v2/2233c4d7d5c044b1b48e1bef25c1f305",
             "region": "uk-1",
             "interface": "public",
             "id": "8c4ace3bbbd44883b5762a9ad8432a46",
@@ -367,7 +367,7 @@
         "endpoints": [
           {
             "region_id": "uk-1",
-            "url": "https://vmimport.uk-1.cloud.global.fujitsu.com",
+            "url": "https://vmimport.myprovider.com",
             "region": "uk-1",
             "interface": "public",
             "id": "225257ec50ef47668185587cc6edb95d",
@@ -382,7 +382,7 @@
         "endpoints": [
           {
             "region_id": "uk-1",
-            "url": "https://identity.uk-1.cloud.global.fujitsu.com/v3",
+            "url": "https://identity.myprovider.com/v3",
             "region": "uk-1",
             "interface": "public",
             "id": "27dc2bba1c5d4a14b68657fc8fdd4e3e",
@@ -397,7 +397,7 @@
         "endpoints": [
           {
             "region_id": "uk-1",
-            "url": "https://applicationmanagement.uk-1.cloud.global.fujitsu.com",
+            "url": "https://applicationmanagement.myprovider.com",
             "region": "uk-1",
             "interface": "public",
             "id": "06fbcf8235434f23a08faed03b4af9ac",
@@ -430,7 +430,7 @@
         "endpoints": [
           {
             "region_id": "uk-1",
-            "url": "https://networking-ex.uk-1.cloud.global.fujitsu.com",
+            "url": "https://networking-ex.myprovider.com",
             "region": "uk-1",
             "interface": "public",
             "id": "bf356065e45349a5bde5e043c95a1923",
@@ -460,7 +460,7 @@
         "endpoints": [
           {
             "region_id": "uk-1",
-            "url": "https://image.uk-1.cloud.global.fujitsu.com",
+            "url": "https://image.myprovider.com",
             "region": "uk-1",
             "interface": "public",
             "id": "a832d640886b4ef89027339a2edf8fcd",
@@ -481,7 +481,7 @@
         "endpoints": [
           {
             "region_id": "uk-1",
-            "url": "https://import-export.uk-1.cloud.global.fujitsu.com",
+            "url": "https://import-export.myprovider.com",
             "region": "uk-1",
             "interface": "public",
             "id": "e8bde8fe61a14a88b414e5568fc17201",