public async Task CanGetFlavors()
        {
            var flv1 = new ComputeFlavor("1", "m1.tiny", "512", "2", "10", new Uri("http://someuri.com/v2/flavors/1"),
                new Uri("http://someuri.com/flavors/1"), new Dictionary<string, string>());
            var flv2 = new ComputeFlavor("2", "m1.small", "1024", "4", "100", new Uri("http://someuri.com/v2/flavors/2"),
                new Uri("http://someuri.com/flavors/2"), new Dictionary<string, string>());
            var flavors = new List<ComputeFlavor>() {flv1, flv2};

            this.ServicePocoClient.GetFlavorsDelegate = () => Task.Factory.StartNew(() => (IEnumerable<ComputeFlavor>)flavors);

            var client = new ComputeServiceClient(GetValidCreds(), "Nova", CancellationToken.None, this.ServiceLocator);
            var resp = await client.GetFlavors();
            Assert.IsNotNull(resp);

            var respFlavors = resp.ToList();
            Assert.AreEqual(2, respFlavors.Count());
            Assert.AreEqual(flv1, respFlavors[0]);
            Assert.AreEqual(flv2, respFlavors[1]);
        }
        public async Task CanDeleteImageMetadata()
        {
            this.ServicePocoClient.DeleteImageMetadataDelegate = async (imageId, key) =>
            {
                await Task.Run(() =>
                {
                    Assert.AreEqual(imageId, "12345");
                    Assert.AreEqual(key, "item1");
                });
            };

            var client = new ComputeServiceClient(GetValidCreds(), "Nova", CancellationToken.None, this.ServiceLocator);
            await client.DeleteImageMetadata("12345", "item1");
        }
 public async Task GetImageMetadataWithEmptyImageIdThrows()
 {
     var client = new ComputeServiceClient(GetValidCreds(), "Nova", CancellationToken.None, this.ServiceLocator);
     await client.GetImageMetadata(string.Empty);
 }
 public async Task CreateServerWithNullFlavorIdThrows()
 {
     var client = new ComputeServiceClient(GetValidCreds(), "Nova", CancellationToken.None, this.ServiceLocator);
     await client.CreateServer("MyServer", "12345", null, "54321", new List<string>() { "default" });
 }
 public async Task GetKeyPairWithEmptyNameThrows()
 {
     var client = new ComputeServiceClient(GetValidCreds(), "Nova", CancellationToken.None, this.ServiceLocator);
     await client.GetKeyPair(string.Empty);
 }
        public async Task CanGetKeyPairs()
        {
            var expKeyPair1 = new ComputeKeyPair("1", "ABCDEF","12345");
            var expKeyPair2 = new ComputeKeyPair("2", "FEDCBA", "54321");
            var pairs = new List<ComputeKeyPair>() { expKeyPair1, expKeyPair2 };

            this.ServicePocoClient.GetKeyPairsDelegate = () => Task.Factory.StartNew(() => (IEnumerable<ComputeKeyPair>)pairs);

            var client = new ComputeServiceClient(GetValidCreds(), "Nova", CancellationToken.None, this.ServiceLocator);
            var resp = await client.GetKeyPairs();
            Assert.IsNotNull(resp);

            var respPairs = resp.ToList();
            Assert.AreEqual(2, respPairs.Count());
            Assert.AreEqual(expKeyPair1, respPairs[0]);
            Assert.AreEqual(expKeyPair2, respPairs[1]);
        }
 public async Task UpdateImageMetadataWithEmptyImageIdThrows()
 {
     var metadata = new Dictionary<string, string>() { { "item1", "value1" } };
     var client = new ComputeServiceClient(GetValidCreds(), "Nova", CancellationToken.None, this.ServiceLocator);
     await client.UpdateImageMetadata(string.Empty, metadata);
 }
        public async Task CanUpdateImageMetadata()
        {
            var metadata = new Dictionary<string, string>() { { "item1", "value1" } };
            this.ServicePocoClient.UpdateImageMetadataDelegate = async (imageId, meta) =>
            {
                await Task.Run(() =>
                {
                    Assert.AreEqual(imageId, "12345");
                    Assert.AreEqual(metadata, meta);
                });
            };

            var client = new ComputeServiceClient(GetValidCreds(), "Nova", CancellationToken.None, this.ServiceLocator);
            await client.UpdateImageMetadata("12345", metadata);
        }
 public async Task AssignFloatingIpWithEmptyServerIdThrows()
 {
     var client = new ComputeServiceClient(GetValidCreds(), "Nova", CancellationToken.None, this.ServiceLocator);
     await client.AssignFloatingIp(string.Empty, "172.0.0.1");
 }
        public async Task CanAssignFloatingIp()
        {
            this.ServicePocoClient.AssignFloatingIpDelegate = async (serverId, ipAddress) =>
            {
                await Task.Run(() =>
                {
                    Assert.AreEqual(serverId, "12345");
                    Assert.AreEqual(ipAddress, "172.0.0.1");
                });
            };

            var client = new ComputeServiceClient(GetValidCreds(), "Nova", CancellationToken.None, this.ServiceLocator);
            await client.AssignFloatingIp("12345", "172.0.0.1");
        }
 public async Task DeleteServerWithEmptyServerIdThrows()
 {
     var client = new ComputeServiceClient(GetValidCreds(), "Nova", CancellationToken.None, this.ServiceLocator);
     await client.DeleteServer(string.Empty);
 }
        public async Task CanDeleteServer()
        {
            this.ServicePocoClient.DeleteServerDelegate = async (serverId) =>
            {
                await Task.Run(() => Assert.AreEqual(serverId, "12345"));
            };

            var client = new ComputeServiceClient(GetValidCreds(), "Nova", CancellationToken.None, this.ServiceLocator);
            await client.DeleteServer("12345");
        }
        public async Task CanGetServer()
        {
            var serverId = "12345";
            var expServer = 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.ServicePocoClient.GetServerDelegate = (id) =>
            {
                Assert.AreEqual(serverId, id);
                return Task.Factory.StartNew(() => expServer);
            };

            var client = new ComputeServiceClient(GetValidCreds(), "Nova", CancellationToken.None, this.ServiceLocator);
            var server = await client.GetServer(serverId);

            Assert.IsNotNull(server);
            Assert.AreEqual(expServer, server);
        }
        public async Task CanGetServers()
        {
            var expServer1 = new ComputeServer("1", "srv1",
                new Uri("http://testcomputeendpoint.com/v2/1234567890/servers/1"),
                new Uri("http://testcomputeendpoint.com/1234567890/servers/1"), new Dictionary<string, string>());

            var expServer2 = new ComputeServer("2", "srv2",
                new Uri("http://testcomputeendpoint.com/v2/1234567890/servers/1"),
                new Uri("http://testcomputeendpoint.com/1234567890/servers/1"), new Dictionary<string, string>());
            var servers = new List<ComputeServer>() { expServer1, expServer2 };

            this.ServicePocoClient.GetServersDelegate = () => Task.Factory.StartNew(() => (IEnumerable<ComputeServer>)servers);

            var client = new ComputeServiceClient(GetValidCreds(), "Nova", CancellationToken.None, this.ServiceLocator);
            var resp = await client.GetServers();
            Assert.IsNotNull(resp);

            var respFlavors = resp.ToList();
            Assert.AreEqual(2, respFlavors.Count());
            Assert.AreEqual(expServer1, respFlavors[0]);
            Assert.AreEqual(expServer2, respFlavors[1]);
        }
 public async Task CreateServerWithEmptyNetworkIdThrows()
 {
     var client = new ComputeServiceClient(GetValidCreds(), "Nova", CancellationToken.None, this.ServiceLocator);
     await client.CreateServer("MyServer", "12345", "2", string.Empty, new List<string>() { "default" });
 }
 public async Task DeleteImageMetadataWithNullImageIdThrows()
 {
     var client = new ComputeServiceClient(GetValidCreds(), "Nova", CancellationToken.None, this.ServiceLocator);
     await client.DeleteImageMetadata(null, "item1");
 }
 public async Task DeleteImageMetadataWithEmptyKeyThrows()
 {
     var client = new ComputeServiceClient(GetValidCreds(), "Nova", CancellationToken.None, this.ServiceLocator);
     await client.DeleteImageMetadata("12345", string.Empty);
 }
 public async Task AssignFloatingIpWithEmptyIpAddressThrows()
 {
     var client = new ComputeServiceClient(GetValidCreds(), "Nova", CancellationToken.None, this.ServiceLocator);
     await client.AssignFloatingIp("12345", string.Empty);
 }
        public async Task CanGetImages()
        {
            var img1 = new ComputeImage("12345", "image1", new Uri("http://someuri.com/v2/images/12345"), new Uri("http://someuri.com/images/12345"), new Dictionary<string, string>(), "active", DateTime.Now, DateTime.Now, 10, 512, 100);
            var img2 = new ComputeImage("23456", "image2", new Uri("http://someuri.com/v2/images/23456"), new Uri("http://someuri.com/images/23456"), new Dictionary<string, string>(), "active", DateTime.Now, DateTime.Now, 10, 512, 100);
            var images = new List<ComputeImage>() { img1, img2 };

            this.ServicePocoClient.GetImagesDelegate = () => Task.Factory.StartNew(() => (IEnumerable<ComputeImage>)images);

            var client = new ComputeServiceClient(GetValidCreds(), "Nova", CancellationToken.None, this.ServiceLocator);
            var resp = await client.GetImages();
            Assert.IsNotNull(resp);

            var respImage = resp.ToList();
            Assert.AreEqual(2, respImage.Count());
            Assert.AreEqual(img1, respImage[0]);
            Assert.AreEqual(img2, respImage[1]);
        }
        public async Task CanGetImage()
        {
            var img1 = new ComputeImage("12345", "image1", new Uri("http://someuri.com/v2/images/12345"), new Uri("http://someuri.com/images/12345"), new Dictionary<string, string>(), "active", DateTime.Now, DateTime.Now, 10, 512, 100);

            this.ServicePocoClient.GetImageDelegate = (id) =>
            {
                Assert.AreEqual("12345", id);
                return Task.Factory.StartNew(() => img1);
            };

            var client = new ComputeServiceClient(GetValidCreds(), "Nova", CancellationToken.None, this.ServiceLocator);
            var image = await client.GetImage("12345");

            Assert.IsNotNull(image);
            Assert.AreEqual(img1, image);
        }
 public async Task UpdateImageMetadataWithNullMetadataThrows()
 {
     var client = new ComputeServiceClient(GetValidCreds(), "Nova", CancellationToken.None, this.ServiceLocator);
     await client.UpdateImageMetadata("12345", null);
 }
 public async Task GetImageWithNullImageIdThrows()
 {
     var client = new ComputeServiceClient(GetValidCreds(), "Nova", CancellationToken.None, this.ServiceLocator);
     await client.GetImage(null);
 }
        public async Task CanGetKeyPair()
        {
            var keyName = "1";
            var expKeyPair1 = new ComputeKeyPair(keyName, "ABCDEF", "12345");

            this.ServicePocoClient.GetKeyPairDelegate = (name) =>
            {
                Assert.AreEqual(keyName, name);
                return Task.Factory.StartNew(() => expKeyPair1);
            };

            var client = new ComputeServiceClient(GetValidCreds(), "Nova", CancellationToken.None, this.ServiceLocator);
            var keyPair = await client.GetKeyPair(keyName);

            Assert.IsNotNull(keyPair);
            Assert.AreEqual(expKeyPair1, keyPair);
        }
        public async Task CanGetImageMetadata()
        {
            var meta = new Dictionary<string, string>() { { "item1", "value1" } };

            this.ServicePocoClient.GetImageMetadataDelegate = (id) =>
            {
                Assert.AreEqual("12345", id);
                return Task.Factory.StartNew(() => (IDictionary<string, string>)meta);
            };

            var client = new ComputeServiceClient(GetValidCreds(), "Nova", CancellationToken.None, this.ServiceLocator);
            var metadata = await client.GetImageMetadata("12345");

            Assert.IsNotNull(metadata);
            Assert.AreEqual(meta, metadata);
        }
        public async Task CanGetFlavor()
        {
            var expectedFlavor = new ComputeFlavor("1", "m1.tiny", "512", "2", "10", new Uri("http://someuri.com/v2/flavors/1"),
                new Uri("http://someuri.com/flavors/1"), new Dictionary<string, string>());

            this.ServicePocoClient.GetFlavorDelegate = (id) =>
            {
                Assert.AreEqual("1", id);
                return Task.Factory.StartNew(() => expectedFlavor);
            };

            var client = new ComputeServiceClient(GetValidCreds(), "Nova", CancellationToken.None, this.ServiceLocator);
            var flavor = await client.GetFlavor("1");
            
            Assert.IsNotNull(flavor);
            Assert.AreEqual(expectedFlavor, flavor);
        }
        public async Task CanCreateServerWithoutKeyName()
        {
            var serverName = "MyServer";
            var imageId = "56789";
            var flavorId = "2";
            var networkId = "98765";
            var adminPassword = "******";
            var expServer = new ComputeServer("1235", serverName, adminPassword, new Uri("http://someuri.com/v2/servers/12345"),
                new Uri("http://someuri.com/servers/12345"), new Dictionary<string, string>());

            this.ServicePocoClient.CreateServerDelegate = (name, imgId, flvId, ntwId, key, groups) =>
            {
                Assert.AreEqual(serverName, name);
                Assert.AreEqual(imageId, imgId);
                Assert.AreEqual(flavorId, flvId);
                Assert.AreEqual(networkId, ntwId);
                Assert.AreEqual(string.Empty, key);
                Assert.IsTrue(groups.Any(g => g == "default"));
                return Task.Factory.StartNew(() => expServer);
            };

            var client = new ComputeServiceClient(GetValidCreds(), "Nova", CancellationToken.None, this.ServiceLocator);
            var server = await client.CreateServer(serverName, imageId, flavorId, networkId, new List<string>() { "default" });

            Assert.IsNotNull(server);
            Assert.AreEqual("1235", server.Id);
            Assert.AreEqual(adminPassword, server.AdminPassword);
        }