public void CanParseValidServersJsonPayloadWithMultipleFlavors()
        {
            var validMultipleServersJsonFixture = @"{{ ""servers"": [ {0} ] }}";
            var firstServer = CreateServersSummaryJsonFixtrue("srv1", "1", "http://server.com/servers/1",
                                                              "http://server.com/v2/servers/1");
            var secondServer = CreateServersSummaryJsonFixtrue("srv2", "2", "http://server.com/servers/2",
                                                               "http://server.com/v2/servers/2");

            var validMultipleServersJson = string.Format(validMultipleServersJsonFixture,
                                                         string.Join(",", new List <string>()
            {
                firstServer, secondServer
            }));

            var converter = new ComputeServerPayloadConverter();
            var servers   = converter.ConvertServers(validMultipleServersJson).ToList();

            Assert.AreEqual(2, servers.Count());
            var srv1 =
                servers.First(o => string.Equals(o.Name, "srv1", StringComparison.InvariantCultureIgnoreCase));
            var srv2 =
                servers.First(o => string.Equals(o.Name, "srv2", StringComparison.InvariantCultureIgnoreCase));

            Assert.IsNotNull(srv1);
            Assert.IsNotNull(srv2);

            Assert.AreEqual("1", srv1.Id);
            Assert.AreEqual(new Uri("http://server.com/servers/1"), srv1.PermanentUri);
            Assert.AreEqual(new Uri("http://server.com/v2/servers/1"), srv1.PublicUri);

            Assert.AreEqual("2", srv2.Id);
            Assert.AreEqual(new Uri("http://server.com/servers/2"), srv2.PermanentUri);
            Assert.AreEqual(new Uri("http://server.com/v2/servers/2"), srv2.PublicUri);
        }
        public void CanParseAnEmptyServersPayload()
        {
            var payload = string.Empty;

            var converter  = new ComputeServerPayloadConverter();
            var containers = converter.ConvertServers(payload).ToList();

            Assert.AreEqual(0, containers.Count());
        }
        public void CanParseValidServersPayloadWithEmptyJsonArray()
        {
            var emptyJsonArray = @"{ ""servers"": [ ] }";

            var converter  = new ComputeServerPayloadConverter();
            var containers = converter.ConvertServers(emptyJsonArray).ToList();

            Assert.AreEqual(0, containers.Count());
        }
        public void CanConvertValidServersJsonPayloadWithSingleFlavor()
        {
            var validFlavorsJsonFixture = @"{{ ""servers"": [ {0} ] }}";
            var firstServer             = CreateServersSummaryJsonFixtrue("myserver", "1", "http://server.com/servers/1",
                                                                          "http://server.com/v2/servers/1");
            var validSingleServerPayload = string.Format(validFlavorsJsonFixture, firstServer);

            var converter = new ComputeServerPayloadConverter();
            var servers   = converter.ConvertServers(validSingleServerPayload).ToList();

            Assert.AreEqual(1, servers.Count());
            var srv1 =
                servers.First(o => string.Equals(o.Name, "myserver", StringComparison.InvariantCultureIgnoreCase));

            Assert.IsNotNull(srv1);

            Assert.AreEqual("1", srv1.Id);
            Assert.AreEqual(new Uri("http://server.com/servers/1"), srv1.PermanentUri);
            Assert.AreEqual(new Uri("http://server.com/v2/servers/1"), srv1.PublicUri);
        }
        public void CannotParseInvalidServersPayload()
        {
            var converter = new ComputeServerPayloadConverter();

            converter.ConvertServers("NOT JSON");
        }
        public void CannotParseInvalidServersJsonPayload()
        {
            var converter = new ComputeServerPayloadConverter();

            converter.ConvertServers("[ { \"SomeAtrib\" }]");
        }
        public void CannotParseANullServersPayload()
        {
            var converter = new ComputeServerPayloadConverter();

            converter.ConvertServers(null);
        }