http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualMachineApiMockTest.java
----------------------------------------------------------------------
diff --git 
a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualMachineApiMockTest.java
 
b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualMachineApiMockTest.java
deleted file mode 100644
index 372b303..0000000
--- 
a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualMachineApiMockTest.java
+++ /dev/null
@@ -1,409 +0,0 @@
-/*
- * 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.azurecompute.arm.features;
-
-import java.net.URI;
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import org.jclouds.azurecompute.arm.domain.DataDisk;
-import org.jclouds.azurecompute.arm.domain.DiagnosticsProfile;
-import org.jclouds.azurecompute.arm.domain.HardwareProfile;
-import org.jclouds.azurecompute.arm.domain.IdReference;
-import org.jclouds.azurecompute.arm.domain.ImageReference;
-import org.jclouds.azurecompute.arm.domain.ManagedDiskParameters;
-import org.jclouds.azurecompute.arm.domain.NetworkProfile;
-import org.jclouds.azurecompute.arm.domain.NetworkProfile.NetworkInterface;
-import org.jclouds.azurecompute.arm.domain.OSDisk;
-import org.jclouds.azurecompute.arm.domain.OSProfile;
-import org.jclouds.azurecompute.arm.domain.OSProfile.LinuxConfiguration;
-import 
org.jclouds.azurecompute.arm.domain.OSProfile.WindowsConfiguration.AdditionalUnattendContent;
-import 
org.jclouds.azurecompute.arm.domain.OSProfile.WindowsConfiguration.WinRM.Protocol;
-import org.jclouds.azurecompute.arm.domain.Plan;
-import org.jclouds.azurecompute.arm.domain.Secrets;
-import org.jclouds.azurecompute.arm.domain.Secrets.SourceVault;
-import org.jclouds.azurecompute.arm.domain.Status;
-import org.jclouds.azurecompute.arm.domain.StorageProfile;
-import org.jclouds.azurecompute.arm.domain.VHD;
-import org.jclouds.azurecompute.arm.domain.VaultCertificate;
-import org.jclouds.azurecompute.arm.domain.VirtualMachine;
-import org.jclouds.azurecompute.arm.domain.VirtualMachineInstance;
-import org.jclouds.azurecompute.arm.domain.VirtualMachineProperties;
-import org.jclouds.azurecompute.arm.internal.BaseAzureComputeApiMockTest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-import com.squareup.okhttp.mockwebserver.MockResponse;
-
-import static com.google.common.collect.Iterables.isEmpty;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertNull;
-import static org.testng.Assert.assertTrue;
-
-@Test(groups = "unit", testName = "VirtualMachineApiMockTest", singleThreaded 
= true)
-public class VirtualMachineApiMockTest extends BaseAzureComputeApiMockTest {
-
-   public void testGet() throws Exception {
-      server.enqueue(jsonResponse("/virtualmachine.json"));
-      final VirtualMachineApi vmAPI = api.getVirtualMachineApi("groupname");
-      assertEquals(vmAPI.get("windowsmachine"),
-            getVM(Plan.create("thinkboxsoftware", "deadline-slave-7-2", 
"deadline7-2")));
-      assertSent(server, "GET", 
"/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Compute"
-            + 
"/virtualMachines/windowsmachine?api-version=2016-04-30-preview");
-   }
-
-   public void testGetEmpty() throws Exception {
-      server.enqueue(new MockResponse().setResponseCode(404));
-      final VirtualMachineApi vmAPI = api.getVirtualMachineApi("groupname");
-      assertNull(vmAPI.get("windowsmachine"));
-      assertSent(server, "GET", 
"/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Compute"
-            + 
"/virtualMachines/windowsmachine?api-version=2016-04-30-preview");
-   }
-
-   public void testGetInstanceDetails() throws Exception {
-      server.enqueue(jsonResponse("/virtualmachineInstance.json"));
-      final VirtualMachineApi vmAPI = api.getVirtualMachineApi("groupname");
-      VirtualMachineInstance actual = 
vmAPI.getInstanceDetails("windowsmachine");
-      VirtualMachineInstance expected = getVMInstance();
-
-      assertEquals(actual.statuses().get(0).code(), 
expected.statuses().get(0).code());
-      assertEquals(actual.statuses().get(0).displayStatus(), 
expected.statuses().get(0).displayStatus());
-      assertEquals(actual.statuses().get(0).level(), 
expected.statuses().get(0).level());
-      // assertEquals(actual.statuses().get(0).time().toString(),
-      // expected.statuses().get(0).time().toString());
-      assertSent(server, "GET", 
"/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Compute"
-            + 
"/virtualMachines/windowsmachine/instanceView?api-version=2016-04-30-preview");
-   }
-
-   public void testGetInstanceDetailsEmpty() throws Exception {
-      server.enqueue(new MockResponse().setResponseCode(404));
-      final VirtualMachineApi vmAPI = api.getVirtualMachineApi("groupname");
-      assertNull(vmAPI.getInstanceDetails("windowsmachine"));
-      assertSent(server, "GET", 
"/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Compute"
-            + 
"/virtualMachines/windowsmachine/instanceView?api-version=2016-04-30-preview");
-   }
-
-   public void testList() throws Exception {
-      server.enqueue(jsonResponse("/virtualmachines.json"));
-      final VirtualMachineApi vmAPI = api.getVirtualMachineApi("groupname");
-      assertEquals(vmAPI.list(), getVMList());
-      assertSent(server, "GET", 
"/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Compute"
-            + "/virtualMachines?api-version=2016-04-30-preview");
-   }
-
-   public void testListEmpty() throws Exception {
-      server.enqueue(new MockResponse().setResponseCode(404));
-      final VirtualMachineApi vmAPI = api.getVirtualMachineApi("groupname");
-      assertTrue(isEmpty(vmAPI.list()));
-      assertSent(server, "GET", 
"/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Compute"
-            + "/virtualMachines?api-version=2016-04-30-preview");
-   }
-
-   public void testCreateWithPlan() throws Exception {
-      server.enqueue(jsonResponse("/createvirtualmachineresponse.json"));
-      Plan plan = Plan.create("thinkboxsoftware", "deadline-slave-7-2", 
"deadline7-2");
-      final VirtualMachineApi vmAPI = api.getVirtualMachineApi("groupname");
-      VirtualMachine vm = vmAPI
-            .createOrUpdate("windowsmachine", "westus", 
getVMWithManagedDisksProperties(), ImmutableMap.of("foo", "bar"), plan);
-      assertEquals(vm, getVM(plan));
-      assertSent(
-            server,
-            "PUT",
-            
"/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Compute"
-                  + 
"/virtualMachines/windowsmachine?validating=false&api-version=2016-04-30-preview",
-            "{\"location\":\"westus\",\"properties\":"
-                  + 
"{\"vmId\":\"27ee085b-d707-xxxx-yyyy-2370e2eb1cc1\",\"licenseType\":\"Windows_Server\","
-                  + 
"\"availabilitySet\":{\"id\":\"/subscriptions/SUBSCRIPTIONID/resourceGroups/myResourceGroup/providers/Microsoft.Compute/availabilitySets/myAVSet\"},"
-                  + "\"hardwareProfile\":{\"vmSize\":\"Standard_D1\"},"
-                  + 
"\"storageProfile\":{\"imageReference\":{\"id\":\"/subscriptions/SUBSCRIPTIONID/providers/Microsoft.Compute/locations/westus/publishers/MicrosoftWindowsServerEssentials/artifactype/vmimage/offers/OFFER/skus/OFFER/versions/latest\","
-                  + 
"\"publisher\":\"publisher\",\"offer\":\"OFFER\",\"sku\":\"sku\",\"version\":\"ver\"},"
-                  + 
"\"osDisk\":{\"osType\":\"Windows\",\"name\":\"windowsmachine\","
-                  + "\"caching\":\"ReadWrite\",\"createOption\":\"FromImage\","
-                  + 
"\"managedDisk\":{\"id\":\"/subscriptions/SUBSCRIPTIONID/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/osDisk\",\"storageAccountType\":\"Standard_LRS\"}},"
-                  + 
"\"dataDisks\":[{\"name\":\"mydatadisk1\",\"diskSizeGB\":\"1\",\"lun\":0,\"createOption\":\"Empty\",\"caching\":\"ReadWrite\",\"managedDisk\":{\"id\":\"/subscriptions/SUBSCRIPTIONID/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/osDisk\",\"storageAccountType\":\"Standard_LRS\"}}]},"
-                  + 
"\"osProfile\":{\"computerName\":\"windowsmachine\",\"adminUsername\":\"azureuser\",\"adminPassword\":\"password\",\"customData\":\"\",\"windowsConfiguration\":{\"provisionVMAgent\":false,"
-                  + 
"\"winRM\":{\"listeners\":[{\"protocol\":\"https\",\"certificateUrl\":\"url-to-certificate\"}]},\"additionalUnattendContent\":[{\"passName\":\"oobesystem\",\"componentName\":\"Microsoft-Windows-Shell-Setup\",\"settingName\":\"FirstLogonCommands\",\"content\":\"<XML
 unattend content>\"}],"
-                  + "\"enableAutomaticUpdates\":true},"
-                  + 
"\"secrets\":[{\"sourceVault\":{\"id\":\"/subscriptions/SUBSCRIPTIONID/resourceGroups/myresourcegroup1/providers/Microsoft.KeyVault/vaults/myvault1\"},\"vaultCertificates\":[{\"certificateUrl\":\"https://myvault1.vault.azure.net/secrets/SECRETNAME/SECRETVERSION\",\"certificateStore\":\"CERTIFICATESTORENAME\"}]}]},";
-                  + 
"\"networkProfile\":{\"networkInterfaces\":[{\"id\":\"/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Network/networkInterfaces/windowsmachine167\"}]},"
-                  + 
"\"diagnosticsProfile\":{\"bootDiagnostics\":{\"enabled\":true,\"storageUri\":\"https://groupname2760.blob.core.windows.net/\"}},\"provisioningState\":\"CREATING\"},";
-                  + "\"tags\":{\"foo\":\"bar\"},"
-                  + 
"\"plan\":{\"name\":\"deadline-slave-7-2\",\"publisher\":\"thinkboxsoftware\",\"product\":\"deadline7-2\"}}");
-   }
-
-   // See 
https://docs.microsoft.com/en-us/rest/api/compute/virtualmachines/virtualmachines-create-or-update
-   // for where part of the example json response comes from. Unfortunately 
examples in the microsoft docs
-   // are not valid json (e.g. missing commas, illegal quotes). Therefore this 
example merges the original 
-   // real-world example (presumably taken from the jclouds wire log), and 
snippets from the microsoft docs.
-   public void testCreate() throws Exception {
-      server.enqueue(jsonResponse("/createvirtualmachineresponse.json"));
-
-      final VirtualMachineApi vmAPI = api.getVirtualMachineApi("groupname");
-      VirtualMachine vm = vmAPI.createOrUpdate("windowsmachine", "westus", 
getVMWithManagedDisksProperties(), ImmutableMap.of("foo", "bar"), null);
-      assertEquals(vm, getVM());
-      assertSent(
-            server,
-            "PUT",
-            
"/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Compute"
-                  + 
"/virtualMachines/windowsmachine?validating=false&api-version=2016-04-30-preview",
-            "{\"location\":\"westus\",\"properties\":"
-                  + 
"{\"vmId\":\"27ee085b-d707-xxxx-yyyy-2370e2eb1cc1\",\"licenseType\":\"Windows_Server\","
-                  + 
"\"availabilitySet\":{\"id\":\"/subscriptions/SUBSCRIPTIONID/resourceGroups/myResourceGroup/providers/Microsoft.Compute/availabilitySets/myAVSet\"},"
-                  + "\"hardwareProfile\":{\"vmSize\":\"Standard_D1\"},"
-                  + 
"\"storageProfile\":{\"imageReference\":{\"id\":\"/subscriptions/SUBSCRIPTIONID/providers/Microsoft.Compute/locations/westus/publishers/MicrosoftWindowsServerEssentials/artifactype/vmimage/offers/OFFER/skus/OFFER/versions/latest\","
-                  + 
"\"publisher\":\"publisher\",\"offer\":\"OFFER\",\"sku\":\"sku\",\"version\":\"ver\"},"
-                  + 
"\"osDisk\":{\"osType\":\"Windows\",\"name\":\"windowsmachine\","
-                  + "\"caching\":\"ReadWrite\",\"createOption\":\"FromImage\","
-                  + 
"\"managedDisk\":{\"id\":\"/subscriptions/SUBSCRIPTIONID/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/osDisk\",\"storageAccountType\":\"Standard_LRS\"}},"
-                  + 
"\"dataDisks\":[{\"name\":\"mydatadisk1\",\"diskSizeGB\":\"1\",\"lun\":0,\"createOption\":\"Empty\",\"caching\":\"ReadWrite\",\"managedDisk\":{\"id\":\"/subscriptions/SUBSCRIPTIONID/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/osDisk\",\"storageAccountType\":\"Standard_LRS\"}}]},"
-                  + 
"\"osProfile\":{\"computerName\":\"windowsmachine\",\"adminUsername\":\"azureuser\",\"adminPassword\":\"password\",\"customData\":\"\",\"windowsConfiguration\":{\"provisionVMAgent\":false,"
-                  + 
"\"winRM\":{\"listeners\":[{\"protocol\":\"https\",\"certificateUrl\":\"url-to-certificate\"}]},\"additionalUnattendContent\":[{\"passName\":\"oobesystem\",\"componentName\":\"Microsoft-Windows-Shell-Setup\",\"settingName\":\"FirstLogonCommands\",\"content\":\"<XML
 unattend content>\"}],"
-                  + "\"enableAutomaticUpdates\":true},"
-                  + 
"\"secrets\":[{\"sourceVault\":{\"id\":\"/subscriptions/SUBSCRIPTIONID/resourceGroups/myresourcegroup1/providers/Microsoft.KeyVault/vaults/myvault1\"},\"vaultCertificates\":[{\"certificateUrl\":\"https://myvault1.vault.azure.net/secrets/SECRETNAME/SECRETVERSION\",\"certificateStore\":\"CERTIFICATESTORENAME\"}]}]},";
-                  + 
"\"networkProfile\":{\"networkInterfaces\":[{\"id\":\"/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Network/networkInterfaces/windowsmachine167\"}]},"
-                  + 
"\"diagnosticsProfile\":{\"bootDiagnostics\":{\"enabled\":true,\"storageUri\":\"https://groupname2760.blob.core.windows.net/\"}},\"provisioningState\":\"CREATING\"},";
-                  + "\"tags\":{\"foo\":\"bar\"}}");
-   }
-
-   public void testDeleteReturns404() throws Exception {
-      server.enqueue(response404());
-
-      final VirtualMachineApi vmAPI = api.getVirtualMachineApi("groupname");
-
-      URI uri = vmAPI.delete("windowsmachine");
-
-      assertEquals(server.getRequestCount(), 1);
-      assertNull(uri);
-
-      assertSent(server, "DELETE", 
"/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Compute"
-            + 
"/virtualMachines/windowsmachine?api-version=2016-04-30-preview");
-   }
-
-   public void testDelete() throws Exception {
-      server.enqueue(response202WithHeader());
-
-      final VirtualMachineApi vmAPI = api.getVirtualMachineApi("groupname");
-
-      URI uri = vmAPI.delete("windowsmachine");
-
-      assertEquals(server.getRequestCount(), 1);
-      assertNotNull(uri);
-
-      assertSent(server, "DELETE", 
"/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Compute"
-            + 
"/virtualMachines/windowsmachine?api-version=2016-04-30-preview");
-   }
-
-   public void testStart() throws Exception {
-      server.enqueue(new MockResponse().setResponseCode(204));
-
-      final VirtualMachineApi vmAPI = api.getVirtualMachineApi("groupname");
-
-      vmAPI.start("windowsmachine");
-
-      assertSent(server, "POST", 
"/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Compute"
-            + 
"/virtualMachines/windowsmachine/start?api-version=2016-04-30-preview");
-   }
-
-   public void testRestart() throws Exception {
-      server.enqueue(new MockResponse().setResponseCode(204));
-
-      final VirtualMachineApi vmAPI = api.getVirtualMachineApi("groupname");
-
-      vmAPI.restart("windowsmachine");
-
-      assertSent(server, "POST", 
"/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Compute"
-            + 
"/virtualMachines/windowsmachine/restart?api-version=2016-04-30-preview");
-   }
-
-   public void testStop() throws Exception {
-      server.enqueue(new MockResponse().setResponseCode(204));
-
-      final VirtualMachineApi vmAPI = api.getVirtualMachineApi("groupname");
-
-      vmAPI.stop("windowsmachine");
-
-      assertSent(server, "POST", 
"/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Compute"
-            + 
"/virtualMachines/windowsmachine/powerOff?api-version=2016-04-30-preview");
-   }
-
-   public void testGeneralize() throws Exception {
-      server.enqueue(new MockResponse().setResponseCode(200));
-      final VirtualMachineApi vmAPI = api.getVirtualMachineApi("groupname");
-      vmAPI.generalize("vm"); // IllegalStateException if failed
-      assertSent(server, "POST", 
"/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Compute"
-            + "/virtualMachines/vm/generalize?api-version=2016-04-30-preview");
-   }
-
-   public void testCapture() throws Exception {
-      server.enqueue(response202WithHeader());
-
-      final VirtualMachineApi vmAPI = api.getVirtualMachineApi("groupname");
-      URI uri = vmAPI.capture("vm", "prefix", "container");
-      assertNotNull(uri);
-      assertSent(server, "POST", 
"/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Compute"
-            + "/virtualMachines/vm/capture?api-version=2016-04-30-preview",
-            
"{\"vhdPrefix\":\"prefix\",\"destinationContainerName\":\"container\",\"overwriteVhds\":\"true\"}");
-   }
-
-   public void testCapture404() throws Exception {
-      server.enqueue(response404());
-
-      final VirtualMachineApi vmAPI = api.getVirtualMachineApi("groupname");
-      URI uri = vmAPI.capture("vm", "prefix", "container");
-      assertNull(uri);
-      assertSent(server, "POST", 
"/subscriptions/SUBSCRIPTIONID/resourceGroups/groupname/providers/Microsoft.Compute"
-            + "/virtualMachines/vm/capture?api-version=2016-04-30-preview",
-            
"{\"vhdPrefix\":\"prefix\",\"destinationContainerName\":\"container\",\"overwriteVhds\":\"true\"}");
-   }
-
-   private VirtualMachineProperties getVMWithBlobDisksProperties() {
-      String licenseType = "Windows_Server";
-      IdReference availabilitySet = 
IdReference.create("/subscriptions/SUBSCRIPTIONID/resourceGroups/myResourceGroup/providers/Microsoft.Compute/availabilitySets/myAVSet");
-      HardwareProfile hwProf = HardwareProfile.create("Standard_D1");
-      ImageReference imgRef = 
ImageReference.builder().publisher("publisher").offer("OFFER").sku("sku").version("ver")
-            
.customImageId("/subscriptions/SUBSCRIPTIONID/providers/Microsoft.Compute/locations/westus/publishers/MicrosoftWindowsServerEssentials/artifactype/vmimage/offers/OFFER/skus/OFFER/versions/latest")
-            .build();
-      VHD vhd = 
VHD.create("https://groupname2760.blob.core.windows.net/vhds/windowsmachine201624102936.vhd";);
-      List<DataDisk> dataDisks = ImmutableList.of(
-            DataDisk.create("mydatadisk1", "1", 0, 
VHD.create("http://mystorage1.blob.core.windows.net/vhds/mydatadisk1.vhd";),
-                  null, "Empty", null, null, null));
-      ManagedDiskParameters managedDiskParameters = 
ManagedDiskParameters.create("/subscriptions/SUBSCRIPTIONID/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/osDisk",
-            "Standard_LRS");
-      OSDisk osDisk = OSDisk.create("Windows", "windowsmachine", vhd, 
"ReadWrite", "FromImage", null, managedDiskParameters, null);
-      StorageProfile storageProfile = StorageProfile.create(imgRef, osDisk, 
dataDisks);
-      LinuxConfiguration linuxConfig = null;
-      OSProfile.WindowsConfiguration.WinRM winrm = 
OSProfile.WindowsConfiguration.WinRM.create(
-            ImmutableList.of(
-                  
OSProfile.WindowsConfiguration.WinRM.ProtocolListener.create(Protocol.HTTPS, 
"url-to-certificate")));
-      List<AdditionalUnattendContent> additionalUnattendContent = 
ImmutableList.of(
-            AdditionalUnattendContent.create("oobesystem", 
"Microsoft-Windows-Shell-Setup", "FirstLogonCommands", "<XML unattend 
content>"));
-      OSProfile.WindowsConfiguration windowsConfig = 
OSProfile.WindowsConfiguration.create(false, winrm, additionalUnattendContent, 
true);
-      List<Secrets> secrets =  ImmutableList.of(
-            
Secrets.create(SourceVault.create("/subscriptions/SUBSCRIPTIONID/resourceGroups/myresourcegroup1/providers/Microsoft.KeyVault/vaults/myvault1"),
-                  
ImmutableList.of(VaultCertificate.create("https://myvault1.vault.azure.net/secrets/SECRETNAME/SECRETVERSION";,
 "CERTIFICATESTORENAME"))));
-      OSProfile osProfile = OSProfile.create("windowsmachine", "azureuser", 
"password", "", linuxConfig, windowsConfig, secrets);
-      NetworkInterface networkInterface = 
NetworkInterface.create("/subscriptions/SUBSCRIPTIONID"
-            + 
"/resourceGroups/groupname/providers/Microsoft.Network/networkInterfaces/" + 
"windowsmachine167", null);
-      List<NetworkInterface> networkInterfaces = new 
ArrayList<NetworkInterface>();
-      networkInterfaces.add(networkInterface);
-      NetworkProfile networkProfile = NetworkProfile.create(networkInterfaces);
-      DiagnosticsProfile.BootDiagnostics bootDiagnostics = 
DiagnosticsProfile.BootDiagnostics.create(true,
-            "https://groupname2760.blob.core.windows.net/";);
-      DiagnosticsProfile diagnosticsProfile = 
DiagnosticsProfile.create(bootDiagnostics);
-      VirtualMachineProperties properties = 
VirtualMachineProperties.create("27ee085b-d707-xxxx-yyyy-2370e2eb1cc1",
-            licenseType, availabilitySet, hwProf, storageProfile, osProfile, 
networkProfile, diagnosticsProfile,
-            VirtualMachineProperties.ProvisioningState.CREATING);
-      return properties;
-   }
-
-   private VirtualMachineProperties getVMWithManagedDisksProperties() {
-      String licenseType = "Windows_Server";
-      IdReference availabilitySet = 
IdReference.create("/subscriptions/SUBSCRIPTIONID/resourceGroups/myResourceGroup/providers/Microsoft.Compute/availabilitySets/myAVSet");
-      HardwareProfile hwProf = HardwareProfile.create("Standard_D1");
-      ImageReference imgRef = 
ImageReference.builder().publisher("publisher").offer("OFFER").sku("sku").version("ver")
-            
.customImageId("/subscriptions/SUBSCRIPTIONID/providers/Microsoft.Compute/locations/westus/publishers/MicrosoftWindowsServerEssentials/artifactype/vmimage/offers/OFFER/skus/OFFER/versions/latest")
-            .build();
-      ManagedDiskParameters managedDiskParameters = 
ManagedDiskParameters.create("/subscriptions/SUBSCRIPTIONID/resourceGroups/myResourceGroup/providers/Microsoft.Compute/disks/osDisk",
-            "Standard_LRS");
-      List<DataDisk> dataDisks = ImmutableList.of(
-              
DataDisk.builder().name("mydatadisk1").diskSizeGB("1").lun(0).managedDiskParameters(managedDiskParameters).createOption(DataDisk.DiskCreateOptionTypes.EMPTY).caching(DataDisk.CachingTypes.READ_WRITE).build());
-      OSDisk osDisk = 
OSDisk.builder().osType("Windows").name("windowsmachine").caching("ReadWrite").createOption("FromImage").managedDiskParameters(managedDiskParameters).build();
-      StorageProfile storageProfile = StorageProfile.create(imgRef, osDisk, 
dataDisks);
-      LinuxConfiguration linuxConfig = null;
-      OSProfile.WindowsConfiguration.WinRM winrm = 
OSProfile.WindowsConfiguration.WinRM.create(
-            ImmutableList.of(
-                  
OSProfile.WindowsConfiguration.WinRM.ProtocolListener.create(Protocol.HTTPS, 
"url-to-certificate")));
-      List<AdditionalUnattendContent> additionalUnattendContent = 
ImmutableList.of(
-            AdditionalUnattendContent.create("oobesystem", 
"Microsoft-Windows-Shell-Setup", "FirstLogonCommands", "<XML unattend 
content>"));
-      OSProfile.WindowsConfiguration windowsConfig = 
OSProfile.WindowsConfiguration.create(false, winrm, additionalUnattendContent, 
true);
-      List<Secrets> secrets =  ImmutableList.of(
-            
Secrets.create(SourceVault.create("/subscriptions/SUBSCRIPTIONID/resourceGroups/myresourcegroup1/providers/Microsoft.KeyVault/vaults/myvault1"),
 
-                  
ImmutableList.of(VaultCertificate.create("https://myvault1.vault.azure.net/secrets/SECRETNAME/SECRETVERSION";,
 "CERTIFICATESTORENAME"))));
-      OSProfile osProfile = OSProfile.create("windowsmachine", "azureuser", 
"password", "", linuxConfig, windowsConfig, secrets);
-      NetworkInterface networkInterface = 
NetworkInterface.create("/subscriptions/SUBSCRIPTIONID"
-            + 
"/resourceGroups/groupname/providers/Microsoft.Network/networkInterfaces/" + 
"windowsmachine167", null);
-      List<NetworkInterface> networkInterfaces = new 
ArrayList<NetworkInterface>();
-      networkInterfaces.add(networkInterface);
-      NetworkProfile networkProfile = NetworkProfile.create(networkInterfaces);
-      DiagnosticsProfile.BootDiagnostics bootDiagnostics = 
DiagnosticsProfile.BootDiagnostics.create(true,
-            "https://groupname2760.blob.core.windows.net/";);
-      DiagnosticsProfile diagnosticsProfile = 
DiagnosticsProfile.create(bootDiagnostics);
-      VirtualMachineProperties properties = 
VirtualMachineProperties.create("27ee085b-d707-xxxx-yyyy-2370e2eb1cc1",
-            licenseType, availabilitySet, hwProf, storageProfile, osProfile, 
networkProfile, diagnosticsProfile,
-            VirtualMachineProperties.ProvisioningState.CREATING);
-      return properties;
-   }
-
-   private VirtualMachine getVM() {
-      VirtualMachineProperties properties = getVMWithManagedDisksProperties();
-      VirtualMachine machine = 
VirtualMachine.create("/subscriptions/SUBSCRIPTIONID/" + ""
-            + 
"resourceGroups/groupname/providers/Microsoft.Compute/virtualMachines/windowsmachine",
 "windowsmachine",
-            "Microsoft.Compute/virtualMachines", "westus", 
ImmutableMap.of("foo", "bar"), properties,
-            Plan.create("thinkboxsoftware", "deadline-slave-7-2", 
"deadline7-2"));
-      return machine;
-   }
-   
-   private VirtualMachine getVM(Plan plan) {
-      VirtualMachineProperties properties = getVMWithManagedDisksProperties();
-      VirtualMachine machine = 
VirtualMachine.create("/subscriptions/SUBSCRIPTIONID/" + ""
-            + 
"resourceGroups/groupname/providers/Microsoft.Compute/virtualMachines/windowsmachine",
 "windowsmachine",
-            "Microsoft.Compute/virtualMachines", "westus", 
ImmutableMap.of("foo", "bar"), properties, plan);
-      return machine;
-   }
-
-   private VirtualMachineInstance getVMInstance() {
-      List<Status> statuses = new ArrayList<Status>();
-      String testDate = "Wed May 04 01:38:52 PDT 2016";
-      DateFormat formatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss z 
yyyy");
-      Date date = null;
-      try {
-         date = formatter.parse(testDate);
-      } catch (Exception e) {
-         e.printStackTrace();
-      }
-      Status vmStatus = Status.create(
-            "ProvisioningState/succeeded", "Info", "Provisioning succeeded", 
null, date);
-      statuses.add(vmStatus);
-      Status vmStatus1 = Status.create(
-            "PowerState/running", "Info", "VM running", null, null);
-      statuses.add(vmStatus1);
-
-      VirtualMachineInstance machineInstance = VirtualMachineInstance
-            .create(null, null, ImmutableList.copyOf(statuses));
-      return machineInstance;
-   }
-
-   private List<VirtualMachine> getVMList() {
-      List<VirtualMachine> list = new ArrayList<VirtualMachine>();
-      VirtualMachineProperties propertiesWithManagedDisks = 
getVMWithManagedDisksProperties();
-      VirtualMachine machineWithManagedDisks = 
VirtualMachine.create("/subscriptions/SUBSCRIPTIONID/" + ""
-            + 
"resourceGroups/groupname/providers/Microsoft.Compute/virtualMachines/windowsmachine",
 "windowsmachine",
-            "Microsoft.Compute/virtualMachines", "westus", null, 
propertiesWithManagedDisks, null);
-      list.add(machineWithManagedDisks);
-      VirtualMachineProperties propertiesWithBlobDisks = 
getVMWithBlobDisksProperties();
-      VirtualMachine machineWithBlobDisks = 
VirtualMachine.create("/subscriptions/SUBSCRIPTIONID/" + ""
-                      + 
"resourceGroups/groupname/providers/Microsoft.Compute/virtualMachines/windowsmachine",
 "windowsmachine",
-              "Microsoft.Compute/virtualMachines", "westus", null, 
propertiesWithBlobDisks, null);
-      list.add(machineWithBlobDisks);
-      return list;
-   }
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualMachineScaleSetApiLiveTest.java
----------------------------------------------------------------------
diff --git 
a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualMachineScaleSetApiLiveTest.java
 
b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualMachineScaleSetApiLiveTest.java
deleted file mode 100644
index ff93998..0000000
--- 
a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualMachineScaleSetApiLiveTest.java
+++ /dev/null
@@ -1,265 +0,0 @@
-/*
- * 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.azurecompute.arm.features;
-
-import com.google.common.collect.ImmutableMap;
-import org.jclouds.azurecompute.arm.domain.Extension;
-import org.jclouds.azurecompute.arm.domain.ExtensionProfile;
-import org.jclouds.azurecompute.arm.domain.ExtensionProfileSettings;
-import org.jclouds.azurecompute.arm.domain.ExtensionProperties;
-import org.jclouds.azurecompute.arm.domain.IdReference;
-import org.jclouds.azurecompute.arm.domain.ImageReference;
-import org.jclouds.azurecompute.arm.domain.IpConfiguration;
-import org.jclouds.azurecompute.arm.domain.IpConfigurationProperties;
-import org.jclouds.azurecompute.arm.domain.ManagedDiskParameters;
-import org.jclouds.azurecompute.arm.domain.NetworkInterfaceCard;
-import org.jclouds.azurecompute.arm.domain.NetworkInterfaceCardProperties;
-import org.jclouds.azurecompute.arm.domain.NetworkInterfaceConfiguration;
-import 
org.jclouds.azurecompute.arm.domain.NetworkInterfaceConfigurationProperties;
-import org.jclouds.azurecompute.arm.domain.NetworkProfile;
-import org.jclouds.azurecompute.arm.domain.OSDisk;
-import org.jclouds.azurecompute.arm.domain.StorageProfile;
-import org.jclouds.azurecompute.arm.domain.Subnet;
-import org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSet;
-import org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSetDNSSettings;
-import 
org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSetIpConfiguration;
-import 
org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSetIpConfigurationProperties;
-import 
org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSetNetworkProfile;
-import 
org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSetNetworkSecurityGroup;
-import org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSetOSProfile;
-import org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSetProperties;
-import 
org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSetPublicIPAddressConfiguration;
-import 
org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSetPublicIPAddressProperties;
-import org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSetSKU;
-import org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSetUpgradePolicy;
-import 
org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSetVirtualMachineProfile;
-import org.jclouds.azurecompute.arm.internal.BaseAzureComputeApiLiveTest;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.HashMap;
-import java.util.Arrays;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertTrue;
-
-@Test(groups = "live", testName = "VirtualMachineScaleSetApiLiveTest")
-public class VirtualMachineScaleSetApiLiveTest extends 
BaseAzureComputeApiLiveTest {
-
-   private String subscriptionid;
-   private String vmssName;
-   private String virtualNetworkName;
-   private String subnetId;
-   private Subnet subnet;
-
-   @BeforeClass
-   @Override
-   public void setup() {
-      super.setup();
-      subscriptionid = getSubscriptionId();
-
-      createTestResourceGroup();  //BASE: Creates a random resource group 
using the properties location
-
-      virtualNetworkName = String.format("vn-%s-%s", 
this.getClass().getSimpleName().toLowerCase(), System.getProperty("user.name"));
-
-      // Subnets belong to a virtual network so that needs to be created first
-      assertNotNull(createDefaultVirtualNetwork(resourceGroupName, 
virtualNetworkName, "10.2.0.0/16", LOCATION));
-
-      //Subnet needs to be up & running before NIC can be created
-      String subnetName = String.format("s-%s-%s", 
this.getClass().getSimpleName().toLowerCase(), System.getProperty("user.name"));
-      this.subnet = createDefaultSubnet(resourceGroupName, subnetName, 
virtualNetworkName, "10.2.0.0/23");
-      assertNotNull(subnet);
-      assertNotNull(subnet.id());
-      this.subnetId = subnet.id();
-
-
-      vmssName = String.format("%3.24s", System.getProperty("user.name") + 
RAND + this.getClass().getSimpleName()).toLowerCase().substring(0, 15);
-   }
-
-   private VirtualMachineScaleSetApi api() {
-      return api.getVirtualMachineScaleSetApi(resourceGroupName);
-   }
-
-   @Test
-   public void testCreate() {
-      VirtualMachineScaleSet vmss = api().createOrUpdate(vmssName, 
LOCATIONDESCRIPTION, getSKU(),
-         Collections.<String, String>emptyMap(), getProperties());
-      assertTrue(!vmss.name().isEmpty());
-//      waitUntilReady(vmssName);
-   }
-
-   @Test(dependsOnMethods = "testCreate")
-   public void testList() throws InterruptedException {
-      final VirtualMachineScaleSetApi vmssAPI = 
api.getVirtualMachineScaleSetApi(resourceGroupName);
-      assertEquals(vmssAPI.list().size(), 1);
-   }
-
-   @Test(dependsOnMethods = "testList")
-   public void testGet()  {
-      final VirtualMachineScaleSetApi vmssAPI = 
api.getVirtualMachineScaleSetApi(resourceGroupName);
-      assertEquals(vmssAPI.get(vmssName).name(), vmssName);
-   }
-
-   @Test(dependsOnMethods = "testGet", alwaysRun = true)
-   public void testDelete() throws Exception {
-      final VirtualMachineScaleSetApi vmssAPI = 
api.getVirtualMachineScaleSetApi(resourceGroupName);
-      URI uri = vmssAPI.delete(vmssName);
-      assertResourceDeleted(uri);
-   }
-
-   protected void assertResourceDeleted(URI uri) {
-      if (uri != null) {
-         assertTrue(resourceDeleted.apply(uri),
-                 String.format("Resource %s was not terminated in the 
configured timeout", uri));
-      }
-   }
-
-
-   /**
-    * Create a standard SKU
-    *
-    * @return VirtualMachineScaleSetSKU
-    */
-   public VirtualMachineScaleSetSKU getSKU() {
-      return VirtualMachineScaleSetSKU.create("Standard_A1", "Standard", 10);
-   }
-
-   private VirtualMachineScaleSetUpgradePolicy getUpgradePolicy() {
-      return VirtualMachineScaleSetUpgradePolicy.create("Manual");
-   }
-
-   private StorageProfile getLinuxStorageProfile_Default() {
-      return StorageProfile.create(getLinuxImageReference(), getLinuxOSDisk(), 
null);
-   }
-
-   private ManagedDiskParameters getManagedDiskParameters() {
-      return ManagedDiskParameters.create(null, "Standard_LRS");
-   }
-
-   private OSDisk getLinuxOSDisk() {
-      return OSDisk.create("Linux", null, null, null, "FromImage",
-         null, getManagedDiskParameters(), null);
-   }
-
-   private ImageReference getLinuxImageReference() {
-      return ImageReference.create(null, "Canonical", "UbuntuServer",
-         "16.04-LTS", "latest");
-   }
-
-   private VirtualMachineScaleSetOSProfile getOSProfile() {
-      VirtualMachineScaleSetOSProfile.LinuxConfiguration linuxConfiguration =
-         VirtualMachineScaleSetOSProfile.LinuxConfiguration.create(false, 
null);
-      VirtualMachineScaleSetOSProfile.WindowsConfiguration 
windowsConfiguration = null;
-
-      return VirtualMachineScaleSetOSProfile.create(vmssName, "jclouds", 
"jClouds1!",
-         linuxConfiguration, windowsConfiguration, null);
-   }
-
-
-   private VirtualMachineScaleSetNetworkProfile getNetworkProfile() {
-      List<NetworkProfile.NetworkInterface> networkInterfacesList = new 
ArrayList<NetworkProfile.NetworkInterface>();
-
-      NetworkInterfaceCard nic = createNetworkInterfaceCard(resourceGroupName, 
"jc-nic-" + RAND, LOCATION, "ipConfig-" + RAND);
-      assertNotNull(nic);
-      
networkInterfacesList.add(NetworkProfile.NetworkInterface.create(nic.id(), 
NetworkProfile.NetworkInterface.NetworkInterfaceProperties.create(true)));
-
-      List<NetworkInterfaceConfiguration> networkInterfaceConfigurations = new 
ArrayList<NetworkInterfaceConfiguration>();
-      List<VirtualMachineScaleSetIpConfiguration> 
virtualMachineScaleSetIpConfigurations = new 
ArrayList<VirtualMachineScaleSetIpConfiguration>();
-
-
-      VirtualMachineScaleSetPublicIPAddressConfiguration 
publicIPAddressConfiguration =
-         VirtualMachineScaleSetPublicIPAddressConfiguration.create("pub1", 
VirtualMachineScaleSetPublicIPAddressProperties.create(15));
-
-
-      VirtualMachineScaleSetIpConfigurationProperties 
virtualMachineScaleSetIpConfigurationProperties =
-         
VirtualMachineScaleSetIpConfigurationProperties.create(publicIPAddressConfiguration,
-            this.subnet, "IPv4", null,
-            null, null);
-
-      VirtualMachineScaleSetIpConfiguration 
virtualMachineScaleSetIpConfiguration =
-         VirtualMachineScaleSetIpConfiguration.create("ipconfig1", 
virtualMachineScaleSetIpConfigurationProperties);
-
-      
virtualMachineScaleSetIpConfigurations.add(virtualMachineScaleSetIpConfiguration);
-
-      VirtualMachineScaleSetNetworkSecurityGroup networkSecurityGroup = null;
-
-      ArrayList<String> dnsList = new ArrayList<String>();
-      dnsList.add("8.8.8.8");
-      VirtualMachineScaleSetDNSSettings dnsSettings =  
VirtualMachineScaleSetDNSSettings.create(dnsList);
-
-      NetworkInterfaceConfigurationProperties 
networkInterfaceConfigurationProperties =
-         NetworkInterfaceConfigurationProperties.create(true, false, 
networkSecurityGroup, dnsSettings, virtualMachineScaleSetIpConfigurations);
-      NetworkInterfaceConfiguration networkInterfaceConfiguration = 
NetworkInterfaceConfiguration.create("nicconfig1", 
networkInterfaceConfigurationProperties);
-      networkInterfaceConfigurations.add(networkInterfaceConfiguration);
-
-      return 
VirtualMachineScaleSetNetworkProfile.create(networkInterfaceConfigurations);
-   }
-
-
-   private ExtensionProfile getExtensionProfile() {
-      List<Extension> extensions = new ArrayList<Extension>();
-
-      List<String> uris = new ArrayList<String>();
-      
uris.add("https://mystorage1.blob.core.windows.net/winvmextekfacnt/SampleCmd_1.cmd";);
-      ExtensionProfileSettings extensionProfileSettings = 
ExtensionProfileSettings.create(uris, "SampleCmd_1.cmd");
-
-      Map<String, String> protectedSettings = new HashMap<String, String>();
-      protectedSettings.put("StorageAccountKey", "jclouds-accountkey");
-
-      ExtensionProperties extensionProperties = 
ExtensionProperties.create("Microsoft.compute", "CustomScriptExtension",
-         "1.1", false, extensionProfileSettings,
-         protectedSettings);
-
-      Extension extension = Extension.create("extensionName", 
extensionProperties);
-      extensions.add(extension);
-
-      return ExtensionProfile.create(extensions);
-   }
-
-
-   private VirtualMachineScaleSetVirtualMachineProfile 
getVirtualMachineProfile() {
-      return 
VirtualMachineScaleSetVirtualMachineProfile.create(getLinuxStorageProfile_Default(),
 getOSProfile(), getNetworkProfile(), getExtensionProfile());
-   }
-
-   public VirtualMachineScaleSetProperties getProperties() {
-
-      return VirtualMachineScaleSetProperties.create(null, null, 
getUpgradePolicy(), null, getVirtualMachineProfile());
-   }
-
-   private NetworkInterfaceCard createNetworkInterfaceCard(final String 
resourceGroupName, String networkInterfaceCardName, String locationName, String 
ipConfigurationName) {
-      //Create properties object
-      final NetworkInterfaceCardProperties networkInterfaceCardProperties = 
NetworkInterfaceCardProperties
-         .builder()
-         .ipConfigurations(
-            Arrays.asList(IpConfiguration.create(ipConfigurationName, null, 
null, null, IpConfigurationProperties
-               .create(null, null, "Dynamic", IdReference.create(subnetId), 
null, null, null)))).build();
-
-      final Map<String, String> tags = ImmutableMap.of("jclouds", "livetest");
-      return 
api.getNetworkInterfaceCardApi(resourceGroupName).createOrUpdate(networkInterfaceCardName,
 locationName, networkInterfaceCardProperties, tags);
-   }
-
-   public String getSubscriptionid() {
-      return subscriptionid;
-   }
-
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualMachineScaleSetApiMockTest.java
----------------------------------------------------------------------
diff --git 
a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualMachineScaleSetApiMockTest.java
 
