Exemplo n.º 1
0
        public void TryCollapseAll_SubsetContainsAll_Test()
        {
            // Arrange
            var ranges = new[]
            {
                new IPAddressRange(IPAddress.Parse("192.168.1.0"), IPAddress.Parse("192.168.1.5")),
                new IPAddressRange(IPAddress.Parse("192.168.1.0"), IPAddress.Parse("192.168.1.20")),
                new IPAddressRange(IPAddress.Parse("192.168.1.8"), IPAddress.Parse("192.168.1.20"))
            };

            // Act
            var success = IPAddressRange.TryCollapseAll(ranges, out var results);

            // Assert
            Assert.True(success);
            Assert.NotNull(results);
            var collection = results.ToList();

            Assert.Single(collection);

            var result = collection.Single();

            Assert.Equal(IPAddress.Parse("192.168.1.0"), result.Head);
            Assert.Equal(IPAddress.Parse("192.168.1.20"), result.Tail);
        }
Exemplo n.º 2
0
        public void TryCollapseAllEmptyInputTest()
        {
            // Act
            IList <IPAddressRange> results;
            var success = IPAddressRange.TryCollapseAll(Enumerable.Empty <IPAddressRange>(), out results);

            // Assert
            Assert.IsTrue(success);
            Assert.IsFalse(results.Any());
        }
Exemplo n.º 3
0
        public void TryCollapseAll_EmptyInput_Test()
        {
            // Act
            var success = IPAddressRange.TryCollapseAll(Enumerable.Empty <IPAddressRange>(), out var results);

            // Assert
            Assert.True(success);
            Assert.NotNull(results);
            Assert.False(results.Any());
        }
Exemplo n.º 4
0
        public void TryCollapseAllWithGapsTest()
        {
            var ranges = new[]
            {
                new IPAddressRange(IPAddress.Parse("192.168.1.0"), IPAddress.Parse("192.168.1.5")),
                new IPAddressRange(IPAddress.Parse("192.168.1.7"), IPAddress.Parse("192.168.1.20")),
                new IPAddressRange(IPAddress.Parse("192.168.1.30"), IPAddress.Parse("192.168.1.35"))
            };

            IList <IPAddressRange> results;
            var success = IPAddressRange.TryCollapseAll(ranges, out results);

            Assert.IsTrue(success);
            Assert.AreEqual(3, results.Count);
            CollectionAssert.AreEquivalent(results, ranges.ToList());
        }
Exemplo n.º 5
0
        public void TryCollapse_MismatchedAddressFamilies_Test()
        {
            // Arrange
            var ranges = new[]
            {
                new IPAddressRange(IPAddress.Parse("192.168.1.0"), IPAddress.Parse("192.168.1.5")),
                new IPAddressRange(IPAddress.Parse("::"), IPAddress.Parse("abcd::ef00"))
            };

            // Act
            var success = IPAddressRange.TryCollapseAll(ranges, out var results);

            // Assert
            Assert.False(success);
            Assert.NotNull(results);
            Assert.False(results.Any());
        }
Exemplo n.º 6
0
        public void TryCollapseAllInvalidInputTest()
        {
            // Arrange
            var ranges = new[]
            {
                new IPAddressRange(IPAddress.Parse("192.168.1.0"), IPAddress.Parse("192.168.1.5")),
                new IPAddressRange(IPAddress.Parse("192.168.1.7"), null),
                new IPAddressRange(IPAddress.Parse("192.168.1.30"), IPAddress.Parse("192.168.1.35"))
            };

            // Act
            IList <IPAddressRange> results;
            var success = IPAddressRange.TryCollapseAll(ranges, out results);

            // Assert
            Assert.IsFalse(success);
            Assert.IsFalse(results.Any());
        }
