public async Task CanDeleteImageMetadata() { var metadata = new Dictionary <string, string>() { { "item1", "value1" }, { "item2", "value2" } }; var created = DateTime.UtcNow.Subtract(TimeSpan.FromMinutes(10)); var updated = DateTime.UtcNow.Subtract(TimeSpan.FromMinutes(1)); var imageId = "12345"; var image = new ComputeImage(imageId, "tiny", new Uri("http://testcomputeendpoint.com/v2/1234567890/images/12345"), new Uri("http://testcomputeendpoint.com/1234567890/images/12345"), metadata, "ACTIVE", created, updated, 10, 512, 100); this.simulator.Images.Add(image); var client = new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator); var resp = await client.DeleteImageMetadata(imageId, "item1"); Assert.AreEqual(HttpStatusCode.OK, resp.StatusCode); Assert.AreEqual(1, image.Metadata.Count); Assert.AreEqual("value2", image.Metadata["item2"]); }
public async Task AssignFloatingIpFormsCorrectUrlAndMethod() { var client = new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator); var serverId = "12345"; await client.AssignFloatingIp(serverId, "172.0.0.1"); Assert.AreEqual(string.Format("{0}/servers/{1}/action", endpoint, serverId), this.simulator.Uri.ToString()); Assert.AreEqual(HttpMethod.Post, this.simulator.Method); }
public async Task AssignFloatingIpIncludesContentTypeHeader() { var client = new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator); await client.AssignFloatingIp("12345", "172.0.0.1"); Assert.IsTrue(this.simulator.ContentType != string.Empty); Assert.AreEqual("application/json", this.simulator.ContentType); }
public async Task AssignFloatingIpIncludesAuthHeader() { var client = new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator); await client.AssignFloatingIp("12345", "172.0.0.1"); Assert.IsTrue(this.simulator.Headers.ContainsKey("X-Auth-Token")); Assert.AreEqual(this.authId, this.simulator.Headers["X-Auth-Token"]); }
public async Task GetComputeFlavorsFormsCorrectUrlAndMethod() { var client = new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator); await client.GetFlavors(); Assert.AreEqual(string.Format("{0}/flavors", endpoint), this.simulator.Uri.ToString()); Assert.AreEqual(HttpMethod.Get, this.simulator.Method); }
public async Task CreateComputeServerFormsCorrectUrlAndMethod() { var client = new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator); await client.CreateServer("MyServer", "1245", "2", "54321", "key", new List <string>() { "MyGroup" }); Assert.AreEqual(string.Format("{0}/servers", endpoint), this.simulator.Uri.ToString()); Assert.AreEqual(HttpMethod.Post, this.simulator.Method); }
public async Task CreateComputeServerIncludesContentTypeHeader() { var client = new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator); await client.CreateServer("MyServer", "1245", "2", "54321", "key", new List <string>() { "MyGroup" }); Assert.IsTrue(this.simulator.ContentType != string.Empty); Assert.AreEqual("application/json", this.simulator.ContentType); }
public async Task CreateComputeServerIncludesAuthHeader() { var client = new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator); await client.CreateServer("MyServer", "1245", "2", "54321", "key", new List <string>() { "MyGroup" }); Assert.IsTrue(this.simulator.Headers.ContainsKey("X-Auth-Token")); Assert.AreEqual(this.authId, this.simulator.Headers["X-Auth-Token"]); }
public async Task GetComputeImageMetadataIncludesAuthHeader() { var client = new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator); await client.GetImageMetadata("12345"); Assert.IsTrue(this.simulator.Headers.ContainsKey("X-Auth-Token")); Assert.AreEqual(this.authId, this.simulator.Headers["X-Auth-Token"]); }
public async Task DeleteComputeServerFormsCorrectUrlAndMethod() { var serverId = "1"; var client = new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator); await client.DeleteServer(serverId); Assert.AreEqual(string.Format("{0}/servers/{1}", endpoint, serverId), this.simulator.Uri.ToString()); Assert.AreEqual(HttpMethod.Delete, this.simulator.Method); }
public async Task GetComputeImageMetadataFormsCorrectUrlAndMethod() { var imageId = "12345"; var client = new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator); await client.GetImageMetadata(imageId); Assert.AreEqual(string.Format("{0}/images/{1}/metadata", endpoint, imageId), this.simulator.Uri.ToString()); Assert.AreEqual(HttpMethod.Get, this.simulator.Method); }
public async Task GetComputeKeyPairFormsCorrectUrlAndMethod() { var keyPairName = "1"; var client = new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator); await client.GetKeyPair(keyPairName); Assert.AreEqual(string.Format("{0}/os-keypairs/{1}", endpoint, keyPairName), this.simulator.Uri.ToString()); Assert.AreEqual(HttpMethod.Get, this.simulator.Method); }
public async Task CanAssignFloatingIp() { var serverId = "12345"; var server = new ComputeServer(serverId, "tiny", new Uri("http://testcomputeendpoint.com/v2/1234567890/servers/1"), new Uri("http://testcomputeendpoint.com/1234567890/servers/1"), new Dictionary <string, string>()); this.simulator.Servers.Add(server); var client = new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator); var resp = await client.AssignFloatingIp(serverId, "172.0.0.1"); Assert.AreEqual(HttpStatusCode.Accepted, resp.StatusCode); }
public async Task UpdateComputeImageMetadataSetsCorrectContentType() { var metadata = new Dictionary <string, string>() { { "item1", "value1" }, { "item2", "value2" } }; var imageId = "12345"; var client = new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator); await client.UpdateImageMetadata(imageId, metadata); Assert.AreEqual("application/json", this.simulator.ContentType); }
public async Task UpdateComputeImageMetadataIncludesAuthHeader() { var metadata = new Dictionary <string, string>() { { "item1", "value1" }, { "item2", "value2" } }; var client = new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator); await client.UpdateImageMetadata("12345", metadata); Assert.IsTrue(this.simulator.Headers.ContainsKey("X-Auth-Token")); Assert.AreEqual(this.authId, this.simulator.Headers["X-Auth-Token"]); }
public async Task UpdateComputeImageMetadataFormsCorrectUrlAndMethod() { var metadata = new Dictionary <string, string>() { { "item1", "value1" }, { "item2", "value2" } }; var imageId = "12345"; var client = new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator); await client.UpdateImageMetadata(imageId, metadata); Assert.AreEqual(string.Format("{0}/images/{1}/metadata", endpoint, imageId), this.simulator.Uri.ToString()); Assert.AreEqual(HttpMethod.Post, this.simulator.Method); }
public async Task CanGetFlavors() { this.simulator.Flavors.Add(new ComputeFlavor("1", "tiny", "4", "2", "10", new Uri("http://testcomputeendpoint.com/v2/1234567890/flavors/1"), new Uri("http://testcomputeendpoint.com/1234567890/flavors/1"), new Dictionary <string, string>())); var client = new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator); var resp = await client.GetFlavors(); Assert.AreEqual(HttpStatusCode.OK, resp.StatusCode); var respContent = TestHelper.GetStringFromStream(resp.Content); Assert.IsTrue(respContent.Length > 0); }
public async Task CreateComputeServerWithKeyNameFormsCorrectBody() { var client = new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator); var serverName = "MyServer"; var keyName = "MyKey"; var imageId = "12345"; var flavorId = "2"; var networkId = "54321"; var secGroupName = "MyGroup"; await client.CreateServer(serverName, imageId, flavorId, networkId, keyName, new List <string>() { secGroupName }); this.simulator.Content.Position = 0; var reqContent = TestHelper.GetStringFromStream(this.simulator.Content); var srvObj = JObject.Parse(reqContent); Assert.IsNotNull(srvObj["server"]); Assert.IsNotNull(srvObj["server"]["name"]); Assert.AreEqual(serverName, (string)srvObj["server"]["name"]); Assert.IsNotNull(srvObj["server"]["imageRef"]); Assert.AreEqual(imageId, (string)srvObj["server"]["imageRef"]); Assert.IsNotNull(srvObj["server"]["flavorRef"]); Assert.AreEqual(flavorId, (string)srvObj["server"]["flavorRef"]); Assert.IsNotNull(srvObj["server"]["max_count"]); Assert.AreEqual(1, (int)srvObj["server"]["max_count"]); Assert.IsNotNull(srvObj["server"]["min_count"]); Assert.AreEqual(1, (int)srvObj["server"]["min_count"]); Assert.IsNotNull(srvObj["server"]["key_name"]); Assert.AreEqual(keyName, (string)srvObj["server"]["key_name"]); Assert.IsNotNull(srvObj["server"]["networks"]); Assert.IsNotNull(srvObj["server"]["networks"][0]); Assert.IsNotNull(srvObj["server"]["networks"][0]["uuid"]); Assert.AreEqual(networkId, (string)srvObj["server"]["networks"][0]["uuid"]); Assert.IsNotNull(srvObj["server"]["security_groups"]); Assert.IsNotNull(srvObj["server"]["security_groups"][0]); Assert.IsNotNull(srvObj["server"]["security_groups"][0]["name"]); Assert.AreEqual(secGroupName, (string)srvObj["server"]["security_groups"][0]["name"]); }
public async Task CanGetKeyPair() { var keyPairName = "Key1"; var keyPair = new ComputeKeyPair(keyPairName, "12345", "ABCDEF"); this.simulator.KeyPairs.Add(keyPair); var client = new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator); var resp = await client.GetKeyPair(keyPairName); Assert.AreEqual(HttpStatusCode.OK, resp.StatusCode); var respContent = TestHelper.GetStringFromStream(resp.Content); Assert.IsTrue(respContent.Length > 0); }
public async Task CanDeleteImage() { var imageId = "12345"; var created = DateTime.UtcNow.Subtract(TimeSpan.FromMinutes(10)); var updated = DateTime.UtcNow.Subtract(TimeSpan.FromMinutes(1)); this.simulator.Images.Add(new ComputeImage(imageId, "tiny", new Uri("http://testcomputeendpoint.com/v2/1234567890/flavors/1"), new Uri("http://testcomputeendpoint.com/1234567890/flavors/1"), new Dictionary <string, string>(), "ACTIVE", created, updated, 10, 512, 100)); var client = new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator); var resp = await client.DeleteImage(imageId); Assert.AreEqual(HttpStatusCode.OK, resp.StatusCode); Assert.IsFalse(this.simulator.Images.Any()); }
public async Task AssignFloatingIpFormsCorrectBody() { var client = new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator); var serverId = "12345"; var ipAddress = "172.0.0.1"; await client.AssignFloatingIp(serverId, ipAddress); this.simulator.Content.Position = 0; var reqContent = TestHelper.GetStringFromStream(this.simulator.Content); var body = JObject.Parse(reqContent); Assert.IsNotNull(body["addFloatingIp"]); Assert.IsNotNull(body["addFloatingIp"]["address"]); Assert.AreEqual(ipAddress, (string)body["addFloatingIp"]["address"]); }
public async Task CanCreateComputeServer() { var srvName = "MyServer"; var client = new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator); var resp = await client.CreateServer(srvName, "1245", "2", "54321", string.Empty, new List <string>() { "MyGroup" }); Assert.AreEqual(HttpStatusCode.Accepted, resp.StatusCode); var respContent = TestHelper.GetStringFromStream(resp.Content); Assert.IsTrue(respContent.Length > 0); Assert.IsTrue(this.simulator.Servers.Count == 1); var resSrv = this.simulator.Servers.First(); Assert.AreEqual(srvName, resSrv.Name); }
public async Task CanGetImages() { var created = DateTime.UtcNow.Subtract(TimeSpan.FromMinutes(10)); var updated = DateTime.UtcNow.Subtract(TimeSpan.FromMinutes(1)); this.simulator.Images.Add(new ComputeImage("1", "tiny", new Uri("http://testcomputeendpoint.com/v2/1234567890/flavors/1"), new Uri("http://testcomputeendpoint.com/1234567890/flavors/1"), new Dictionary <string, string>(), "ACTIVE", created, updated, 10, 512, 100)); var client = new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator); var resp = await client.GetImages(); Assert.AreEqual(HttpStatusCode.OK, resp.StatusCode); var respContent = TestHelper.GetStringFromStream(resp.Content); Assert.IsTrue(respContent.Length > 0); }
public async Task CanGetImageMetadata() { var imageId = "12345"; var created = DateTime.UtcNow.Subtract(TimeSpan.FromMinutes(10)); var updated = DateTime.UtcNow.Subtract(TimeSpan.FromMinutes(1)); var metadata = new Dictionary <string, string>() { { "item1", "value1" }, { "item2", "value2" } }; this.simulator.Images.Add(new ComputeImage(imageId, "tiny", new Uri("http://testcomputeendpoint.com/v2/1234567890/flavors/1"), new Uri("http://testcomputeendpoint.com/1234567890/flavors/1"), metadata, "ACTIVE", created, updated, 10, 512, 100)); var client = new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator); var resp = await client.GetImageMetadata(imageId); Assert.AreEqual(HttpStatusCode.OK, resp.StatusCode); var respContent = TestHelper.GetStringFromStream(resp.Content); Assert.IsTrue(respContent.Length > 0); var jObj = JObject.Parse(respContent); var metaToken = jObj["metadata"]; Assert.IsNotNull(metaToken); var item1 = metaToken["item1"]; Assert.IsNotNull(item1); Assert.AreEqual("value1", item1.Value <string>()); var item2 = metaToken["item2"]; Assert.IsNotNull(item2); Assert.AreEqual("value2", item2.Value <string>()); }
public async Task CanDeleteServerMetadata() { var metadata = new Dictionary <string, string>() { { "item1", "value1" }, { "item2", "value2" } }; var serverId = "1"; var server = new ComputeServer(serverId, "tiny", new Uri("http://testcomputeendpoint.com/v2/1234567890/servers/1"), new Uri("http://testcomputeendpoint.com/1234567890/servers/1"), metadata); this.simulator.Servers.Add(server); var client = new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator); var resp = await client.DeleteServerMetadata(serverId, "item1"); Assert.AreEqual(HttpStatusCode.OK, resp.StatusCode); Assert.AreEqual(1, server.Metadata.Count); Assert.AreEqual("value2", server.Metadata["item2"]); }
public async Task CanGetServerMetadata() { var metadata = new Dictionary <string, string>() { { "item1", "value1" }, { "item2", "value2" } }; var serverId = "1"; this.simulator.Servers.Add(new ComputeServer(serverId, "tiny", new Uri("http://testcomputeendpoint.com/v2/1234567890/servers/1"), new Uri("http://testcomputeendpoint.com/1234567890/servers/1"), metadata)); var client = new ComputeServiceRestClient(GetValidContext(), this.ServiceLocator); var resp = await client.GetServerMetadata(serverId); Assert.AreEqual(HttpStatusCode.OK, resp.StatusCode); var respContent = TestHelper.GetStringFromStream(resp.Content); Assert.IsTrue(respContent.Length > 0); var jObj = JObject.Parse(respContent); var metaToken = jObj["metadata"]; Assert.IsNotNull(metaToken); var item1 = metaToken["item1"]; Assert.IsNotNull(item1); Assert.AreEqual("value1", item1.Value <string>()); var item2 = metaToken["item2"]; Assert.IsNotNull(item2); Assert.AreEqual("value2", item2.Value <string>()); }