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",