b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualMachineScaleSetApiMockTest.java
deleted file mode 100644
index e0420fa..0000000
--- 
a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualMachineScaleSetApiMockTest.java
+++ /dev/null
@@ -1,453 +0,0 @@
-/*
- * 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.azurecompute.arm.features;
-
-import com.google.common.collect.ImmutableMap;
-import org.jclouds.azurecompute.arm.domain.DataDisk;
-import org.jclouds.azurecompute.arm.domain.Extension;
-import org.jclouds.azurecompute.arm.domain.ExtensionProfile;
-import org.jclouds.azurecompute.arm.domain.ExtensionProfileSettings;
-import org.jclouds.azurecompute.arm.domain.ExtensionProperties;
-import org.jclouds.azurecompute.arm.domain.IdReference;
-import org.jclouds.azurecompute.arm.domain.ImageReference;
-import org.jclouds.azurecompute.arm.domain.ManagedDiskParameters;
-import org.jclouds.azurecompute.arm.domain.NetworkInterfaceCard;
-import org.jclouds.azurecompute.arm.domain.NetworkInterfaceCardProperties;
-import org.jclouds.azurecompute.arm.domain.NetworkInterfaceConfiguration;
-import 
org.jclouds.azurecompute.arm.domain.NetworkInterfaceConfigurationProperties;
-import org.jclouds.azurecompute.arm.domain.NetworkProfile;
-import org.jclouds.azurecompute.arm.domain.OSDisk;
-import org.jclouds.azurecompute.arm.domain.Secrets;
-import org.jclouds.azurecompute.arm.domain.StorageProfile;
-import org.jclouds.azurecompute.arm.domain.Subnet;
-import org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSet;
-import org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSetDNSSettings;
-import 
org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSetIpConfiguration;
-import 
org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSetIpConfigurationProperties;
-import 
org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSetNetworkProfile;
-import org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSetOSProfile;
-import org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSetProperties;
-import 
org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSetPublicIPAddressConfiguration;
-import 
org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSetPublicIPAddressProperties;
-import org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSetSKU;
-import org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSetUpgradePolicy;
-import 
org.jclouds.azurecompute.arm.domain.VirtualMachineScaleSetVirtualMachineProfile;
-import org.jclouds.azurecompute.arm.internal.BaseAzureComputeApiMockTest;
-import org.testng.annotations.Test;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import static com.google.common.collect.Iterables.isEmpty;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertNull;
-import static org.testng.Assert.assertTrue;
-
-
-@Test(groups = "unit", testName = "VirtualMachineScaleSetAPIMockTest", 
singleThreaded = true)
-public class VirtualMachineScaleSetApiMockTest extends 
BaseAzureComputeApiMockTest {
-
-   private final String resourcegroup = "myresourcegroup";
-   private final String vmssname = "jclouds-vmssname";
-
-   public void testGet() throws InterruptedException {
-      
server.enqueue(jsonResponse("/virtualmachinescalesetget.json").setResponseCode(200));
-      final VirtualMachineScaleSetApi vmssAPI = 
api.getVirtualMachineScaleSetApi(resourcegroup);
-      assertEquals(vmssAPI.get(vmssname).name(), vmssname);
-      assertSent(server,
-              "GET", 
"/subscriptions/SUBSCRIPTIONID/resourceGroups/myresourcegroup/" +
-                      "providers/Microsoft.Compute"
-            + 
"/VirtualMachineScaleSets/jclouds-vmssname?api-version=2017-03-30");
-   }
-
-   public void testGetWhen404() throws InterruptedException {
-      
server.enqueue(jsonResponse("/virtualmachinescalesetgetwhen404.json").setResponseCode(404));
-      final VirtualMachineScaleSetApi vmssAPI = 
api.getVirtualMachineScaleSetApi(resourcegroup);
-      VirtualMachineScaleSet vmss = vmssAPI.get(vmssname + 1);
-      assertSent(server,
-              "GET",
-              
"/subscriptions/SUBSCRIPTIONID/resourceGroups/myresourcegroup/providers/" +
-                      "Microsoft.Compute/VirtualMachineScaleSets/" +
-                      vmssname + "1?api-version=2017-03-30");
-      assertNull(vmss);
-   }
-
-   public void testCreateOrUpdate() throws InterruptedException {
-      server.enqueue(
-              jsonResponse(
-                      
"/virtualmachinescalesetresponsecreateorupdate.json").setResponseCode(200));
-      final VirtualMachineScaleSetApi vmssAPI = 
api.getVirtualMachineScaleSetApi(resourcegroup);
-      VirtualMachineScaleSet vmss = CreateOrUpdateVMSS(vmssAPI);
-
-      assertNotNull(vmss);
-      assertSent(server,
-              "PUT",
-              
"/subscriptions/SUBSCRIPTIONID/resourceGroups/myresourcegroup/providers/" +
-                      "Microsoft.Compute"
-                      + "/VirtualMachineScaleSets/" + vmssname + 
"?api-version=2017-03-30",
-              "{\n" +
-                      "  \"location\": \"eastus\",\n" +
-                      "  \"sku\": {\n" +
-                      "    \"name\": \"Standard_A1\",\n" +
-                      "    \"tier\": \"Standard\",\n" +
-                      "    \"capacity\": 10\n" +
-                      "  },\n" +
-                      "  \"properties\": {\n" +
-                      "    \"singlePlacementGroup\": true,\n" +
-                      "    \"overProvision\": true,\n" +
-                      "    \"upgradePolicy\": {\n" +
-                      "      \"mode\": \"Manual\"\n" +
-                      "    },\n" +
-                      "    \"virtualMachineProfile\": {\n" +
-                      "      \"storageProfile\": {\n" +
-                      "        \"imageReference\": {\n" +
-                      "          \"publisher\": \"Canonical\",\n" +
-                      "          \"offer\": \"UbuntuServer\",\n" +
-                      "          \"sku\": \"16.04-LTS\",\n" +
-                      "          \"version\": \"latest\"\n" +
-                      "        },\n" +
-                      "        \"osDisk\": {\n" +
-                      "          \"osType\": \"Windows\",\n" +
-                      "          \"createOption\": \"FromImage\",\n" +
-                      "          \"managedDisk\": {\n" +
-                      "            \"storageAccountType\": \"Standard_LRS\"\n" 
+
-                      "          }\n" +
-                      "        },\n" +
-                      "        \"dataDisks\": [{\n" +
-                      "          \"diskSizeGB\": \"10\",\n" +
-                      "          \"lun\": 1,\n" +
-                      "          \"createOption\": \"Unrecognized\",\n" +
-                      "          \"caching\": \"None\",\n" +
-                      "          \"managedDisk\": {\n" +
-                      "            \"storageAccountType\": \"Standard_LRS\"\n" 
+
-                      "          }\n" +
-                      "        }\n" +
-                      "        ]\n" +
-                      "      },\n" +
-                      "      \"osProfile\": {\n" +
-                      "        \"computerNamePrefix\": 
\"jclouds-vmssname\",\n" +
-                      "        \"adminUsername\": \"admin\",\n" +
-                      "        \"adminPassword\": \"password\",\n" +
-                      "        \"linuxConfiguration\": {\n" +
-                      "          \"disablePasswordAuthentication\": false\n" +
-                      "        },\n" +
-                      "        \"secrets\": []\n" +
-                      "      },\n" +
-                      "      \"networkProfile\": {\n" +
-                      "        \"networkInterfaceConfigurations\": [{\n" +
-                      "          \"name\": \"nicconfig1\",\n" +
-                      "          \"properties\": {\n" +
-                      "            \"primary\": true,\n" +
-                      "            \"enableAcceleratedNetworking\": false,\n" +
-                      "            \"dnsSettings\": {\n" +
-                      "              \"dnsServers\": [\"8.8.8.8\"]\n" +
-                      "            },\n" +
-                      "            \"ipConfigurations\": [{\n" +
-                      "              \"name\": \"ipconfig1\",\n" +
-                      "              \"properties\": {\n" +
-                      "                \"publicIPAddressConfiguration\": {\n" +
-                      "                  \"name\": \"pub1\",\n" +
-                      "                  \"properties\": {\n" +
-                      "                    \"idleTimeoutInMinutes\": 15\n" +
-                      "                  }\n" +
-                      "                },\n" +
-                      "                \"subnet\": {\n" +
-                      "                  \"name\": \"virtualNetworkName\",\n" +
-                      "                  \"id\": 
\"/subscriptions/xxxxx-xxxx-xxxx-xxxx-xxxxxx/resourceGroups/" +
-                      
"jcloud-eastus/providers/Microsoft.Network/virtualNetworks/" +
-                      
"jclouds-eastus-virtualNetworkName/subnets/jclouds-eastus-subnet\",\n" +
-                      "                  \"properties\": {}\n" +
-                      "                },\n" +
-                      "                \"privateIPAddressVersion\": 
\"IPv4\",\n" +
-                      "                \"loadBalancerBackendAddressPools\": 
[],\n" +
-                      "                \"loadBalancerInboundNatPools\": []\n" +
-                      "              }\n" +
-                      "            }\n" +
-                      "            ]\n" +
-                      "          }\n" +
-                      "        }\n" +
-                      "        ]\n" +
-                      "      },\n" +
-                      "      \"extensionProfile\": {\n" +
-                      "        \"extensions\": [{\n" +
-                      "          \"name\": \"extensionName\",\n" +
-                      "          \"properties\": {\n" +
-                      "            \"publisher\": \"Microsoft.compute\",\n" +
-                      "            \"type\": \"CustomScriptExtension\",\n" +
-                      "            \"typeHandlerVersion\": \"1.1\",\n" +
-                      "            \"autoUpgradeMinorVersion\": false,\n" +
-                      "            \"settings\": {\n" +
-                      "              \"fileUris\": 
[\"https://mystorage1.blob.core.windows.net/winvmextekfacnt/"; +
-                      "SampleCmd_1.cmd\"],\n" +
-                      "              \"commandToExecute\": 
\"SampleCmd_1.cmd\"\n" +
-                      "            },\n" +
-                      "            \"protectedSettings\": {\n" +
-                      "              \"StorageAccountKey\": 
\"jclouds-accountkey\"\n" +
-                      "            }\n" +
-                      "          }\n" +
-                      "        }\n" +
-                      "        ]\n" +
-                      "      }\n" +
-                      "    }\n" +
-                      "  }\n" +
-                      "}\n"
-              );
-   }
-
-   private VirtualMachineScaleSet CreateOrUpdateVMSS(VirtualMachineScaleSetApi 
vmssAPI) {
-      return vmssAPI.createOrUpdate(
-              vmssname,
-              "eastus",
-              VirtualMachineScaleSetSKU.create(
-                      "Standard_A1",
-                      "Standard",
-                      10),
-              null,
-              VirtualMachineScaleSetProperties.create(
-                      true,
-                      true,
-                      VirtualMachineScaleSetUpgradePolicy.create("Manual"),
-                      null,
-                      VirtualMachineScaleSetVirtualMachineProfile.create(
-                              StorageProfile.create(
-                                      ImageReference.create(
-                                              null,
-                                              "Canonical",
-                                              "UbuntuServer",
-                                              "16.04-LTS",
-                                              "latest"),
-                                      OSDisk.create(
-                                              "Windows",
-                                              null,
-                                              null,
-                                              null,
-                                              "FromImage",
-                                              null,
-                                              ManagedDiskParameters.create(
-                                                      null,
-                                                      "Standard_LRS"),
-                                              null),
-                                      Arrays.asList(DataDisk.create(
-                                              null,
-                                              "10",
-                                              1,
-                                              null,
-                                              null,
-                                              "FromImage",
-                                              "None",
-                                              ManagedDiskParameters.create(
-                                                      null,
-                                                      "Standard_LRS"),
-                                              null))),
-                              VirtualMachineScaleSetOSProfile.create(
-                                      "jclouds-vmssname",
-                                      "admin",
-                                      "password",
-                                      
VirtualMachineScaleSetOSProfile.LinuxConfiguration.create(
-                                              false,
-                                              null),
-                                      null,
-                                      new ArrayList<Secrets>()),
-                              getNetworkProfile(),
-                              getExtensionProfile()
-
-                      )
-              ));
-   }
-
-
-   private VirtualMachineScaleSetNetworkProfile getNetworkProfile() {
-      List<NetworkProfile.NetworkInterface> networkInterfacesList =
-              new ArrayList<NetworkProfile.NetworkInterface>();
-
-      NetworkInterfaceCard nic =
-              createNetworkInterfaceCard(
-                      "jc-nic-" + 123,
-                      "eastus");
-      networkInterfacesList.add(NetworkProfile.NetworkInterface.create(
-              nic.id(),
-              
NetworkProfile.NetworkInterface.NetworkInterfaceProperties.create(true)));
-
-      List<NetworkInterfaceConfiguration> networkInterfaceConfigurations =
-              new ArrayList<NetworkInterfaceConfiguration>();
-      List<VirtualMachineScaleSetIpConfiguration> 
virtualMachineScaleSetIpConfigurations =
-              new ArrayList<VirtualMachineScaleSetIpConfiguration>();
-
-
-      VirtualMachineScaleSetPublicIPAddressConfiguration 
publicIPAddressConfiguration =
-              VirtualMachineScaleSetPublicIPAddressConfiguration.create(
-                      "pub1",
-                      
VirtualMachineScaleSetPublicIPAddressProperties.create(15));
-
-
-      VirtualMachineScaleSetIpConfigurationProperties 
virtualMachineScaleSetIpConfigurationProperties =
-              VirtualMachineScaleSetIpConfigurationProperties.create(
-                      publicIPAddressConfiguration,
-                      createDefaultSubnet(
-                              "virtualNetworkName"
-                      ),
-                      "IPv4",
-                      null,
-                      null,
-                      null);
-
-      VirtualMachineScaleSetIpConfiguration 
virtualMachineScaleSetIpConfiguration =
-              VirtualMachineScaleSetIpConfiguration.create(
-                      "ipconfig1",
-                      virtualMachineScaleSetIpConfigurationProperties);
-
-      
virtualMachineScaleSetIpConfigurations.add(virtualMachineScaleSetIpConfiguration);
-
-      ArrayList<String> dnsList = new ArrayList<String>();
-      dnsList.add("8.8.8.8");
-      VirtualMachineScaleSetDNSSettings dnsSettings =  
VirtualMachineScaleSetDNSSettings.create(dnsList);
-
-      NetworkInterfaceConfigurationProperties 
networkInterfaceConfigurationProperties =
-              NetworkInterfaceConfigurationProperties.create(
-                      true,
-                      false,
-                      null,
-                      dnsSettings,
-                      virtualMachineScaleSetIpConfigurations);
-      NetworkInterfaceConfiguration networkInterfaceConfiguration =
-              NetworkInterfaceConfiguration.create(
-                      "nicconfig1",
-                      networkInterfaceConfigurationProperties);
-      networkInterfaceConfigurations.add(networkInterfaceConfiguration);
-
-      return 
VirtualMachineScaleSetNetworkProfile.create(networkInterfaceConfigurations);
-   }
-
-
-   private NetworkInterfaceCard createNetworkInterfaceCard(
-           String networkInterfaceCardName, String locationName) {
-      //Create properties object
-      NetworkInterfaceCardProperties networkInterfaceCardProperties =
-              NetworkInterfaceCardProperties.create(
-                      null,
-                      null,
-                      false,
-                      null,
-                      IdReference.create(
-                              
"/subscriptions/xxxxx-xxxx-xxxx-xxxx-xxxxxx/resourceGroups/" +
-                                      "jcloud-eastus/providers/" +
-                                      "Microsoft.Network/virtualNetworks/" +
-                                      
"jclouds-eastus-virtualNetworkName/subnets/" +
-                                      "jclouds-eastus-subnet")
-              );
-
-      Map<String, String> tags = ImmutableMap.of("jclouds", "livetest");
-      return NetworkInterfaceCard.create(
-              networkInterfaceCardName,
-              "",
-              null,
-              locationName,
-              networkInterfaceCardProperties, tags);
-   }
-
-   protected Subnet createDefaultSubnet(final String subnetName) {
-      Subnet.SubnetProperties properties = Subnet.SubnetProperties.create(
-              null,
-              null,
-              null);
-      return Subnet.create(
-              subnetName,
-              
"/subscriptions/xxxxx-xxxx-xxxx-xxxx-xxxxxx/resourceGroups/jcloud-eastus/providers/"
 +
-                      
"Microsoft.Network/virtualNetworks/jclouds-eastus-virtualNetworkName/subnets/" +
-                      "jclouds-eastus-subnet",
-              null,
-              properties);
-   }
-
-   private ExtensionProfile getExtensionProfile() {
-      List<Extension> extensions = new ArrayList<Extension>();
-
-      List<String> uris = new ArrayList<String>();
-      
uris.add("https://mystorage1.blob.core.windows.net/winvmextekfacnt/SampleCmd_1.cmd";);
-
-      Map<String, String> protectedSettings = new HashMap<String, String>();
-      protectedSettings.put("StorageAccountKey", "jclouds-accountkey");
-
-      Extension extension = Extension.create(
-              "extensionName",
-              ExtensionProperties.create(
-                      "Microsoft.compute",
-                      "CustomScriptExtension",
-                      "1.1",
-                      false,
-                      ExtensionProfileSettings.create(
-                              uris,
-                              "SampleCmd_1.cmd"),
-                      protectedSettings));
-      extensions.add(extension);
-
-      return ExtensionProfile.create(extensions);
-   }
-
-   public void testList() throws InterruptedException {
-      
server.enqueue(jsonResponse("/virtualmachinescalesetlist.json").setResponseCode(200));
-      final VirtualMachineScaleSetApi vmssAPI = 
api.getVirtualMachineScaleSetApi(resourcegroup);
-      assertEquals(vmssAPI.list().size(), 1);
-      assertSent(server,
-              "GET",
-              
"/subscriptions/SUBSCRIPTIONID/resourceGroups/myresourcegroup/providers/" +
-                      "Microsoft.Compute"
-              + "/VirtualMachineScaleSets?api-version=2017-03-30");
-   }
-
-   public void testListWhen404() throws InterruptedException {
-      server.enqueue(
-              
jsonResponse("/virtualmachinescalesetlistwhen404.json").setResponseCode(404));
-      final VirtualMachineScaleSetApi vmssAPI = 
api.getVirtualMachineScaleSetApi(
-              resourcegroup + "1");
-      List<VirtualMachineScaleSet> vmssList = vmssAPI.list();
-      assertSent(server,
-              "GET",
-              
"/subscriptions/SUBSCRIPTIONID/resourceGroups/myresourcegroup1/providers/" +
-                      "Microsoft.Compute"
-              + "/VirtualMachineScaleSets?api-version=2017-03-30");
-      assertTrue(isEmpty(vmssList));
-   }
-
-
-   public void testDeleteWhen404() throws InterruptedException {
-      
server.enqueue(jsonResponse("/virtualmachinescalesetlist.json").setResponseCode(404));
-      final VirtualMachineScaleSetApi vmssAPI = 
api.getVirtualMachineScaleSetApi(resourcegroup);
-      assertNull(vmssAPI.delete(vmssname));
-      assertSent(server,
-              "DELETE",
-              
"/subscriptions/SUBSCRIPTIONID/resourceGroups/myresourcegroup/providers/" +
-                      "Microsoft.Compute"
-              + "/VirtualMachineScaleSets/" + vmssname + 
"?api-version=2017-03-30");
-
-   }
-
-   public void testDelete() throws InterruptedException {
-      server.enqueue(response202WithHeader());
-      final VirtualMachineScaleSetApi vmssAPI = 
api.getVirtualMachineScaleSetApi(resourcegroup);
-      assertNotNull(vmssAPI.delete(vmssname));
-      assertSent(server,
-              "DELETE",
-              
"/subscriptions/SUBSCRIPTIONID/resourceGroups/myresourcegroup/providers/" +
-                      "Microsoft.Compute"
-              + 
"/VirtualMachineScaleSets/jclouds-vmssname?api-version=2017-03-30");
-   }
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualNetworkApiLiveTest.java
----------------------------------------------------------------------
diff --git 
a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualNetworkApiLiveTest.java
 
b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualNetworkApiLiveTest.java
deleted file mode 100644
index c0271d3..0000000
--- 
a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualNetworkApiLiveTest.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * 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.azurecompute.arm.features;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertFalse;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertTrue;
-
-import java.util.Arrays;
-import java.util.List;
-
-import org.jclouds.azurecompute.arm.domain.VirtualNetwork;
-import org.jclouds.azurecompute.arm.internal.BaseAzureComputeApiLiveTest;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-@Test(groups = "live", singleThreaded = true)
-public class VirtualNetworkApiLiveTest extends BaseAzureComputeApiLiveTest {
-
-   private String virtualNetworkName;
-
-   @BeforeClass
-   @Override
-   public void setup() {
-      super.setup();
-      createTestResourceGroup();
-      virtualNetworkName = String.format("vn-%s-%s", 
this.getClass().getSimpleName().toLowerCase(), System.getProperty("user.name"));
-   }
-
-   @Test
-   public void deleteVirtualNetworkResourceDoesNotExist() {
-      boolean status = api().delete(virtualNetworkName);
-      assertFalse(status);
-   }
-
-   @Test(dependsOnMethods = "deleteVirtualNetworkResourceDoesNotExist")
-   public void createVirtualNetwork() {
-
-      final VirtualNetwork.VirtualNetworkProperties virtualNetworkProperties =
-              VirtualNetwork.VirtualNetworkProperties.builder().addressSpace(
-                      
VirtualNetwork.AddressSpace.create(Arrays.asList(DEFAULT_VIRTUALNETWORK_ADDRESS_PREFIX))).build();
-
-      VirtualNetwork vn = api().createOrUpdate(virtualNetworkName, LOCATION, 
null, virtualNetworkProperties);
-
-      assertEquals(vn.name(), virtualNetworkName);
-      assertEquals(vn.location(), LOCATION);
-   }
-
-   @Test(dependsOnMethods = "createVirtualNetwork")
-   public void getVirtualNetwork() {
-      VirtualNetwork vn = api().get(virtualNetworkName);
-
-      assertNotNull(vn.name());
-      assertNotNull(vn.location());
-      assertNotNull(vn.properties().addressSpace().addressPrefixes());
-   }
-
-   @Test(dependsOnMethods = "createVirtualNetwork")
-   public void listVirtualNetworks() {
-      List<VirtualNetwork> vnList = api().list();
-      assertTrue(vnList.size() > 0);
-   }
-
-   @Test(dependsOnMethods = {"listVirtualNetworks", "getVirtualNetwork"}, 
alwaysRun = true)
-   public void deleteVirtualNetwork() {
-      boolean status = api().delete(virtualNetworkName);
-      assertTrue(status);
-   }
-
-   private VirtualNetworkApi api() {
-      return api.getVirtualNetworkApi(resourceGroupName);
-   }
-
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualNetworkApiMockTest.java
----------------------------------------------------------------------
diff --git 
a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualNetworkApiMockTest.java
 
b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualNetworkApiMockTest.java
deleted file mode 100644
index 8ba0406..0000000
--- 
a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/features/VirtualNetworkApiMockTest.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * 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.azurecompute.arm.features;
-
-import org.jclouds.azurecompute.arm.domain.VirtualNetwork;
-
-import org.testng.annotations.Test;
-
-import org.jclouds.azurecompute.arm.internal.BaseAzureComputeApiMockTest;
-
-import java.util.Arrays;
-import java.util.List;
-
-import static com.google.common.collect.Iterables.isEmpty;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertFalse;
-import static org.testng.Assert.assertTrue;
-import static org.testng.Assert.assertNull;
-
-@Test(groups = "unit", testName = "VirtualNetworkApiMockTest", singleThreaded 
= true)
-public class VirtualNetworkApiMockTest extends BaseAzureComputeApiMockTest {
-
-   private final String subscriptionid = "SUBSCRIPTIONID";
-   private final String resourcegroup = "myresourcegroup";
-   private final String virtualNetwork = "mockvirtualnetwork";
-   private final String apiVersion = "api-version=2015-06-15";
-   private final String location = "westeurope";
-
-   public void getVirtualNetwork() throws InterruptedException {
-      server.enqueue(jsonResponse("/virtualnetwork.json"));
-
-      final VirtualNetworkApi vnApi = api.getVirtualNetworkApi(resourcegroup);
-      VirtualNetwork vn = vnApi.get(virtualNetwork);
-
-      String path = 
String.format("/subscriptions/%s/resourcegroups/%s/providers/Microsoft.Network/virtualNetworks/%s?%s",
 subscriptionid, resourcegroup, virtualNetwork, apiVersion);
-      assertSent(server, "GET", path);
-      assertEquals(vn.name(), "mockvirtualnetwork");
-      assertEquals(vn.properties().resourceGuid(), 
"1568c76a-73a4-4a60-8dfb-53b823197ccb");
-      assertEquals(vn.properties().addressSpace().addressPrefixes().get(0), 
"10.2.0.0/16");
-      assertEquals(vn.tags().get("tagkey"), "tagvalue");
-   }
-
-   public void getVirtualNetworkReturns404() throws InterruptedException {
-      server.enqueue(response404());
-
-      final VirtualNetworkApi vnApi = api.getVirtualNetworkApi(resourcegroup);
-      VirtualNetwork vn = vnApi.get(virtualNetwork);
-
-      String path = 
String.format("/subscriptions/%s/resourcegroups/%s/providers/Microsoft.Network/virtualNetworks/%s?%s",
 subscriptionid, resourcegroup, virtualNetwork, apiVersion);
-      assertSent(server, "GET", path);
-
-      assertNull(vn);
-   }
-
-   public void listVirtualNetworks() throws InterruptedException {
-      server.enqueue(jsonResponse("/listvirtualnetworks.json"));
-
-      final VirtualNetworkApi vnApi = api.getVirtualNetworkApi(resourcegroup);
-      List<VirtualNetwork> vnList = vnApi.list();
-      String path = 
String.format("/subscriptions/%s/resourcegroups/%s/providers/Microsoft.Network/virtualNetworks?%s",
 subscriptionid, resourcegroup, apiVersion);
-
-      assertSent(server, "GET", path);
-      assertEquals(vnList.size(), 3);
-   }
-
-   public void listVirtualNetworkReturns404() throws InterruptedException {
-      server.enqueue(response404());
-
-      final VirtualNetworkApi vnApi = api.getVirtualNetworkApi(resourcegroup);
-      List<VirtualNetwork> vnList = vnApi.list();
-      String path = 
String.format("/subscriptions/%s/resourcegroups/%s/providers/Microsoft.Network/virtualNetworks?%s",
 subscriptionid, resourcegroup, apiVersion);
-
-      assertSent(server, "GET", path);
-
-      assertTrue(isEmpty(vnList));
-   }
-
-   public void createVirtualNetwork() throws InterruptedException {
-
-      
server.enqueue(jsonResponse("/createvirtualnetwork.json").setStatus("HTTP/1.1 
201 Created"));
-
-      final VirtualNetworkApi vnApi = api.getVirtualNetworkApi(resourcegroup);
-
-      final VirtualNetwork.VirtualNetworkProperties virtualNetworkProperties =
-              VirtualNetwork.VirtualNetworkProperties.create(null, null,
-                      
VirtualNetwork.AddressSpace.create(Arrays.asList("10.2.0.0/16")), null);
-
-
-      vnApi.createOrUpdate(virtualNetwork, location, null, 
virtualNetworkProperties);
-
-      String path = 
String.format("/subscriptions/%s/resourcegroups/%s/providers/Microsoft.Network/virtualNetworks/%s?%s",
 subscriptionid, resourcegroup, virtualNetwork, apiVersion);
-      String json = 
String.format("{\"location\":\"%s\",\"properties\":{\"addressSpace\":{\"addressPrefixes\":[\"%s\"]}}}",
 location, "10.2.0.0/16");
-      assertSent(server, "PUT", path, json);
-   }
-
-   public void deleteVirtualNetwork() throws InterruptedException {
-
-      server.enqueue(response202());
-
-      final VirtualNetworkApi vnApi = api.getVirtualNetworkApi(resourcegroup);
-
-      boolean status = vnApi.delete(virtualNetwork);
-      assertTrue(status);
-
-      String path = 
String.format("/subscriptions/%s/resourcegroups/%s/providers/Microsoft.Network/virtualNetworks/%s?%s",
 subscriptionid, resourcegroup, virtualNetwork, apiVersion);
-      assertSent(server, "DELETE", path);
-
-   }
-
-   public void deleteVirtualNetworkResourceDoesNotExist() throws 
InterruptedException {
-
-      server.enqueue(response204());
-
-      final VirtualNetworkApi vnApi = api.getVirtualNetworkApi(resourcegroup);
-
-      boolean status = vnApi.delete(virtualNetwork);
-      assertFalse(status);
-
-      String path = 
String.format("/subscriptions/%s/resourcegroups/%s/providers/Microsoft.Network/virtualNetworks/%s?%s",
 subscriptionid, resourcegroup, virtualNetwork, apiVersion);
-      assertSent(server, "DELETE", path);
-   }
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/filters/ApiVersionFilterTest.java
----------------------------------------------------------------------
diff --git 
a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/filters/ApiVersionFilterTest.java
 
b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/filters/ApiVersionFilterTest.java
deleted file mode 100644
index f3b15ce..0000000
--- 
a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/filters/ApiVersionFilterTest.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * 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.azurecompute.arm.filters;
-
-import static org.easymock.EasyMock.createMock;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.replay;
-import static 
org.jclouds.azurecompute.arm.config.AzureComputeProperties.API_VERSION_PREFIX;
-import static org.jclouds.reflect.Reflection2.method;
-import static org.testng.Assert.assertEquals;
-
-import java.util.Properties;
-
-import javax.inject.Named;
-
-import org.jclouds.http.HttpRequest;
-import org.jclouds.http.HttpResponse;
-import org.jclouds.internal.FilterStringsBoundToInjectorByName;
-import org.jclouds.reflect.Invocation;
-import org.jclouds.rest.config.InvocationConfig;
-import org.jclouds.rest.internal.GeneratedHttpRequest;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-import com.google.inject.AbstractModule;
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-import com.google.inject.name.Names;
-
-@Test(groups = "unit", testName = "ApiVersionFilterTest", singleThreaded = 
true)
-public class ApiVersionFilterTest {
-
-   public interface VersionedApi {
-      HttpResponse noName();
-
-      @Named("named:get")
-      HttpResponse named();
-   }
-
-   private Invocation noName;
-   private Invocation named;
-   private InvocationConfig config;
-
-   @BeforeMethod
-   public void setup() {
-      noName = Invocation.create(method(VersionedApi.class, "noName"), 
ImmutableList.of());
-      named = Invocation.create(method(VersionedApi.class, "named"), 
ImmutableList.of());
-
-      config = createMock(InvocationConfig.class);
-      expect(config.getCommandName(noName)).andReturn("VersionedApi.noName");
-      expect(config.getCommandName(named)).andReturn("named:get");
-      replay(config);
-   }
-
-   @Test(expectedExceptions = IllegalArgumentException.class)
-   public void testFailIfNoGeneratedHttpRequest() {
-      ApiVersionFilter filter = new ApiVersionFilter(config, 
filterStringsBoundToInjectorByName(new Properties()));
-      
filter.filter(HttpRequest.builder().method("GET").endpoint("http://localhost";).build());
-   }
-
-   @Test
-   public void testOverrideMethodVersion() {
-      Properties props = new Properties();
-      props.setProperty(API_VERSION_PREFIX + "named:get", "namedversion");
-      props.setProperty(API_VERSION_PREFIX + "VersionedApi.noName", 
"noNameversion");
-      ApiVersionFilter filter = new ApiVersionFilter(config, 
filterStringsBoundToInjectorByName(props));
-
-      HttpRequest request = 
GeneratedHttpRequest.builder().method("GET").endpoint("http://localhost";)
-            .invocation(noName).addQueryParam("api-version", "original", 
"original2").build();
-      HttpRequest filtered = filter.filter(request);
-      assertEquals(filtered.getEndpoint().getQuery(), 
"api-version=noNameversion");
-
-      request = 
GeneratedHttpRequest.builder().method("GET").endpoint("http://localhost";).invocation(named)
-            .addQueryParam("api-version", "original", "original2").build();
-      filtered = filter.filter(request);
-      assertEquals(filtered.getEndpoint().getQuery(), 
"api-version=namedversion");
-   }
-
-   @Test
-   public void testFallbackToClassName() {
-      Properties props = new Properties();
-      props.setProperty(API_VERSION_PREFIX + "VersionedApi", "classversion");
-      ApiVersionFilter filter = new ApiVersionFilter(config, 
filterStringsBoundToInjectorByName(props));
-
-      HttpRequest request = 
GeneratedHttpRequest.builder().method("GET").endpoint("http://localhost";)
-            .invocation(noName).addQueryParam("api-version", "original", 
"original2").build();
-      HttpRequest filtered = filter.filter(request);
-      assertEquals(filtered.getEndpoint().getQuery(), 
"api-version=classversion");
-
-      request = 
GeneratedHttpRequest.builder().method("GET").endpoint("http://localhost";).invocation(named)
-            .addQueryParam("api-version", "original", "original2").build();
-      filtered = filter.filter(request);
-      assertEquals(filtered.getEndpoint().getQuery(), 
"api-version=classversion");
-   }
-
-   @Test
-   public void testNothingChangesIfNoCustomVersion() {
-      ApiVersionFilter filter = new ApiVersionFilter(config, 
filterStringsBoundToInjectorByName(new Properties()));
-
-      HttpRequest request = 
GeneratedHttpRequest.builder().method("GET").endpoint("http://localhost";).invocation(named)
-            .addQueryParam("api-version", "foo").build();
-      HttpRequest filtered = filter.filter(request);
-      assertEquals(filtered.getEndpoint().getQuery(), "api-version=foo");
-   }
-
-   private FilterStringsBoundToInjectorByName 
filterStringsBoundToInjectorByName(final Properties props) {
-      Injector injector = Guice.createInjector(new AbstractModule() {
-         protected void configure() {
-            Names.bindProperties(binder(), props);
-         }
-      });
-      return new FilterStringsBoundToInjectorByName(injector);
-   }
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/functions/URIParserTest.java
----------------------------------------------------------------------
diff --git 
a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/functions/URIParserTest.java
 
b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/functions/URIParserTest.java
deleted file mode 100644
index cd0eb02..0000000
--- 
a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/functions/URIParserTest.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * 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.azurecompute.arm.functions;
-
-import static org.testng.Assert.assertNull;
-import static org.testng.Assert.assertNotNull;
-
-import java.net.URI;
-
-import org.jclouds.http.HttpResponse;
-import org.testng.annotations.Test;
-import com.google.common.collect.Multimap;
-import com.google.common.collect.LinkedHashMultimap;
-
-@Test(groups = "unit", testName = "URIParserTest")
-public class URIParserTest {
-
-   public void testApply() {
-      URIParser parser = new URIParser();
-      Multimap<String, String> headers = LinkedHashMultimap.<String, 
String>create();
-
-      URI uri = parser.apply(HttpResponse.builder().statusCode(200).build());
-      assertNull(uri);
-
-      try {
-         uri = parser.apply(HttpResponse.builder().statusCode(202).build());
-      } catch (IllegalStateException ex) {
-         assertNotNull(ex);
-      }
-
-      headers.put("Location", "https://someuri";);
-
-      uri = 
parser.apply(HttpResponse.builder().statusCode(202).headers(headers).build());
-      assertNotNull(uri);
-
-   }
-}

http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/internal/AzureLiveTestUtils.java
----------------------------------------------------------------------
diff --git 
a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/internal/AzureLiveTestUtils.java
 
b/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/internal/AzureLiveTestUtils.java
deleted file mode 100644
index 4d101ca..0000000
--- 
a/azurecompute-arm/src/test/java/org/jclouds/azurecompute/arm/internal/AzureLiveTestUtils.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * 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.azurecompute.arm.internal;
-
-import static 
org.jclouds.azurecompute.arm.config.AzureComputeProperties.IMAGE_PUBLISHERS;
-import static 
org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_NODE_RUNNING;
-import static 
org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_NODE_SUSPENDED;
-import static 
org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_NODE_TERMINATED;
-import static 
org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_PORT_OPEN;
-import static 
org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_SCRIPT_COMPLETE;
-import static 
org.jclouds.location.reference.LocationConstants.PROPERTY_REGIONS;
-import static 
org.jclouds.oauth.v2.config.CredentialType.CLIENT_CREDENTIALS_SECRET;
-import static org.jclouds.oauth.v2.config.OAuthProperties.CREDENTIAL_TYPE;
-
-import java.util.Properties;
-import java.util.concurrent.TimeUnit;
-
-public class AzureLiveTestUtils {
-
-   public static Properties defaultProperties(Properties properties) {
-      properties = properties == null ? new Properties() : properties;
-      properties.put(CREDENTIAL_TYPE, CLIENT_CREDENTIALS_SECRET.toString());
-      properties.put(PROPERTY_REGIONS, "westeurope");
-      properties.put(IMAGE_PUBLISHERS, "Canonical");
-
-      String defaultTimeout = String.valueOf(TimeUnit.MILLISECONDS.convert(60, 
TimeUnit.MINUTES));
-      properties.setProperty(TIMEOUT_SCRIPT_COMPLETE, defaultTimeout);
-      properties.setProperty(TIMEOUT_NODE_RUNNING, defaultTimeout);
-      properties.setProperty(TIMEOUT_PORT_OPEN, defaultTimeout);
-      properties.setProperty(TIMEOUT_NODE_TERMINATED, defaultTimeout);
-      properties.setProperty(TIMEOUT_NODE_SUSPENDED, defaultTimeout);
-
-      return properties;
-   }
-}

Reply via email to