blob: 2fb42da3dfad51b8ee3fd0a46725837e6c21ccb1 [file] [log] [blame]
/**
* Licensed to jclouds, Inc. (jclouds) under one or more
* contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. jclouds 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.fujitsu.fgcp.services;
import static org.testng.Assert.assertNotNull;
import java.net.URI;
import java.net.URL;
import java.util.Calendar;
import java.util.Locale;
import java.util.TimeZone;
import javax.ws.rs.core.MediaType;
import org.jclouds.fujitsu.fgcp.FGCPApi;
import org.jclouds.fujitsu.fgcp.FGCPProviderMetadata;
import org.jclouds.fujitsu.fgcp.compute.FGCPRestClientModule;
import org.jclouds.http.HttpRequest;
import org.jclouds.io.Payload;
import org.jclouds.providers.ProviderMetadata;
import org.jclouds.rest.ConfiguresRestClient;
import org.jclouds.rest.internal.BaseRestClientExpectTest;
import com.google.common.collect.ImmutableMultimap;
import com.google.inject.Module;
/**
* @author Dies Koper
*/
public class BaseFGCPRestApiExpectTest extends
BaseRestClientExpectTest<FGCPApi> {
public BaseFGCPRestApiExpectTest() {
provider = "fgcp";
// self-signed dummy cert:
// keytool -genkey -alias test-fgcp -keyalg RSA -keysize 1024 -validity 5475 -dname "CN=localhost" -keystore jclouds-test-fgcp.p12 -storepass jcloudsjclouds -storetype pkcs12
String cert = "/certs/jclouds-test-fgcp.p12";
URL url = this.getClass().getResource(cert);
assertNotNull(url, cert + " not found");
identity = url.getFile();
credential = "jcloudsjclouds";
}
@ConfiguresRestClient
protected static final class TestFGCPRestClientModule extends
FGCPRestClientModule {
@Override
protected Calendar provideCalendar() {
// pick country/TZ with no DST just in case to maintain constant
// time wherever the tests are run.
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT-9"),
Locale.JAPAN);
cal.setTimeInMillis(1234567890);
return cal;
}
}
@Override
protected Module createModule() {
return new TestFGCPRestClientModule();
}
@Override
protected ProviderMetadata createProviderMetadata() {
return new FGCPProviderMetadata();
}
@Override
public Payload payloadFromResource(String resource) {
return super.payloadFromResource("/responses" + resource);
}
protected static HttpRequest buildGETWithQuery(String query) {
URI uri = URI.create("https://api.globalcloud.fujitsu.com.au/ovissapi/endpoint"
+ "?Version=2012-02-18"
+ "&" + query
+ "&Locale=en"
+ "&AccessKeyId=R01ULTA5OjAwJjEyMzQ1Njc4OTAmMS4wJlNIQTF3aXRoUlNB"
// + "&Signature=G2rGfLAkbq0IURQfXIWYxj3BnMGbjRk4KPnZLAze3Lt4SMMRt8lkjqKvR5Cm%2BnFpDN7J6IprVCCsIrRq5BqPeXT6xtWyb6qMNds2BAr1h%2FJePGs0UosOh2tgPUMSFlZwLVjgNyrSa2zeHA3AEHjF6H1jqcWXXqfCAD4SOHaNavk%3D");
+ "&Signature=G2rGfLAkbq0IURQfXIWYxj3BnMGbjRk4KPnZLAze3Lt4SMMRt8lkjqKvR5Cm%2BnFpDN7J6IprVCCs%0D%0AIrRq5BqPeXT6xtWyb6qMNds2BAr1h%2FJePGs0UosOh2tgPUMSFlZwLVjgNyrSa2zeHA3AEHjF6H1j%0D%0AqcWXXqfCAD4SOHaNavk%3D");
return HttpRequest
.builder()
.method("GET")
.endpoint(uri)
.addHeader("Accept", "text/xml")
.addHeader("User-Agent", "OViSS-API-CLIENT")
.build();
}
protected HttpRequest preparePOSTForAction(String action) {
return HttpRequest
.builder()
.method("POST")
.endpoint(
URI.create("https://api.globalcloud.fujitsu.com.au/ovissapi/endpoint"))
.payload(
payloadFromResourceWithContentType(
"/" + action.toLowerCase() + "-request.xml",
MediaType.TEXT_XML))
.headers(
ImmutableMultimap.<String, String> builder()
.put("Accept", "text/xml")
.put("User-Agent", "OViSS-API-CLIENT").build())
.build();
}
}