diff --git a/src/libraries/System.Net.Primitives/src/System/Net/IPNetwork.cs b/src/libraries/System.Net.Primitives/src/System/Net/IPNetwork.cs
index 4a02fdb984a146..52bd0c8cb902a8 100644
--- a/src/libraries/System.Net.Primitives/src/System/Net/IPNetwork.cs
+++ b/src/libraries/System.Net.Primitives/src/System/Net/IPNetwork.cs
@@ -57,13 +57,6 @@ public IPNetwork(IPAddress baseAddress, int prefixLength)
static void ThrowArgumentOutOfRangeException() => throw new ArgumentOutOfRangeException(nameof(prefixLength));
}
- // Non-validating ctor
- private IPNetwork(IPAddress baseAddress, int prefixLength, bool _)
- {
- _baseAddress = baseAddress;
- PrefixLength = prefixLength;
- }
-
///
/// Determines whether a given is part of the network.
///
@@ -196,7 +189,7 @@ public static bool TryParse(ReadOnlySpan s, out IPNetwork result)
prefixLength <= GetMaxPrefixLength(address))
{
Debug.Assert(prefixLength >= 0); // Parsing with NumberStyles.None should ensure that prefixLength is always non-negative.
- result = new IPNetwork(address, prefixLength, false);
+ result = new IPNetwork(address, prefixLength);
return true;
}
}
@@ -224,7 +217,7 @@ public static bool TryParse(ReadOnlySpan utf8Text, out IPNetwork result)
prefixLength <= GetMaxPrefixLength(address))
{
Debug.Assert(prefixLength >= 0); // Parsing with NumberStyles.None should ensure that prefixLength is always non-negative.
- result = new IPNetwork(address, prefixLength, false);
+ result = new IPNetwork(address, prefixLength);
return true;
}
}
diff --git a/src/libraries/System.Net.Primitives/tests/FunctionalTests/IPNetworkTest.cs b/src/libraries/System.Net.Primitives/tests/FunctionalTests/IPNetworkTest.cs
index b73a2831b9a2d8..3547c24203de9d 100644
--- a/src/libraries/System.Net.Primitives/tests/FunctionalTests/IPNetworkTest.cs
+++ b/src/libraries/System.Net.Primitives/tests/FunctionalTests/IPNetworkTest.cs
@@ -76,18 +76,26 @@ private IPAddress GetBaseAddress(IPAddress address, int prefix)
_ => throw new ArgumentOutOfRangeException($"Unexpected address family {address.AddressFamily} of {address}.")
};
- [Theory]
- [MemberData(nameof(ValidIPNetworkData))]
- public void Constructor_Valid_Succeeds(string input)
+ private (IPAddress, IPAddress, int, string) ParseInput(string input)
{
string[] splitInput = input.Split('/');
IPAddress address = IPAddress.Parse(splitInput[0]);
int prefixLength = int.Parse(splitInput[1]);
+ IPAddress baseAddress = GetBaseAddress(address, prefixLength);
+ return (address, baseAddress, prefixLength, $"{baseAddress}/{prefixLength}");
+ }
+
+ [Theory]
+ [MemberData(nameof(ValidIPNetworkData))]
+ public void Constructor_Valid_Succeeds(string input)
+ {
+ var (address, baseAddress, prefixLength, toString) = ParseInput(input);
IPNetwork network = new IPNetwork(address, prefixLength);
- Assert.Equal(GetBaseAddress(address, prefixLength), network.BaseAddress);
+ Assert.Equal(baseAddress, network.BaseAddress);
Assert.Equal(prefixLength, network.PrefixLength);
+ Assert.Equal(toString, network.ToString());
}
[Fact]
@@ -155,8 +163,15 @@ public void Parse_ValidNetworkNotation_Succeeds(string input)
var stringParsedNetwork = IPNetwork.Parse(input);
var utf8ParsedNetwork = IPNetwork.Parse(utf8Bytes);
- Assert.Equal(input, stringParsedNetwork.ToString());
- Assert.Equal(input, utf8ParsedNetwork.ToString());
+ var (_, baseAddress, prefixLength, toString) = ParseInput(input);
+
+ Assert.Equal(baseAddress, stringParsedNetwork.BaseAddress);
+ Assert.Equal(prefixLength, stringParsedNetwork.PrefixLength);
+ Assert.Equal(toString, stringParsedNetwork.ToString());
+
+ Assert.Equal(baseAddress, utf8ParsedNetwork.BaseAddress);
+ Assert.Equal(prefixLength, utf8ParsedNetwork.PrefixLength);
+ Assert.Equal(toString, utf8ParsedNetwork.ToString());
}
[Theory]
@@ -165,11 +180,17 @@ public void TryParse_ValidNetworkNotation_Succeeds(string input)
{
byte[] utf8Bytes = Encoding.UTF8.GetBytes(input);
- Assert.True(IPNetwork.TryParse(input, out IPNetwork network));
- Assert.Equal(input, network.ToString());
+ var (_, baseAddress, prefixLength, toString) = ParseInput(input);
+
+ Assert.True(IPNetwork.TryParse(input, out IPNetwork stringParsedNetwork));
+ Assert.Equal(baseAddress, stringParsedNetwork.BaseAddress);
+ Assert.Equal(prefixLength, stringParsedNetwork.PrefixLength);
+ Assert.Equal(toString, stringParsedNetwork.ToString());
- Assert.True(IPNetwork.TryParse(utf8Bytes, out network));
- Assert.Equal(input, network.ToString());
+ Assert.True(IPNetwork.TryParse(utf8Bytes, out IPNetwork utf8ParsedNetwork));
+ Assert.Equal(baseAddress, utf8ParsedNetwork.BaseAddress);
+ Assert.Equal(prefixLength, utf8ParsedNetwork.PrefixLength);
+ Assert.Equal(toString, utf8ParsedNetwork.ToString());
}
[Fact]