public void CanParseValidFloatingIpsJsonPayloadWithMultipleIps()
        {
            var validMultipleIpJsonFixture = @"{{ ""floatingips"": [ {0} ] }}";
            var firstIp  = CreateFloatingIpJsonFixtrue("12345", "172.0.0.1", FloatingIpStatus.Active);
            var secondIp = CreateFloatingIpJsonFixtrue("54321", "172.0.0.2", FloatingIpStatus.Down);

            var validMultipleIpsJson = string.Format(validMultipleIpJsonFixture,
                                                     string.Join(",", new List <string>()
            {
                firstIp, secondIp
            }));

            var converter   = new FloatingIpPayloadConverter();
            var floatingIps = converter.ConvertFloatingIps(validMultipleIpsJson).ToList();

            Assert.AreEqual(2, floatingIps.Count());
            var ip1 =
                floatingIps.First(o => string.Equals(o.Id, "12345", StringComparison.InvariantCultureIgnoreCase));
            var ip2 =
                floatingIps.First(o => string.Equals(o.Id, "54321", StringComparison.InvariantCultureIgnoreCase));

            Assert.IsNotNull(ip1);
            Assert.IsNotNull(ip2);

            Assert.AreEqual("12345", ip1.Id);
            Assert.AreEqual("172.0.0.1", ip1.FloatingIpAddress);
            Assert.AreEqual(FloatingIpStatus.Active, ip1.Status);

            Assert.AreEqual("54321", ip2.Id);
            Assert.AreEqual("172.0.0.2", ip2.FloatingIpAddress);
            Assert.AreEqual(FloatingIpStatus.Down, ip2.Status);
        }
        public void CanParseAnEmptyFloatingIpsPayload()
        {
            var payload = string.Empty;

            var converter = new FloatingIpPayloadConverter();
            var networks  = converter.ConvertFloatingIps(payload).ToList();

            Assert.AreEqual(0, networks.Count());
        }
        public void CanParseValidFloatingIpsPayloadWithEmptyJsonArray()
        {
            var emptyJsonArray = @"{ ""floatingips"": [ ] }";

            var converter = new FloatingIpPayloadConverter();
            var networks  = converter.ConvertFloatingIps(emptyJsonArray).ToList();

            Assert.AreEqual(0, networks.Count());
        }
        public void CanConvertValidFloatingIpJsonPayload()
        {
            var validSingleIpJsonPayload = @"{{ ""floatingip"": {0} }}";
            var firstIp = CreateFloatingIpJsonFixtrue("12345", "172.0.0.1", FloatingIpStatus.Active);

            var validSingleIpPayload = string.Format(validSingleIpJsonPayload,
                                                     string.Join(",", new List <string>()
            {
                firstIp
            }));

            var converter = new FloatingIpPayloadConverter();
            var ip1       = converter.Convert(validSingleIpPayload);

            Assert.IsNotNull(ip1);
            Assert.AreEqual("12345", ip1.Id);
            Assert.AreEqual("172.0.0.1", ip1.FloatingIpAddress);
            Assert.AreEqual(FloatingIpStatus.Active, ip1.Status);
        }
        public void CanConvertValidFloatingIpsJsonPayloadWithSingleNetwork()
        {
            var validSingleIpJsonPayload = @"{{ ""floatingips"": [ {0} ] }}";
            var firstIp = CreateFloatingIpJsonFixtrue("12345", "172.0.0.1", FloatingIpStatus.Active);

            var validSingleIpPayload = string.Format(validSingleIpJsonPayload,
                                                     string.Join(",", new List <string>()
            {
                firstIp
            }));

            var converter   = new FloatingIpPayloadConverter();
            var floatingIps = converter.ConvertFloatingIps(validSingleIpPayload).ToList();

            Assert.AreEqual(1, floatingIps.Count());
            var ip1 =
                floatingIps.First(o => string.Equals(o.Id, "12345", StringComparison.InvariantCultureIgnoreCase));

            Assert.IsNotNull(ip1);

            Assert.AreEqual("12345", ip1.Id);
            Assert.AreEqual("172.0.0.1", ip1.FloatingIpAddress);
            Assert.AreEqual(FloatingIpStatus.Active, ip1.Status);
        }
        public void CannotParseInvalidFloatingIpPayload()
        {
            var converter = new FloatingIpPayloadConverter();

            converter.Convert("NOT JSON");
        }
        public void CannotParseInvalidFloatingIpJsonPayload()
        {
            var converter = new FloatingIpPayloadConverter();

            converter.Convert("[ { \"SomeAtrib\" }]");
        }
        public void CannotParseANullFloatingIpPayload()
        {
            var converter = new FloatingIpPayloadConverter();

            converter.Convert(null);
        }