http://git-wip-us.apache.org/repos/asf/jclouds/blob/ed247e7d/providers/profitbricks/src/main/java/org/jclouds/profitbricks/http/parser/storage/BaseStorageResponseHandler.java ---------------------------------------------------------------------- diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/http/parser/storage/BaseStorageResponseHandler.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/http/parser/storage/BaseStorageResponseHandler.java index cb61e79..9026592 100644 --- a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/http/parser/storage/BaseStorageResponseHandler.java +++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/http/parser/storage/BaseStorageResponseHandler.java @@ -19,11 +19,9 @@ package org.jclouds.profitbricks.http.parser.storage; import java.util.Date; import java.util.List; -import org.jclouds.date.DateCodec; - import com.google.inject.Inject; -import org.jclouds.date.DateCodecFactory; +import org.jclouds.date.DateService; import org.jclouds.profitbricks.domain.ProvisioningState; import org.jclouds.profitbricks.domain.Storage; import org.jclouds.profitbricks.domain.Storage.BusType; @@ -33,20 +31,20 @@ import com.google.common.collect.Lists; public abstract class BaseStorageResponseHandler<T> extends BaseProfitBricksResponseHandler<T> { - protected final DateCodec dateCodec; + protected final DateService dateService; protected Storage.Builder builder; protected List<String> serverIds; @Inject - BaseStorageResponseHandler(DateCodecFactory dateCodec) { - this.dateCodec = dateCodec.iso8601(); + BaseStorageResponseHandler(DateService dateService) { + this.dateService = dateService; this.builder = Storage.builder(); this.serverIds = Lists.newArrayList(); } protected final Date textToIso8601Date() { - return dateCodec.toDate(textToStringValue()); + return dateService.iso8601DateOrSecondsDateParse(textToStringValue()); } @Override
http://git-wip-us.apache.org/repos/asf/jclouds/blob/ed247e7d/providers/profitbricks/src/main/java/org/jclouds/profitbricks/http/parser/storage/StorageInfoResponseHandler.java ---------------------------------------------------------------------- diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/http/parser/storage/StorageInfoResponseHandler.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/http/parser/storage/StorageInfoResponseHandler.java index 2bc1ed6..ae667ca 100644 --- a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/http/parser/storage/StorageInfoResponseHandler.java +++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/http/parser/storage/StorageInfoResponseHandler.java @@ -17,7 +17,8 @@ package org.jclouds.profitbricks.http.parser.storage; import com.google.inject.Inject; -import org.jclouds.date.DateCodecFactory; + +import org.jclouds.date.DateService; import org.jclouds.profitbricks.domain.Storage; import org.xml.sax.SAXException; @@ -26,8 +27,8 @@ public class StorageInfoResponseHandler extends BaseStorageResponseHandler<Stora private boolean done = false; @Inject - StorageInfoResponseHandler(DateCodecFactory dateCodec) { - super(dateCodec); + StorageInfoResponseHandler(DateService dateService) { + super(dateService); } @Override http://git-wip-us.apache.org/repos/asf/jclouds/blob/ed247e7d/providers/profitbricks/src/main/java/org/jclouds/profitbricks/http/parser/storage/StorageListResponseHandler.java ---------------------------------------------------------------------- diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/http/parser/storage/StorageListResponseHandler.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/http/parser/storage/StorageListResponseHandler.java index 572f761..3048f66 100644 --- a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/http/parser/storage/StorageListResponseHandler.java +++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/http/parser/storage/StorageListResponseHandler.java @@ -16,22 +16,22 @@ */ package org.jclouds.profitbricks.http.parser.storage; -import com.google.common.collect.Lists; -import com.google.inject.Inject; - import java.util.List; -import org.jclouds.date.DateCodecFactory; +import org.jclouds.date.DateService; import org.jclouds.profitbricks.domain.Storage; import org.xml.sax.SAXException; +import com.google.inject.Inject; +import com.google.common.collect.Lists; + public class StorageListResponseHandler extends BaseStorageResponseHandler<List<Storage>> { private List<Storage> storages; @Inject - StorageListResponseHandler(DateCodecFactory dateCodec) { - super(dateCodec); + StorageListResponseHandler(DateService dateService) { + super(dateService); this.storages = Lists.newArrayList(); } http://git-wip-us.apache.org/repos/asf/jclouds/blob/ed247e7d/providers/profitbricks/src/main/java/org/jclouds/profitbricks/util/Passwords.java ---------------------------------------------------------------------- diff --git a/providers/profitbricks/src/main/java/org/jclouds/profitbricks/util/Passwords.java b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/util/Passwords.java new file mode 100644 index 0000000..338f064 --- /dev/null +++ b/providers/profitbricks/src/main/java/org/jclouds/profitbricks/util/Passwords.java @@ -0,0 +1,64 @@ +/* + * 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.profitbricks.util; + +import java.util.Random; +import java.util.regex.Pattern; + +import com.google.common.collect.ImmutableSet; + +public class Passwords { + + private static final Random random = new Random(); + + private static final int MIN_CHAR = 8; + private static final int MAX_CHAR = 50; + private static final String PASSWORD_FORMAT = String.format( + "[a-zA-Z0-9][^iIloOwWyYzZ10]{%d,%d}", MIN_CHAR - 1, MAX_CHAR); + private static final Pattern PASSWORD_PATTERN = Pattern.compile(PASSWORD_FORMAT); + + private static final ImmutableSet<Character> INVALID_CHARS = ImmutableSet.<Character>of( + 'i', 'I', 'l', 'o', 'O', 'w', 'W', 'y', 'Y', 'z', 'Z', '1', '0'); + + public static boolean isValidPassword(String password) { + return PASSWORD_PATTERN.matcher(password).matches(); + } + + public static String generate() { + int count = random.nextInt(MAX_CHAR - MIN_CHAR) + MIN_CHAR; + + final char[] buffer = new char[count]; + + final int start = 'A'; + final int end = 'z'; + final int gap = end - start + 1; + + while (count-- != 0) { + char ch = (char) (random.nextInt(gap) + start); + if ((isBetween(ch, start, 'Z') || isBetween(ch, 'a', end)) + && !INVALID_CHARS.contains(ch)) + buffer[count] = ch; + else + count++; + } + return new String(buffer); + } + + private static boolean isBetween(char ch, int start, int end) { + return ch >= start && ch <= end; + } +} http://git-wip-us.apache.org/repos/asf/jclouds/blob/ed247e7d/providers/profitbricks/src/test/java/org/jclouds/profitbricks/binder/snapshot/CreateSnapshotRequestBinderTest.java ---------------------------------------------------------------------- diff --git a/providers/profitbricks/src/test/java/org/jclouds/profitbricks/binder/snapshot/CreateSnapshotRequestBinderTest.java b/providers/profitbricks/src/test/java/org/jclouds/profitbricks/binder/snapshot/CreateSnapshotRequestBinderTest.java index dda2ed6..42a1ad9 100644 --- a/providers/profitbricks/src/test/java/org/jclouds/profitbricks/binder/snapshot/CreateSnapshotRequestBinderTest.java +++ b/providers/profitbricks/src/test/java/org/jclouds/profitbricks/binder/snapshot/CreateSnapshotRequestBinderTest.java @@ -37,11 +37,11 @@ public class CreateSnapshotRequestBinderTest { } private final String expectedPayload - = (" <ws:createSnapshot>\n" - + "<request>\n" - + "<storageId>123-1233-1324</storageId>\n" - + "<description>describing the snapshot</description>\n" - + "<snapshotName>snapshot name</snapshotName>\n" - + "</request>\n" - + "</ws:createSnapshot>").replaceAll("\\s+", ""); + = (" <ws:createSnapshot>\n" + + "<request>\n" + + "<storageId>123-1233-1324</storageId>\n" + + "<description>describing the snapshot</description>\n" + + "<snapshotName>snapshot name</snapshotName>\n" + + "</request>\n" + + "</ws:createSnapshot>").replaceAll("\\s+", ""); } http://git-wip-us.apache.org/repos/asf/jclouds/blob/ed247e7d/providers/profitbricks/src/test/java/org/jclouds/profitbricks/binder/snapshot/RollbackSnapshotRequestBinderTest.java ---------------------------------------------------------------------- diff --git a/providers/profitbricks/src/test/java/org/jclouds/profitbricks/binder/snapshot/RollbackSnapshotRequestBinderTest.java b/providers/profitbricks/src/test/java/org/jclouds/profitbricks/binder/snapshot/RollbackSnapshotRequestBinderTest.java index 206cd79..e1ba061 100644 --- a/providers/profitbricks/src/test/java/org/jclouds/profitbricks/binder/snapshot/RollbackSnapshotRequestBinderTest.java +++ b/providers/profitbricks/src/test/java/org/jclouds/profitbricks/binder/snapshot/RollbackSnapshotRequestBinderTest.java @@ -29,9 +29,9 @@ public class RollbackSnapshotRequestBinderTest { RollbackSnapshotRequestBinder binder = new RollbackSnapshotRequestBinder(); Snapshot.Request.RollbackPayload payload = Snapshot.Request.rollbackBuilder() - .snapshotId("snapshot-id") - .storageId("storage-id") - .build(); + .snapshotId("snapshot-id") + .storageId("storage-id") + .build(); String actual = binder.createPayload(payload); assertNotNull(actual, "Binder returned null payload"); @@ -39,9 +39,9 @@ public class RollbackSnapshotRequestBinderTest { } private final String expectedPayload = "<ws:rollbackSnapshot>" - + "<request>" - + "<snapshotId>snapshot-id</snapshotId>" - + "<storageId>storage-id</storageId>" - + "</request>" - + "</ws:rollbackSnapshot>".replaceAll("\\s", ""); + + "<request>" + + "<snapshotId>snapshot-id</snapshotId>" + + "<storageId>storage-id</storageId>" + + "</request>" + + "</ws:rollbackSnapshot>".replaceAll("\\s", ""); } http://git-wip-us.apache.org/repos/asf/jclouds/blob/ed247e7d/providers/profitbricks/src/test/java/org/jclouds/profitbricks/compute/ProfitBricksComputeServiceAdapterLiveTest.java ---------------------------------------------------------------------- diff --git a/providers/profitbricks/src/test/java/org/jclouds/profitbricks/compute/ProfitBricksComputeServiceAdapterLiveTest.java b/providers/profitbricks/src/test/java/org/jclouds/profitbricks/compute/ProfitBricksComputeServiceAdapterLiveTest.java new file mode 100644 index 0000000..83540a5 --- /dev/null +++ b/providers/profitbricks/src/test/java/org/jclouds/profitbricks/compute/ProfitBricksComputeServiceAdapterLiveTest.java @@ -0,0 +1,74 @@ +/* + * 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.profitbricks.compute; + +import org.jclouds.compute.domain.NodeMetadata; +import org.testng.annotations.Test; + +import org.jclouds.compute.internal.BaseComputeServiceLiveTest; +import org.jclouds.sshj.config.SshjSshClientModule; + +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableSet; +import com.google.inject.Module; +import org.jclouds.compute.domain.ExecResponse; +import org.jclouds.logging.config.LoggingModule; +import org.jclouds.logging.slf4j.config.SLF4JLoggingModule; + +@Test(groups = "live", singleThreaded = true, testName = "ProfitBricksComputeServiceAdapterLiveTest") +public class ProfitBricksComputeServiceAdapterLiveTest extends BaseComputeServiceLiveTest { + + public ProfitBricksComputeServiceAdapterLiveTest() { + provider = "profitbricks"; + } + + @Override + protected Module getSshModule() { + return new SshjSshClientModule(); + } + + @Override + protected LoggingModule getLoggingModule() { + return new SLF4JLoggingModule(); + } + + @Override + public void testOptionToNotBlock() throws Exception { + // ProfitBricks implementation intentionally blocks until the node is 'AVAILABLE' + } + + @Override + protected void checkTagsInNodeEquals(NodeMetadata node, ImmutableSet<String> tags) { + // ProfitBricks doesn't support tags + } + + @Override + protected void checkUserMetadataContains(NodeMetadata node, ImmutableMap<String, String> userMetadata) { + // ProfitBricks doesn't support user metadata + } + + @Override + protected void checkResponseEqualsHostname(ExecResponse execResponse, NodeMetadata node1) { + // ProfitBricks doesn't support hostname + } + + @Override + protected void checkOsMatchesTemplate(NodeMetadata node) { + // Not enough description from API to match template + } + +} http://git-wip-us.apache.org/repos/asf/jclouds/blob/ed247e7d/providers/profitbricks/src/test/java/org/jclouds/profitbricks/compute/ProfitBricksTemplateBuilderLiveTest.java ---------------------------------------------------------------------- diff --git a/providers/profitbricks/src/test/java/org/jclouds/profitbricks/compute/ProfitBricksTemplateBuilderLiveTest.java b/providers/profitbricks/src/test/java/org/jclouds/profitbricks/compute/ProfitBricksTemplateBuilderLiveTest.java new file mode 100644 index 0000000..eff7b01 --- /dev/null +++ b/providers/profitbricks/src/test/java/org/jclouds/profitbricks/compute/ProfitBricksTemplateBuilderLiveTest.java @@ -0,0 +1,37 @@ +/* + * 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.profitbricks.compute; + +import java.util.Set; + +import com.google.common.collect.ImmutableSet; +import org.jclouds.compute.internal.BaseTemplateBuilderLiveTest; +import org.testng.annotations.Test; + +@Test(groups = "live", testName = "ProfitBricksTemplateBuilderLiveTest") +public class ProfitBricksTemplateBuilderLiveTest extends BaseTemplateBuilderLiveTest { + + public ProfitBricksTemplateBuilderLiveTest() { + this.provider = "profitbricks"; + } + + @Override + protected Set<String> getIso3166Codes() { + return ImmutableSet.of(); + } + +} http://git-wip-us.apache.org/repos/asf/jclouds/blob/ed247e7d/providers/profitbricks/src/test/java/org/jclouds/profitbricks/compute/concurrent/ProvisioningManagerTest.java ---------------------------------------------------------------------- diff --git a/providers/profitbricks/src/test/java/org/jclouds/profitbricks/compute/concurrent/ProvisioningManagerTest.java b/providers/profitbricks/src/test/java/org/jclouds/profitbricks/compute/concurrent/ProvisioningManagerTest.java new file mode 100644 index 0000000..dd115cc --- /dev/null +++ b/providers/profitbricks/src/test/java/org/jclouds/profitbricks/compute/concurrent/ProvisioningManagerTest.java @@ -0,0 +1,118 @@ +/* + * 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.profitbricks.compute.concurrent; + +import static com.google.common.util.concurrent.Uninterruptibles.sleepUninterruptibly; +import static java.util.logging.Logger.getAnonymousLogger; +import static org.testng.Assert.assertEquals; + +import java.io.IOException; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; + +import org.testng.annotations.Test; + +import com.google.common.base.Predicate; +import com.google.common.base.Predicates; +import com.google.common.base.Supplier; +import com.google.common.base.Suppliers; +import com.google.common.base.Throwables; + +@Test(groups = "unit", testName = "ProvisioningManagerTest") +public class ProvisioningManagerTest { + + @Test + public void testProvision() throws IOException { + ProvisioningManager manager = new ProvisioningManager(); + AtomicInteger completedJobs = new AtomicInteger(0); + + try { + for (int i = 0; i < 5; i++) { + manager.provision(new MockJob(200, "slow", completedJobs)); + manager.provision(new MockJob(0, "fast", completedJobs)); + manager.provision(new MockJob(100, "normal", completedJobs)); + } + } finally { + manager.close(); + } + + assertEquals(completedJobs.get(), 15); + } + + @Test + public void testProvisionInterrupted() { + ProvisioningManager manager = new ProvisioningManager(); + AtomicInteger completedJobs = new AtomicInteger(0); + + manager.provision(new ShutdownExecutorJob(manager, completedJobs)); + manager.provision(new MockJob(0, "rejected", completedJobs)); + + assertEquals(completedJobs.get(), 1); + } + + private static class MockJob extends ProvisioningJob { + + private final long delay; + private final AtomicInteger completedJobs; + + public MockJob(long delay, String group, AtomicInteger completedJobs) { + super(sleepPredicate(delay), group, Suppliers.ofInstance((Object) 0)); + this.delay = delay; + this.completedJobs = completedJobs; + } + + @Override + public Integer call() throws Exception { + getAnonymousLogger().info("ProvisioningManagerTest: Starting " + this); + super.call(); + getAnonymousLogger().info("ProvisioningManagerTest: Completed " + this); + return completedJobs.incrementAndGet(); + } + + @Override + public String toString() { + return "MockJob [id=" + hashCode() + ", group=" + getGroup() + ", delay=" + delay + "]"; + } + } + + private static class ShutdownExecutorJob extends ProvisioningJob { + + public ShutdownExecutorJob(final ProvisioningManager manager, final AtomicInteger completedJobs) { + super(Predicates.<String>alwaysTrue(), "shutdown", new Supplier<Object>() { + @Override + public Integer get() { + try { + manager.close(); + return completedJobs.incrementAndGet(); + } catch (IOException ex) { + throw Throwables.propagate(ex); + } + } + }); + } + } + + private static Predicate<String> sleepPredicate(final long delay) { + return new Predicate<String>() { + @Override + public boolean apply(String input) { + sleepUninterruptibly(delay, TimeUnit.MILLISECONDS); + return true; + } + }; + } +} http://git-wip-us.apache.org/repos/asf/jclouds/blob/ed247e7d/providers/profitbricks/src/test/java/org/jclouds/profitbricks/compute/function/DataCenterToLocationTest.java ---------------------------------------------------------------------- diff --git a/providers/profitbricks/src/test/java/org/jclouds/profitbricks/compute/function/DataCenterToLocationTest.java b/providers/profitbricks/src/test/java/org/jclouds/profitbricks/compute/function/DataCenterToLocationTest.java new file mode 100644 index 0000000..7dcf69c --- /dev/null +++ b/providers/profitbricks/src/test/java/org/jclouds/profitbricks/compute/function/DataCenterToLocationTest.java @@ -0,0 +1,77 @@ +/* + * 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.profitbricks.compute.function; + +import static org.testng.Assert.assertEquals; + +import java.net.URI; + +import org.jclouds.domain.Location; +import org.jclouds.domain.LocationBuilder; +import org.jclouds.domain.LocationScope; +import org.jclouds.location.suppliers.all.JustProvider; +import org.jclouds.profitbricks.ProfitBricksProviderMetadata; +import org.jclouds.profitbricks.domain.DataCenter; +import org.jclouds.profitbricks.domain.ProvisioningState; +import org.testng.annotations.BeforeTest; +import org.testng.annotations.Test; + +import com.google.common.base.Suppliers; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableSet; + +@Test(groups = "unit", testName = "DataCenterToLocationTest") +public class DataCenterToLocationTest { + + private DataCenterToLocation fnLocation; + private LocationToLocation fnRegion; + + @BeforeTest + public void setup() { + ProfitBricksProviderMetadata metadata = new ProfitBricksProviderMetadata(); + JustProvider justProvider = new JustProvider(metadata.getId(), Suppliers.<URI>ofInstance( + URI.create(metadata.getEndpoint())), ImmutableSet.<String>of()); + this.fnRegion = new LocationToLocation(justProvider); + this.fnLocation = new DataCenterToLocation(fnRegion); + } + + @Test + public void testDataCenterToLocation() { + DataCenter dataCenter = DataCenter.builder() + .id("12345678-abcd-efgh-ijkl-987654321000") + .version(10) + .name("JClouds-DC") + .state(ProvisioningState.AVAILABLE) + .location(org.jclouds.profitbricks.domain.Location.DE_FRA) + .build(); + + Location actual = fnLocation.apply(dataCenter); + + Location expected = new LocationBuilder() + .id(dataCenter.id()) + .description(dataCenter.name()) + .scope(LocationScope.ZONE) + .metadata(ImmutableMap.<String, Object>of( + "version", dataCenter.version(), + "state", dataCenter.state())) + .parent(fnRegion.apply(org.jclouds.profitbricks.domain.Location.DE_FRA)) + .build(); + + assertEquals(actual, expected); + } + +} http://git-wip-us.apache.org/repos/asf/jclouds/blob/ed247e7d/providers/profitbricks/src/test/java/org/jclouds/profitbricks/compute/function/LocationToLocationTest.java ---------------------------------------------------------------------- diff --git a/providers/profitbricks/src/test/java/org/jclouds/profitbricks/compute/function/LocationToLocationTest.java b/providers/profitbricks/src/test/java/org/jclouds/profitbricks/compute/function/LocationToLocationTest.java new file mode 100644 index 0000000..3967cf5 --- /dev/null +++ b/providers/profitbricks/src/test/java/org/jclouds/profitbricks/compute/function/LocationToLocationTest.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.profitbricks.compute.function; + +import static org.testng.Assert.assertEquals; + +import java.net.URI; + +import org.jclouds.domain.LocationBuilder; +import org.jclouds.domain.LocationScope; +import org.jclouds.location.suppliers.all.JustProvider; +import org.jclouds.profitbricks.ProfitBricksProviderMetadata; +import org.jclouds.profitbricks.domain.Location; +import org.testng.annotations.BeforeTest; +import org.testng.annotations.Test; + +import com.google.common.base.Suppliers; +import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Iterables; + +@Test(groups = "unit", testName = "LocationToLocationTest") +public class LocationToLocationTest { + + private LocationToLocation fnRegion; + private JustProvider justProvider; + + @BeforeTest + public void setup() { + ProfitBricksProviderMetadata metadata = new ProfitBricksProviderMetadata(); + this.justProvider = new JustProvider(metadata.getId(), Suppliers.<URI>ofInstance( + URI.create(metadata.getEndpoint())), ImmutableSet.<String>of()); + this.fnRegion = new LocationToLocation(justProvider); + } + + @Test + public void testLocationToLocation() { + Location[] locations = Location.values(); + for (Location loc : locations) { + org.jclouds.domain.Location actual = fnRegion.apply(loc); + org.jclouds.domain.Location expected = new LocationBuilder() + .id(loc.getId()).description(loc.getDescription()).scope(LocationScope.REGION) + .parent(Iterables.getOnlyElement(justProvider.get())).build(); + + assertEquals(actual, expected); + } + + } +} http://git-wip-us.apache.org/repos/asf/jclouds/blob/ed247e7d/providers/profitbricks/src/test/java/org/jclouds/profitbricks/compute/function/ProvisionableToImageTest.java ---------------------------------------------------------------------- diff --git a/providers/profitbricks/src/test/java/org/jclouds/profitbricks/compute/function/ProvisionableToImageTest.java b/providers/profitbricks/src/test/java/org/jclouds/profitbricks/compute/function/ProvisionableToImageTest.java new file mode 100644 index 0000000..d114efb --- /dev/null +++ b/providers/profitbricks/src/test/java/org/jclouds/profitbricks/compute/function/ProvisionableToImageTest.java @@ -0,0 +1,260 @@ +/* + * 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.profitbricks.compute.function; + +import static org.testng.Assert.assertEquals; + +import java.net.URI; +import java.util.Date; + +import org.jclouds.compute.domain.Image; +import org.jclouds.compute.domain.ImageBuilder; +import org.jclouds.compute.domain.OperatingSystem; +import org.jclouds.compute.domain.OsFamily; +import org.jclouds.location.suppliers.all.JustProvider; +import org.jclouds.profitbricks.ProfitBricksProviderMetadata; +import org.jclouds.profitbricks.domain.Location; +import org.jclouds.profitbricks.domain.OsType; +import org.jclouds.profitbricks.domain.ProvisioningState; +import org.jclouds.profitbricks.domain.Snapshot; +import org.testng.annotations.BeforeTest; +import org.testng.annotations.Test; + +import com.google.common.base.Suppliers; +import com.google.common.collect.ImmutableSet; + +@Test(groups = "unit", testName = "ProvisionableToImageTest") +public class ProvisionableToImageTest { + + private ProvisionableToImage fnImage; + private LocationToLocation fnRegion; + + @BeforeTest + public void setup() { + ProfitBricksProviderMetadata metadata = new ProfitBricksProviderMetadata(); + JustProvider justProvider = new JustProvider(metadata.getId(), Suppliers.<URI>ofInstance( + URI.create(metadata.getEndpoint())), ImmutableSet.<String>of()); + this.fnRegion = new LocationToLocation(justProvider); + this.fnImage = new ProvisionableToImage(fnRegion); + } + + @Test + public void testImageToImage() { + org.jclouds.profitbricks.domain.Image image + = org.jclouds.profitbricks.domain.Image.builder() + .isBootable(true) + .isCpuHotPlug(true) + .isCpuHotUnPlug(false) + .isDiscVirtioHotPlug(true) + .isDiscVirtioHotUnPlug(true) + .id("5ad99c9e-9166-11e4-9d74-52540066fee9") + .name("Ubuntu-14.04-LTS-server-2015-01-01") + .size(2048f) + .type(org.jclouds.profitbricks.domain.Image.Type.HDD) + .location(Location.US_LAS) + .isNicHotPlug(true) + .isNicHotUnPlug(true) + .osType(OsType.LINUX) + .isPublic(true) + .isRamHotPlug(true) + .isRamHotUnPlug(false) + .isWriteable(true) + .build(); + + Image actual = fnImage.apply(image); + + Image expected = new ImageBuilder() + .ids(image.id()) + .name(image.name()) + .location(fnRegion.apply(Location.US_LAS)) + .status(Image.Status.AVAILABLE) + .operatingSystem(OperatingSystem.builder() + .description("UBUNTU") + .family(OsFamily.UBUNTU) + .version("14.04") + .is64Bit(false) + .build()) + .build(); + + assertEquals(actual, expected); + } + + @Test + public void testImageDescriptionParsing() { + org.jclouds.profitbricks.domain.Image image1 + = org.jclouds.profitbricks.domain.Image.builder() + .id("f4742db0-9160-11e4-9d74-52540066fee9") + .name("Fedora-19-server-2015-01-01") + .size(2048f) + .type(org.jclouds.profitbricks.domain.Image.Type.HDD) + .location(Location.DE_FRA) + .osType(OsType.LINUX) + .build(); + + Image actual1 = fnImage.apply(image1); + + Image expected1 = new ImageBuilder() + .ids(image1.id()) + .name(image1.name()) + .location(fnRegion.apply(image1.location())) + .status(Image.Status.AVAILABLE) + .operatingSystem(OperatingSystem.builder() + .description("FEDORA") + .family(OsFamily.FEDORA) + .version("7") + .is64Bit(true) + .build()) + .build(); + + assertEquals(actual1, expected1); + + org.jclouds.profitbricks.domain.Image image2 + = org.jclouds.profitbricks.domain.Image.builder() + .id("457bf707-d5d1-11e3-8b4f-52540066fee9") + .name("clearos-community-6.5.0-x86_64.iso") + .size(2048f) + .type(org.jclouds.profitbricks.domain.Image.Type.CDROM) + .location(Location.DE_FKB) + .osType(OsType.LINUX) + .build(); + + Image actual2 = fnImage.apply(image2); + + Image expected2 = new ImageBuilder() + .ids(image2.id()) + .name(image2.name()) + .location(fnRegion.apply(image2.location())) + .status(Image.Status.AVAILABLE) + .operatingSystem(OperatingSystem.builder() + .description("UNRECOGNIZED") + .family(OsFamily.UNRECOGNIZED) + .version("6.5.0") + .is64Bit(true) + .build()) + .build(); + + assertEquals(actual2, expected2); + + org.jclouds.profitbricks.domain.Image image3 + = org.jclouds.profitbricks.domain.Image.builder() + .id("e54af701-53b8-11e3-8f17-52540066fee9") + .name("windows-2008-r2-server-setup.iso") + .size(2048f) + .type(org.jclouds.profitbricks.domain.Image.Type.CDROM) + .location(Location.US_LASDEV) + .osType(OsType.WINDOWS) + .build(); + + Image actual3 = fnImage.apply(image3); + + Image expected3 = new ImageBuilder() + .ids(image3.id()) + .name(image3.name()) + .location(fnRegion.apply(image3.location())) + .status(Image.Status.AVAILABLE) + .operatingSystem(OperatingSystem.builder() + .description("WINDOWS") + .family(OsFamily.WINDOWS) + .version("2008") + .is64Bit(false) + .build()) + .build(); + + assertEquals(actual3, expected3); + + } + + @Test + public void testSnapshotToImage() { + Snapshot snapshot1 = Snapshot.builder() + .isBootable(true) + .isCpuHotPlug(true) + .isCpuHotUnPlug(false) + .isDiscVirtioHotPlug(true) + .isDiscVirtioHotUnPlug(true) + .id("qswdefrg-qaws-qaws-defe-rgrgdsvcxbrh") + .name("placeholder-snapshot-04/13/2015") + .description("Created from \"placeholder\" in Data Center \"sbx-computeservice\"") + .size(2048f) + .location(Location.US_LAS) + .isNicHotPlug(true) + .isNicHotUnPlug(true) + .osType(OsType.LINUX) + .isRamHotPlug(true) + .isRamHotUnPlug(false) + .creationTime(new Date(2015, 4, 13)) + .lastModificationTime(new Date()) + .state(ProvisioningState.AVAILABLE) + .build(); + + Image actual1 = fnImage.apply(snapshot1); + + Image expected1 = new ImageBuilder() + .ids(snapshot1.id()) + .name(snapshot1.name()) + .location(fnRegion.apply(Location.US_LAS)) + .status(Image.Status.AVAILABLE) + .operatingSystem(OperatingSystem.builder() + .description(snapshot1.description()) + .family(OsFamily.LINUX) + .is64Bit(true) + .build()) + .build(); + + assertEquals(actual1, expected1); + + Snapshot snapshot2 = Snapshot.builder() + .isBootable(true) + .isCpuHotPlug(true) + .isCpuHotUnPlug(false) + .isDiscVirtioHotPlug(true) + .isDiscVirtioHotUnPlug(true) + .id("d80bf9c0-ce6e-4283-9ea4-2906635f6137") + .name("jclouds-ubuntu14.10-template") + .description("Created from \"jclouds-ubuntu14.10 Storage\" in Data Center \"jclouds-computeservice\"") + .size(10240f) + .location(Location.DE_FKB) + .isNicHotPlug(true) + .isNicHotUnPlug(true) + .osType(OsType.LINUX) + .isRamHotPlug(true) + .isRamHotUnPlug(false) + .creationTime(new Date(2015, 4, 13)) + .lastModificationTime(new Date()) + .state(ProvisioningState.INPROCESS) + .build(); + + Image actual2 = fnImage.apply(snapshot2); + + Image expected2 = new ImageBuilder() + .ids(snapshot2.id()) + .name(snapshot2.name()) + .location(fnRegion.apply(Location.DE_FKB)) + .status(Image.Status.PENDING) + .operatingSystem(OperatingSystem.builder() + .description("ubuntu") + .family(OsFamily.UBUNTU) + .is64Bit(true) + .version("00.00") + .build()) + .build(); + + assertEquals(actual2, expected2); + assertEquals(actual2.getOperatingSystem(), expected2.getOperatingSystem()); + + } +} http://git-wip-us.apache.org/repos/asf/jclouds/blob/ed247e7d/providers/profitbricks/src/test/java/org/jclouds/profitbricks/compute/function/ServerToNodeMetadataTest.java ---------------------------------------------------------------------- diff --git a/providers/profitbricks/src/test/java/org/jclouds/profitbricks/compute/function/ServerToNodeMetadataTest.java b/providers/profitbricks/src/test/java/org/jclouds/profitbricks/compute/function/ServerToNodeMetadataTest.java new file mode 100644 index 0000000..5fba62b --- /dev/null +++ b/providers/profitbricks/src/test/java/org/jclouds/profitbricks/compute/function/ServerToNodeMetadataTest.java @@ -0,0 +1,184 @@ +/* + * 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.profitbricks.compute.function; + +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertNotNull; + +import java.util.Set; + +import org.jclouds.compute.domain.HardwareBuilder; +import org.jclouds.compute.domain.NodeMetadata; +import org.jclouds.compute.domain.NodeMetadataBuilder; +import org.jclouds.compute.domain.OperatingSystem; +import org.jclouds.compute.domain.OsFamily; +import org.jclouds.compute.domain.Processor; +import org.jclouds.compute.domain.Volume; +import org.jclouds.compute.domain.VolumeBuilder; +import org.jclouds.compute.functions.GroupNamingConvention; +import org.jclouds.domain.Location; +import org.jclouds.domain.LocationBuilder; +import org.jclouds.domain.LocationScope; +import org.jclouds.profitbricks.ProfitBricksApiMetadata; +import org.jclouds.profitbricks.domain.AvailabilityZone; +import org.jclouds.profitbricks.domain.DataCenter; +import org.jclouds.profitbricks.domain.Nic; +import org.jclouds.profitbricks.domain.OsType; +import org.jclouds.profitbricks.domain.ProvisioningState; +import org.jclouds.profitbricks.domain.Server; +import org.jclouds.profitbricks.domain.Storage; +import org.testng.annotations.BeforeTest; +import org.testng.annotations.Test; + +import com.google.common.base.Supplier; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableSet; +import com.google.inject.AbstractModule; +import com.google.inject.Guice; +import com.google.inject.name.Names; + +@Test(groups = "unit", testName = "ServerToNodeMetadataTest") +public class ServerToNodeMetadataTest { + + private ServerToNodeMetadata fnNodeMetadata; + + @BeforeTest + public void setup() { + Supplier<Set<? extends Location>> locationsSupply = new Supplier<Set<? extends Location>>() { + + @Override + public Set<? extends Location> get() { + return ImmutableSet.of( + new LocationBuilder() + .id("12345678-abcd-efgh-ijkl-987654321000") + .description("JClouds-DC") + .scope(LocationScope.REGION) + .metadata(ImmutableMap.<String, Object>of( + "version", "10", + "state", "AVAILABLE")) + .parent(new LocationBuilder() + .id("de/fra") + .description("Germany, Frankfurt (M)") + .scope(LocationScope.PROVIDER) + .build()) + .build()); + } + }; + + GroupNamingConvention.Factory namingConvention = Guice.createInjector(new AbstractModule() { + @Override + protected void configure() { + Names.bindProperties(binder(), new ProfitBricksApiMetadata().getDefaultProperties()); + } + }).getInstance(GroupNamingConvention.Factory.class); + + this.fnNodeMetadata = new ServerToNodeMetadata(new StorageToVolume(), locationsSupply, namingConvention); + } + + @Test + public void testServerToNodeMetadata() { + Server server = Server.builder() + .dataCenter(DataCenter.builder() + .id("12345678-abcd-efgh-ijkl-987654321000").version(10) + .build()) + .id("qwertyui-qwer-qwer-qwer-qwertyyuiiop") + .name("mock-facebook-node") + .cores(4) + .ram(4096) + .hasInternetAccess(true) + .state(ProvisioningState.AVAILABLE) + .status(Server.Status.RUNNING) + .osType(OsType.LINUX) + .availabilityZone(AvailabilityZone.AUTO) + .isCpuHotPlug(true) + .isRamHotPlug(true) + .isNicHotPlug(true) + .isNicHotUnPlug(true) + .isDiscVirtioHotPlug(true) + .isDiscVirtioHotUnPlug(true) + .storages(ImmutableList.<Storage>of( + Storage.builder() + .bootDevice(true) + .busType(Storage.BusType.VIRTIO) + .deviceNumber(1) + .size(40f) + .id("qswdefrg-qaws-qaws-defe-rgrgdsvcxbrh") + .name("facebook-storage") + .build() + ) + ) + .nics(ImmutableList.<Nic>of( + Nic.builder() + .id("qwqwqwqw-wewe-erer-rtrt-tytytytytyty") + .lanId(1) + .dataCenterId("12345678-abcd-efgh-ijkl-987654321000") + .internetAccess(true) + .serverId("qwertyui-qwer-qwer-qwer-qwertyyuiiop") + .macAddress("02:01:09:cd:f0:b0") + .ip("173.252.120.6") + .build() + ) + ) + .build(); + + NodeMetadata expected = fnNodeMetadata.apply(server); + assertNotNull(expected); + + NodeMetadata actual = new NodeMetadataBuilder() + .group("mock") + .ids(server.id()) + .name(server.name()) + .backendStatus("AVAILABLE") + .status(NodeMetadata.Status.RUNNING) + .hardware(new HardwareBuilder() + .ids("cpu=4,ram=4096,disk=40") + .name("cpu=4,ram=4096,disk=40") + .ram(server.ram()) + .processor(new Processor(server.cores(), 1d)) + .hypervisor("kvm") + .volume(new VolumeBuilder() + .bootDevice(true) + .size(40f) + .id("qswdefrg-qaws-qaws-defe-rgrgdsvcxbrh") + .durable(true) + .type(Volume.Type.LOCAL) + .build()) + .build()) + .operatingSystem(new OperatingSystem.Builder() + .description(OsFamily.LINUX.value()) + .family(OsFamily.LINUX) + .build()) + .location(new LocationBuilder() + .id("12345678-abcd-efgh-ijkl-987654321000") + .description("JClouds-DC") + .scope(LocationScope.REGION) + .metadata(ImmutableMap.<String, Object>of( + "version", "10", + "state", "AVAILABLE")) + .parent(new LocationBuilder() + .id("de/fra") + .description("Germany, Frankfurt (M)") + .scope(LocationScope.PROVIDER) + .build()) + .build()) + .publicAddresses(ImmutableList.<String>of("173.252.120.6")) + .build(); + + assertEquals(actual, expected); + } +} http://git-wip-us.apache.org/repos/asf/jclouds/blob/ed247e7d/providers/profitbricks/src/test/java/org/jclouds/profitbricks/compute/function/StorageToVolumeTest.java ---------------------------------------------------------------------- diff --git a/providers/profitbricks/src/test/java/org/jclouds/profitbricks/compute/function/StorageToVolumeTest.java b/providers/profitbricks/src/test/java/org/jclouds/profitbricks/compute/function/StorageToVolumeTest.java new file mode 100644 index 0000000..8a782e7 --- /dev/null +++ b/providers/profitbricks/src/test/java/org/jclouds/profitbricks/compute/function/StorageToVolumeTest.java @@ -0,0 +1,61 @@ +/* + * 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.profitbricks.compute.function; + +import static org.testng.Assert.assertEquals; + +import org.jclouds.compute.domain.Volume; +import org.jclouds.compute.domain.VolumeBuilder; +import org.jclouds.profitbricks.domain.Storage; +import org.testng.annotations.BeforeTest; +import org.testng.annotations.Test; + +@Test(groups = "unit", testName = "StorageToVolumeTest") +public class StorageToVolumeTest { + + private StorageToVolume fnVolume; + + @BeforeTest + public void setup() { + this.fnVolume = new StorageToVolume(); + } + + @Test + public void testStorageToVolume() { + Storage storage = Storage.builder() + .id("qswdefrg-qaws-qaws-defe-rgrgdsvcxbrh") + .size(40) + .name("hdd-1") + .busType(Storage.BusType.VIRTIO) + .bootDevice(true) + .deviceNumber(1) + .build(); + + Volume actual = fnVolume.apply(storage); + + Volume expected = new VolumeBuilder() + .id(storage.id()) + .size(40f) + .bootDevice(true) + .device("1") + .type(Volume.Type.LOCAL) + .durable(true) + .build(); + + assertEquals(actual, expected); + } +} http://git-wip-us.apache.org/repos/asf/jclouds/blob/ed247e7d/providers/profitbricks/src/test/java/org/jclouds/profitbricks/compute/internal/ProvisioningStatusPollingPredicateTest.java ---------------------------------------------------------------------- diff --git a/providers/profitbricks/src/test/java/org/jclouds/profitbricks/compute/internal/ProvisioningStatusPollingPredicateTest.java b/providers/profitbricks/src/test/java/org/jclouds/profitbricks/compute/internal/ProvisioningStatusPollingPredicateTest.java index 857a8ff..690412a 100644 --- a/providers/profitbricks/src/test/java/org/jclouds/profitbricks/compute/internal/ProvisioningStatusPollingPredicateTest.java +++ b/providers/profitbricks/src/test/java/org/jclouds/profitbricks/compute/internal/ProvisioningStatusPollingPredicateTest.java @@ -136,10 +136,10 @@ public class ProvisioningStatusPollingPredicateTest extends BaseProfitBricksMock server.shutdown(); } } - + @Test - public void testSnapshotPredicate() throws Exception{ - MockWebServer server = mockWebServer(); + public void testSnapshotPredicate() throws Exception { + MockWebServer server = mockWebServer(); byte[] payloadInProcess = payloadFromResource("/snapshot/snapshot-state-inprocess.xml"); byte[] payloadAvailable = payloadFromResource("/snapshot/snapshot.xml"); http://git-wip-us.apache.org/repos/asf/jclouds/blob/ed247e7d/providers/profitbricks/src/test/java/org/jclouds/profitbricks/features/DrivesApiLiveTest.java ---------------------------------------------------------------------- diff --git a/providers/profitbricks/src/test/java/org/jclouds/profitbricks/features/DrivesApiLiveTest.java b/providers/profitbricks/src/test/java/org/jclouds/profitbricks/features/DrivesApiLiveTest.java index 20cf5f8..8e84746 100644 --- a/providers/profitbricks/src/test/java/org/jclouds/profitbricks/features/DrivesApiLiveTest.java +++ b/providers/profitbricks/src/test/java/org/jclouds/profitbricks/features/DrivesApiLiveTest.java @@ -16,16 +16,15 @@ */ package org.jclouds.profitbricks.features; +import static org.testng.Assert.assertFalse; +import static org.testng.Assert.assertNotNull; + import java.util.List; import org.jclouds.profitbricks.BaseProfitBricksLiveTest; import org.jclouds.profitbricks.domain.Drive; import org.jclouds.profitbricks.domain.Image; import org.jclouds.profitbricks.domain.Server; - -import static org.testng.Assert.assertFalse; -import static org.testng.Assert.assertNotNull; - import org.testng.annotations.Test; import com.google.common.collect.Iterables; @@ -67,7 +66,7 @@ public class DrivesApiLiveTest extends BaseProfitBricksLiveTest { assertNotNull(requestId); } - @Test (dependsOnMethods = "addRomDriveToServerTest") + @Test(dependsOnMethods = "addRomDriveToServerTest") public void removeRomDriveFromServerTest() { String requestId = api.drivesApi().removeRomDriveFromServer(imageId, serverId); http://git-wip-us.apache.org/repos/asf/jclouds/blob/ed247e7d/providers/profitbricks/src/test/java/org/jclouds/profitbricks/features/FirewallApiLiveTest.java ---------------------------------------------------------------------- diff --git a/providers/profitbricks/src/test/java/org/jclouds/profitbricks/features/FirewallApiLiveTest.java b/providers/profitbricks/src/test/java/org/jclouds/profitbricks/features/FirewallApiLiveTest.java index cd38494..ddf94d4 100644 --- a/providers/profitbricks/src/test/java/org/jclouds/profitbricks/features/FirewallApiLiveTest.java +++ b/providers/profitbricks/src/test/java/org/jclouds/profitbricks/features/FirewallApiLiveTest.java @@ -16,7 +16,6 @@ */ package org.jclouds.profitbricks.features; -import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; import java.util.List; @@ -41,6 +40,7 @@ import org.testng.annotations.AfterClass; import org.testng.annotations.Test; import com.google.common.base.Predicate; +import com.google.common.collect.ImmutableList; @Test(groups = "live", testName = "FirewallApiLiveTest", singleThreaded = true) public class FirewallApiLiveTest extends BaseProfitBricksLiveTest { http://git-wip-us.apache.org/repos/asf/jclouds/blob/ed247e7d/providers/profitbricks/src/test/java/org/jclouds/profitbricks/features/IpBlockApiLiveTest.java ---------------------------------------------------------------------- diff --git a/providers/profitbricks/src/test/java/org/jclouds/profitbricks/features/IpBlockApiLiveTest.java b/providers/profitbricks/src/test/java/org/jclouds/profitbricks/features/IpBlockApiLiveTest.java index 227cfc7..e7c2eda 100644 --- a/providers/profitbricks/src/test/java/org/jclouds/profitbricks/features/IpBlockApiLiveTest.java +++ b/providers/profitbricks/src/test/java/org/jclouds/profitbricks/features/IpBlockApiLiveTest.java @@ -47,7 +47,7 @@ public class IpBlockApiLiveTest extends BaseProfitBricksLiveTest { @Test public void testReservePublicIpBlock() { - newIpBlock = api.ipBlockApi().reservePublicIpBlock("2", Location.US_LAS.value()); + newIpBlock = api.ipBlockApi().reservePublicIpBlock("2", Location.US_LAS.getId()); assertNotNull(newIpBlock); assertNotNull(newIpBlock.ips()); http://git-wip-us.apache.org/repos/asf/jclouds/blob/ed247e7d/providers/profitbricks/src/test/java/org/jclouds/profitbricks/features/IpBlockApiMockTest.java ---------------------------------------------------------------------- diff --git a/providers/profitbricks/src/test/java/org/jclouds/profitbricks/features/IpBlockApiMockTest.java b/providers/profitbricks/src/test/java/org/jclouds/profitbricks/features/IpBlockApiMockTest.java index b0d3356..e948e76 100644 --- a/providers/profitbricks/src/test/java/org/jclouds/profitbricks/features/IpBlockApiMockTest.java +++ b/providers/profitbricks/src/test/java/org/jclouds/profitbricks/features/IpBlockApiMockTest.java @@ -122,9 +122,9 @@ public class IpBlockApiMockTest extends BaseProfitBricksMockTest { String blockSize = "2"; Location location = Location.US_LAS; - String content = "<ws:reservePublicIpBlock><request><blockSize>" + blockSize + "</blockSize><location>" + location.value() + "</location></request></ws:reservePublicIpBlock>"; + String content = "<ws:reservePublicIpBlock><request><blockSize>" + blockSize + "</blockSize><location>" + location.getId() + "</location></request></ws:reservePublicIpBlock>"; try { - IpBlock ipBlock = api.reservePublicIpBlock(blockSize, location.value()); + IpBlock ipBlock = api.reservePublicIpBlock(blockSize, location.getId()); assertRequestHasCommonProperties(server.takeRequest(), content); assertNotNull(ipBlock); } finally { http://git-wip-us.apache.org/repos/asf/jclouds/blob/ed247e7d/providers/profitbricks/src/test/java/org/jclouds/profitbricks/features/LoadbalancerApiLiveTest.java ---------------------------------------------------------------------- diff --git a/providers/profitbricks/src/test/java/org/jclouds/profitbricks/features/LoadbalancerApiLiveTest.java b/providers/profitbricks/src/test/java/org/jclouds/profitbricks/features/LoadbalancerApiLiveTest.java index a79f9ae..d5e64cf 100644 --- a/providers/profitbricks/src/test/java/org/jclouds/profitbricks/features/LoadbalancerApiLiveTest.java +++ b/providers/profitbricks/src/test/java/org/jclouds/profitbricks/features/LoadbalancerApiLiveTest.java @@ -128,7 +128,7 @@ public class LoadbalancerApiLiveTest extends BaseProfitBricksLiveTest { @AfterClass(alwaysRun = true) public void testDeleteLoadBalancer() { - boolean result = api.loadBalancerApi().deleteLoadbalancer(loadBalancerID); + boolean result = api.loadBalancerApi().deleteLoadBalancer(loadBalancerID); Assert.assertTrue(result); } http://git-wip-us.apache.org/repos/asf/jclouds/blob/ed247e7d/providers/profitbricks/src/test/java/org/jclouds/profitbricks/features/LoadbalancerApiMockTest.java ---------------------------------------------------------------------- diff --git a/providers/profitbricks/src/test/java/org/jclouds/profitbricks/features/LoadbalancerApiMockTest.java b/providers/profitbricks/src/test/java/org/jclouds/profitbricks/features/LoadbalancerApiMockTest.java index f91083a..1271244 100644 --- a/providers/profitbricks/src/test/java/org/jclouds/profitbricks/features/LoadbalancerApiMockTest.java +++ b/providers/profitbricks/src/test/java/org/jclouds/profitbricks/features/LoadbalancerApiMockTest.java @@ -273,7 +273,7 @@ public class LoadbalancerApiMockTest extends BaseProfitBricksMockTest { String content = "<ws:deleteLoadBalancer><loadBalancerId>" + loadBalancerId + "</loadBalancerId></ws:deleteLoadBalancer>"; try { - boolean done = api.deleteLoadbalancer(loadBalancerId); + boolean done = api.deleteLoadBalancer(loadBalancerId); assertRequestHasCommonProperties(server.takeRequest(), content); assertTrue(done); http://git-wip-us.apache.org/repos/asf/jclouds/blob/ed247e7d/providers/profitbricks/src/test/java/org/jclouds/profitbricks/features/SnapshotApiLiveTest.java ---------------------------------------------------------------------- diff --git a/providers/profitbricks/src/test/java/org/jclouds/profitbricks/features/SnapshotApiLiveTest.java b/providers/profitbricks/src/test/java/org/jclouds/profitbricks/features/SnapshotApiLiveTest.java index 957555b..6c50f2a 100644 --- a/providers/profitbricks/src/test/java/org/jclouds/profitbricks/features/SnapshotApiLiveTest.java +++ b/providers/profitbricks/src/test/java/org/jclouds/profitbricks/features/SnapshotApiLiveTest.java @@ -89,20 +89,20 @@ public class SnapshotApiLiveTest extends BaseProfitBricksLiveTest { String newName = "new name"; api.snapshotApi().updateSnapshot(Snapshot.Request.updatingBuilder() - .snapshotId(snapshotId) - .description("new description") - .name(newName) - .bootable(true) - .osType(OsType.LINUX) - .cpuHotplug(true) - .cpuHotunplug(true) - .discVirtioHotplug(true) - .discVirtioHotunplug(true) - .nicHotplug(true) - .nicHotunplug(true) - .ramHotplug(true) - .ramHotunplug(true) - .build()); + .snapshotId(snapshotId) + .description("new description") + .name(newName) + .bootable(true) + .osType(OsType.LINUX) + .isCpuHotPlug(true) + .isCpuHotUnPlug(true) + .isDiscVirtioHotPlug(true) + .isDiscVirtioHotUnPlug(true) + .isNicHotPlug(true) + .isNicHotUnPlug(true) + .isRamHotPlug(true) + .isRamHotUnPlug(true) + .build()); Snapshot snapshot = api.snapshotApi().getSnapshot(snapshotId); @@ -126,7 +126,7 @@ public class SnapshotApiLiveTest extends BaseProfitBricksLiveTest { private void initializeWaitPredicate() { this.snapshotWaitingPredicate = Predicates2.retry( - new ProvisioningStatusPollingPredicate(api, ProvisioningStatusAware.SNAPSHOT, ProvisioningState.AVAILABLE), - 2l * 60l, 2l, TimeUnit.SECONDS); + new ProvisioningStatusPollingPredicate(api, ProvisioningStatusAware.SNAPSHOT, ProvisioningState.AVAILABLE), + 2l * 60l, 2l, TimeUnit.SECONDS); } } http://git-wip-us.apache.org/repos/asf/jclouds/blob/ed247e7d/providers/profitbricks/src/test/java/org/jclouds/profitbricks/features/SnapshotApiMockTest.java ---------------------------------------------------------------------- diff --git a/providers/profitbricks/src/test/java/org/jclouds/profitbricks/features/SnapshotApiMockTest.java b/providers/profitbricks/src/test/java/org/jclouds/profitbricks/features/SnapshotApiMockTest.java index 80342b0..528f893 100644 --- a/providers/profitbricks/src/test/java/org/jclouds/profitbricks/features/SnapshotApiMockTest.java +++ b/providers/profitbricks/src/test/java/org/jclouds/profitbricks/features/SnapshotApiMockTest.java @@ -47,13 +47,13 @@ public class SnapshotApiMockTest extends BaseProfitBricksMockTest { SnapshotApi api = pbApi.snapshotApi(); try { - List<Snapshot> snapshots = api.getAllSnapshots(); - assertRequestHasCommonProperties(server.takeRequest(), "<ws:getAllSnapshots/>"); - assertNotNull(snapshots); - assertEquals(snapshots.size(), 2); + List<Snapshot> snapshots = api.getAllSnapshots(); + assertRequestHasCommonProperties(server.takeRequest(), "<ws:getAllSnapshots/>"); + assertNotNull(snapshots); + assertEquals(snapshots.size(), 2); } finally { - pbApi.close(); - server.shutdown(); + pbApi.close(); + server.shutdown(); } } @@ -66,12 +66,12 @@ public class SnapshotApiMockTest extends BaseProfitBricksMockTest { SnapshotApi api = pbApi.snapshotApi(); try { - List<Snapshot> snapshots = api.getAllSnapshots(); - assertRequestHasCommonProperties(server.takeRequest()); - assertTrue(snapshots.isEmpty()); + List<Snapshot> snapshots = api.getAllSnapshots(); + assertRequestHasCommonProperties(server.takeRequest()); + assertTrue(snapshots.isEmpty()); } finally { - pbApi.close(); - server.shutdown(); + pbApi.close(); + server.shutdown(); } } @@ -88,13 +88,13 @@ public class SnapshotApiMockTest extends BaseProfitBricksMockTest { String content = "<ws:getSnapshot><snapshotId>" + id + "</snapshotId></ws:getSnapshot>"; try { - Snapshot snapshot = api.getSnapshot(id); - assertRequestHasCommonProperties(server.takeRequest(), content); - assertNotNull(snapshot); - assertEquals(snapshot.id(), id); + Snapshot snapshot = api.getSnapshot(id); + assertRequestHasCommonProperties(server.takeRequest(), content); + assertNotNull(snapshot); + assertEquals(snapshot.id(), id); } finally { - pbApi.close(); - server.shutdown(); + pbApi.close(); + server.shutdown(); } } @@ -108,12 +108,12 @@ public class SnapshotApiMockTest extends BaseProfitBricksMockTest { String id = "random-non-existing-id"; try { - Snapshot snapshot = api.getSnapshot(id); - assertRequestHasCommonProperties(server.takeRequest()); - assertNull(snapshot); + Snapshot snapshot = api.getSnapshot(id); + assertRequestHasCommonProperties(server.takeRequest()); + assertNull(snapshot); } finally { - pbApi.close(); - server.shutdown(); + pbApi.close(); + server.shutdown(); } } @@ -128,27 +128,27 @@ public class SnapshotApiMockTest extends BaseProfitBricksMockTest { String storageId = "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"; String content = "<ws:createSnapshot>" - + "<request>" - + "<storageId>" + storageId + "</storageId>" - + "<description>description</description>" - + "<snapshotName>snapshot-name</snapshotName>" - + "</request>" - + "</ws:createSnapshot>"; + + "<request>" + + "<storageId>" + storageId + "</storageId>" + + "<description>description</description>" + + "<snapshotName>snapshot-name</snapshotName>" + + "</request>" + + "</ws:createSnapshot>"; try { - Snapshot snapshot = api.createSnapshot( - Snapshot.Request.creatingBuilder() - .storageId(storageId) - .description("description") - .name("snapshot-name") - .build()); - assertRequestHasCommonProperties(server.takeRequest(), content); - assertNotNull(snapshot.id()); - assertEquals(snapshot.id(), "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"); + Snapshot snapshot = api.createSnapshot( + Snapshot.Request.creatingBuilder() + .storageId(storageId) + .description("description") + .name("snapshot-name") + .build()); + assertRequestHasCommonProperties(server.takeRequest(), content); + assertNotNull(snapshot.id()); + assertEquals(snapshot.id(), "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"); } finally { - pbApi.close(); - server.shutdown(); + pbApi.close(); + server.shutdown(); } } @@ -163,35 +163,43 @@ public class SnapshotApiMockTest extends BaseProfitBricksMockTest { String snapshotId = "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"; String content = "<ws:updateSnapshot>" - + "<request>" - + "<snapshotId>" + snapshotId + "</snapshotId>" - + "<description>description</description>" - + "<snapshotName>snapshot-name</snapshotName>" - + "<bootable>false</bootable>" - + "<osType>LINUX</osType>" - + "<cpuHotPlug>false</cpuHotPlug>" - + "<cpuHotUnPlug>false</cpuHotUnPlug>" - + "<ramHotPlug>false</ramHotPlug>" - + "<ramHotUnPlug>false</ramHotUnPlug>" - + "<nicHotPlug>false</nicHotPlug>" - + "<nicHotUnPlug>false</nicHotUnPlug>" - + "<discVirtioHotPlug>false</discVirtioHotPlug>" - + "<discVirtioHotUnPlug>false</discVirtioHotUnPlug>" - + "</request>" - + "</ws:updateSnapshot>"; + + "<request>" + + "<snapshotId>" + snapshotId + "</snapshotId>" + + "<description>description</description>" + + "<snapshotName>snapshot-name</snapshotName>" + + "<bootable>false</bootable>" + + "<osType>LINUX</osType>" + + "<cpuHotPlug>false</cpuHotPlug>" + + "<cpuHotUnPlug>false</cpuHotUnPlug>" + + "<ramHotPlug>false</ramHotPlug>" + + "<ramHotUnPlug>false</ramHotUnPlug>" + + "<nicHotPlug>false</nicHotPlug>" + + "<nicHotUnPlug>false</nicHotUnPlug>" + + "<discVirtioHotPlug>false</discVirtioHotPlug>" + + "<discVirtioHotUnPlug>false</discVirtioHotUnPlug>" + + "</request>" + + "</ws:updateSnapshot>"; try { - String requestId = api.updateSnapshot(Snapshot.Request.updatingBuilder() - .snapshotId(snapshotId) - .name("snapshot-name") - .description("description") - .osType(OsType.LINUX) - .build()); - assertRequestHasCommonProperties(server.takeRequest(), content); - assertNotNull(requestId); + String requestId = api.updateSnapshot(Snapshot.Request.updatingBuilder() + .snapshotId(snapshotId) + .name("snapshot-name") + .description("description") + .osType(OsType.LINUX) + .isCpuHotPlug(false) + .isCpuHotUnPlug(false) + .isDiscVirtioHotPlug(false) + .isDiscVirtioHotUnPlug(false) + .isNicHotPlug(false) + .isNicHotUnPlug(false) + .isRamHotPlug(false) + .isRamHotUnPlug(false) + .build()); + assertRequestHasCommonProperties(server.takeRequest(), content); + assertNotNull(requestId); } finally { - pbApi.close(); - server.shutdown(); + pbApi.close(); + server.shutdown(); } } @@ -207,12 +215,12 @@ public class SnapshotApiMockTest extends BaseProfitBricksMockTest { String content = "<ws:deleteSnapshot><snapshotId>" + snapshotId + "</snapshotId></ws:deleteSnapshot>"; try { - boolean result = api.deleteSnapshot(snapshotId); - assertRequestHasCommonProperties(server.takeRequest(), content); - assertTrue(result); + boolean result = api.deleteSnapshot(snapshotId); + assertRequestHasCommonProperties(server.takeRequest(), content); + assertTrue(result); } finally { - pbApi.close(); - server.shutdown(); + pbApi.close(); + server.shutdown(); } } @@ -226,12 +234,12 @@ public class SnapshotApiMockTest extends BaseProfitBricksMockTest { String id = "random-non-existing-id"; try { - boolean result = api.deleteSnapshot(id); - assertRequestHasCommonProperties(server.takeRequest()); - Assert.assertFalse(result); + boolean result = api.deleteSnapshot(id); + assertRequestHasCommonProperties(server.takeRequest()); + Assert.assertFalse(result); } finally { - pbApi.close(); - server.shutdown(); + pbApi.close(); + server.shutdown(); } } @@ -248,15 +256,15 @@ public class SnapshotApiMockTest extends BaseProfitBricksMockTest { String content = "<ws:rollbackSnapshot><request><snapshotId>" + snapshotId + "</snapshotId><storageId>" + storageId + "</storageId></request></ws:rollbackSnapshot>"; try { - String result = api.rollbackSnapshot(Snapshot.Request.rollbackBuilder() - .snapshotId(snapshotId) - .storageId(storageId) - .build()); - assertRequestHasCommonProperties(server.takeRequest(), content); - assertNotNull(result); + String result = api.rollbackSnapshot(Snapshot.Request.rollbackBuilder() + .snapshotId(snapshotId) + .storageId(storageId) + .build()); + assertRequestHasCommonProperties(server.takeRequest(), content); + assertNotNull(result); } finally { - pbApi.close(); - server.shutdown(); + pbApi.close(); + server.shutdown(); } } } http://git-wip-us.apache.org/repos/asf/jclouds/blob/ed247e7d/providers/profitbricks/src/test/java/org/jclouds/profitbricks/http/parser/datacenter/DataCenterInfoResponseHandlerTest.java ---------------------------------------------------------------------- diff --git a/providers/profitbricks/src/test/java/org/jclouds/profitbricks/http/parser/datacenter/DataCenterInfoResponseHandlerTest.java b/providers/profitbricks/src/test/java/org/jclouds/profitbricks/http/parser/datacenter/DataCenterInfoResponseHandlerTest.java index e2ee87e..16b2504 100644 --- a/providers/profitbricks/src/test/java/org/jclouds/profitbricks/http/parser/datacenter/DataCenterInfoResponseHandlerTest.java +++ b/providers/profitbricks/src/test/java/org/jclouds/profitbricks/http/parser/datacenter/DataCenterInfoResponseHandlerTest.java @@ -19,8 +19,7 @@ package org.jclouds.profitbricks.http.parser.datacenter; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; -import org.jclouds.date.DateCodec; -import org.jclouds.date.DateCodecFactory; +import org.jclouds.date.DateService; import org.jclouds.http.functions.ParseSax; import org.jclouds.profitbricks.domain.AvailabilityZone; import org.jclouds.profitbricks.domain.DataCenter; @@ -44,8 +43,8 @@ public class DataCenterInfoResponseHandlerTest extends BaseResponseHandlerTest<D return factory.create(injector.getInstance(DataCenterInfoResponseHandler.class)); } - protected DateCodecFactory createDateParser() { - return injector.getInstance(DateCodecFactory.class); + protected DateService createDateParser() { + return injector.getInstance(DateService.class); } @Test @@ -55,7 +54,7 @@ public class DataCenterInfoResponseHandlerTest extends BaseResponseHandlerTest<D DataCenter actual = parser.parse(payloadFromResource("/datacenter/datacenter.xml")); assertNotNull(actual, "Parsed content returned null"); - DateCodec dateParser = createDateParser().iso8601(); + DateService dateParser = createDateParser(); DataCenter expected = DataCenter.builder() .id("12345678-abcd-efgh-ijkl-987654321000") @@ -65,6 +64,11 @@ public class DataCenterInfoResponseHandlerTest extends BaseResponseHandlerTest<D .location(Location.US_LAS) .servers(ImmutableList.<Server>of( Server.builder() + .dataCenter(DataCenter.builder() + .id("12345678-abcd-efgh-ijkl-987654321000") + .version(10) + .build() + ) .id("qqqqqqqq-wwww-eeee-rrrr-tttttttttttt") .name("jnode1") .cores(4) @@ -72,8 +76,8 @@ public class DataCenterInfoResponseHandlerTest extends BaseResponseHandlerTest<D .hasInternetAccess(true) .state(ProvisioningState.AVAILABLE) .status(Server.Status.RUNNING) - .creationTime(dateParser.toDate("2014-12-04T07:09:23.138Z")) - .lastModificationTime(dateParser.toDate("2014-12-12T03:08:35.629Z")) + .creationTime(dateParser.iso8601DateOrSecondsDateParse("2014-12-04T07:09:23.138Z")) + .lastModificationTime(dateParser.iso8601DateOrSecondsDateParse("2014-12-12T03:08:35.629Z")) .osType(OsType.LINUX) .availabilityZone(AvailabilityZone.AUTO) .isCpuHotPlug(true) @@ -125,8 +129,8 @@ public class DataCenterInfoResponseHandlerTest extends BaseResponseHandlerTest<D .size(40) .name("jnode1-disk1") .state(ProvisioningState.AVAILABLE) - .creationTime(dateParser.toDate("2014-12-04T07:09:23.138Z")) - .lastModificationTime(dateParser.toDate("2014-12-12T03:14:48.316Z")) + .creationTime(dateParser.iso8601DateOrSecondsDateParse("2014-12-04T07:09:23.138Z")) + .lastModificationTime(dateParser.iso8601DateOrSecondsDateParse("2014-12-12T03:14:48.316Z")) .serverIds(ImmutableList.of( "qqqqqqqq-wwww-eeee-rrrr-tttttttttttt" )) http://git-wip-us.apache.org/repos/asf/jclouds/blob/ed247e7d/providers/profitbricks/src/test/java/org/jclouds/profitbricks/http/parser/image/ImageListResponseHandlerTest.java ---------------------------------------------------------------------- diff --git a/providers/profitbricks/src/test/java/org/jclouds/profitbricks/http/parser/image/ImageListResponseHandlerTest.java b/providers/profitbricks/src/test/java/org/jclouds/profitbricks/http/parser/image/ImageListResponseHandlerTest.java index 7d0cb88..e954fb0 100644 --- a/providers/profitbricks/src/test/java/org/jclouds/profitbricks/http/parser/image/ImageListResponseHandlerTest.java +++ b/providers/profitbricks/src/test/java/org/jclouds/profitbricks/http/parser/image/ImageListResponseHandlerTest.java @@ -91,7 +91,7 @@ public class ImageListResponseHandlerTest extends BaseResponseHandlerTest<List<I .name("Debian-jessie-prerelease-server-2015-01-01") .size(2048f) .type(Image.Type.HDD) - .location(Location.US_LAS_DEV) + .location(Location.US_LASDEV) .isNicHotPlug(true) .isNicHotUnPlug(true) .osType(OsType.LINUX) @@ -110,7 +110,7 @@ public class ImageListResponseHandlerTest extends BaseResponseHandlerTest<List<I .name("Fedora-19-server-2015-01-01") .size(2048f) .type(Image.Type.HDD) - .location(Location.US_LAS_DEV) + .location(Location.US_LASDEV) .isNicHotPlug(true) .isNicHotUnPlug(true) .osType(OsType.LINUX) @@ -129,7 +129,7 @@ public class ImageListResponseHandlerTest extends BaseResponseHandlerTest<List<I .name("Ubuntu-12.04-LTS-server-2015-01-01") .size(2048f) .type(Image.Type.HDD) - .location(Location.US_LAS_DEV) + .location(Location.US_LASDEV) .isNicHotPlug(true) .isNicHotUnPlug(true) .osType(OsType.LINUX) http://git-wip-us.apache.org/repos/asf/jclouds/blob/ed247e7d/providers/profitbricks/src/test/java/org/jclouds/profitbricks/http/parser/loadbalancer/LoadBalancerListResponseHandlerTest.java ---------------------------------------------------------------------- diff --git a/providers/profitbricks/src/test/java/org/jclouds/profitbricks/http/parser/loadbalancer/LoadBalancerListResponseHandlerTest.java b/providers/profitbricks/src/test/java/org/jclouds/profitbricks/http/parser/loadbalancer/LoadBalancerListResponseHandlerTest.java index cec0999..eedfa50 100644 --- a/providers/profitbricks/src/test/java/org/jclouds/profitbricks/http/parser/loadbalancer/LoadBalancerListResponseHandlerTest.java +++ b/providers/profitbricks/src/test/java/org/jclouds/profitbricks/http/parser/loadbalancer/LoadBalancerListResponseHandlerTest.java @@ -17,9 +17,9 @@ package org.jclouds.profitbricks.http.parser.loadbalancer; import com.google.common.collect.ImmutableList; + import java.util.List; -import org.jclouds.date.DateCodec; -import org.jclouds.date.DateCodecFactory; + import org.jclouds.http.functions.ParseSax; import org.jclouds.profitbricks.domain.Firewall; import org.jclouds.profitbricks.domain.LoadBalancer; @@ -27,8 +27,12 @@ import org.jclouds.profitbricks.domain.LoadBalancer.Algorithm; import org.jclouds.profitbricks.domain.ProvisioningState; import org.jclouds.profitbricks.domain.Server; import org.jclouds.profitbricks.http.parser.BaseResponseHandlerTest; + import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; + +import org.jclouds.date.DateService; +import org.jclouds.profitbricks.domain.DataCenter; import org.testng.annotations.Test; @Test(groups = "unit", testName = "LoadBalancerListResponseHandlerTest") @@ -39,8 +43,8 @@ public class LoadBalancerListResponseHandlerTest extends BaseResponseHandlerTest return factory.create(injector.getInstance(LoadBalancerListResponseHandler.class)); } - protected DateCodecFactory createDateParser() { - return injector.getInstance(DateCodecFactory.class); + protected DateService createDateParser() { + return injector.getInstance(DateService.class); } @Test @@ -50,23 +54,68 @@ public class LoadBalancerListResponseHandlerTest extends BaseResponseHandlerTest List<LoadBalancer> actual = parser.parse(payloadFromResource("/loadbalancer/loadbalancers.xml")); assertNotNull(actual, "Parsed content returned null"); - DateCodec dateParser = createDateParser().iso8601(); + DateService dateParser = createDateParser(); - List<LoadBalancer> expected = ImmutableList.<LoadBalancer>of(LoadBalancer.builder().id("aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee").loadBalancerAlgorithm(Algorithm.ROUND_ROBIN).name("load-1234567890-name") - .dataCenterId("datacenter-id").dataCenterVersion("datacenter-version").internetAccess(true).ip("192.168.0.1").lanId("lan-id").state(ProvisioningState.AVAILABLE).creationTime(dateParser.toDate("2014-12-04T07:09:23.138Z")).lastModificationTime(dateParser.toDate("2014-12-04T07:09:23.138Z")) + List<LoadBalancer> expected = ImmutableList.<LoadBalancer>of( + LoadBalancer.builder() + .id("aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee") + .algorithm(Algorithm.ROUND_ROBIN) + .name("load-1234567890-name") + .dataCenter(DataCenter.builder() + .id("datacenter-id") + .version(4) + .build()) + .internetAccess(true) + .ip("192.168.0.1") + .lanId("lan-id") + .state(ProvisioningState.AVAILABLE) + .creationTime(dateParser.iso8601DateOrSecondsDateParse("2014-12-04T07:09:23.138Z")) + .lastModificationTime(dateParser.iso8601DateOrSecondsDateParse("2014-12-04T07:09:23.138Z")) .firewalls(ImmutableList.<Firewall>of( - Firewall.builder().id("firewall-id").nicId("nic-id").active(false).state(ProvisioningState.AVAILABLE).build() + Firewall.builder() + .id("firewall-id") + .nicId("nic-id") + .active(false) + .state(ProvisioningState.AVAILABLE) + .build() )) .balancedServers(ImmutableList.<Server>of( - Server.builder().activate(true).balancedNicId("balanced-nic-id").id("server-id").name("server-name").build() + Server.builder() + .loadBalanced(true) + .balancedNicId("balanced-nic-id") + .id("server-id") + .name("server-name") + .build() )).build(), - LoadBalancer.builder().id("qqqqqqqq-wwww-rrrr-tttt-yyyyyyyyyyyy").loadBalancerAlgorithm(Algorithm.ROUND_ROBIN).name("load-balancer-name") - .dataCenterId("datacenter-id").dataCenterVersion("datacenter-version").internetAccess(false).ip("192.168.0.1").lanId("lan-id").state(ProvisioningState.AVAILABLE).creationTime(dateParser.toDate("2014-12-04T07:09:23.138Z")).lastModificationTime(dateParser.toDate("2014-12-04T07:09:23.138Z")) + LoadBalancer.builder() + .id("qqqqqqqq-wwww-rrrr-tttt-yyyyyyyyyyyy") + .algorithm(Algorithm.ROUND_ROBIN) + .name("load-balancer-name") + .dataCenter(DataCenter.builder() + .id("datacenter-id") + .version(4) + .build()) + .internetAccess(false) + .ip("192.168.0.1") + .lanId("lan-id") + .state(ProvisioningState.AVAILABLE) + .creationTime(dateParser.iso8601DateOrSecondsDateParse("2014-12-04T07:09:23.138Z")) + .lastModificationTime(dateParser.iso8601DateOrSecondsDateParse("2014-12-04T07:09:23.138Z")) .firewalls(ImmutableList.<Firewall>of( - Firewall.builder().id("firewall-id").nicId("nic-id").active(false).state(ProvisioningState.AVAILABLE).build() + Firewall.builder() + .id("firewall-id") + .nicId("nic-id") + .active(false) + .state(ProvisioningState.AVAILABLE) + .build() )) .balancedServers(ImmutableList.<Server>of( - Server.builder().activate(false).balancedNicId("balanced-nic-id").id("server-id").name("server-name").build() + Server.builder() + .loadBalanced(false) + .balancedNicId("balanced-nic-id") + .id("server-id") + .name("server-name") + .build() )) .build() );