Exemplo n.º 7
0
        public void TryCollapseAllDifferentAddressFamiliesTest()
        {
            // Arrange
            var ranges = new[]
            {
                new IPAddressRange(IPAddress.Parse("192.168.1.0"), IPAddress.Parse("192.168.1.5")),
                new IPAddressRange(IPAddress.Parse("::"), IPAddress.Parse("abcd::ef00")),
                new IPAddressRange(IPAddress.Parse("192.168.1.30"), IPAddress.Parse("192.168.1.35"))
            };

            // Act
            IList <IPAddressRange> results;
            var success = IPAddressRange.TryCollapseAll(ranges, out results);

            // Assert
            Assert.IsFalse(success);
            Assert.IsFalse(results.Any());
        }
Exemplo n.º 8
0
        public void TryCollapse_AllInvalidInput_Test()
        {
            // Arrange
            var ranges = new[]
            {
                new IPAddressRange(IPAddress.Parse("192.168.1.0"), IPAddress.Parse("192.168.1.5")),
                null,
                new IPAddressRange(IPAddress.Parse("192.168.1.30"), IPAddress.Parse("192.168.1.35"))
            };

            // Act
            var success = IPAddressRange.TryCollapseAll(ranges, out var results);

            // Assert
            Assert.False(success);
            Assert.NotNull(results);
            Assert.False(results.Any());
        }
Exemplo n.º 9
0
        public void TryCollapseAllSubsetContainsAllTest()
        {
            var ranges = new[]
            {
                new IPAddressRange(IPAddress.Parse("192.168.1.0"), IPAddress.Parse("192.168.1.5")),
                new IPAddressRange(IPAddress.Parse("192.168.1.0"), IPAddress.Parse("192.168.1.20")),
                new IPAddressRange(IPAddress.Parse("192.168.1.8"), IPAddress.Parse("192.168.1.20"))
            };

            IList <IPAddressRange> results;
            var success = IPAddressRange.TryCollapseAll(ranges, out results);

            Assert.IsTrue(success);
            Assert.AreEqual(1, results.Count);

            var result = results.First();

            Assert.AreEqual(IPAddress.Parse("192.168.1.0"), result.Head);
            Assert.AreEqual(IPAddress.Parse("192.168.1.20"), result.Tail);
        }
Exemplo n.º 10
0
        public void TryCollapseAll_WithGaps_Test()
        {
            // Arrange
            var ranges = new[]
            {
                new IPAddressRange(IPAddress.Parse("192.168.1.0"), IPAddress.Parse("192.168.1.5")),
                new IPAddressRange(IPAddress.Parse("192.168.1.7"), IPAddress.Parse("192.168.1.20")),
                new IPAddressRange(IPAddress.Parse("192.168.1.30"), IPAddress.Parse("192.168.1.35"))
            };

            // Act
            var success = IPAddressRange.TryCollapseAll(ranges, out var results);

            // Assert
            Assert.True(success);
            Assert.NotNull(results);
            var enumerable = results.ToList();

            Assert.Equal(3, enumerable.Count);
            Assert.Equal(enumerable, ranges.ToList());
        }
Exemplo n.º 11
0
        public void TryCollapseAll_Example()
        {
            // Arrange
            var ranges = new[]
            {
                new IPAddressRange(IPAddress.Parse("192.168.1.0"), IPAddress.Parse("192.168.1.5")),
                new IPAddressRange(IPAddress.Parse("192.168.1.6"), IPAddress.Parse("192.168.1.7")),
                new IPAddressRange(IPAddress.Parse("192.168.1.8"), IPAddress.Parse("192.168.1.20"))
            };

            // Act
            var success    = IPAddressRange.TryCollapseAll(ranges, out var results);
            var resultList = results?.ToList();

            // Assert
            Assert.True(success);
            Assert.NotNull(results);
            Assert.Single(resultList);

            var result = resultList.Single();

            Assert.Equal(IPAddress.Parse("192.168.1.0"), result.Head);
            Assert.Equal(IPAddress.Parse("192.168.1.20"), result.Tail);
        }