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);
        }
Beispiel #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());
        }
        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());
        }
Beispiel #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());
        }
        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());
        }
Beispiel #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());
        }
Beispiel #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());
        }
        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());
        }
Beispiel #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);
        }
Beispiel #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());
        }
Beispiel #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);
        }