Added some IP address improvements
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
using System.Net;
|
||||
using System;
|
||||
using System.Net;
|
||||
|
||||
namespace AMWD.Common.Tests.Extensions
|
||||
{
|
||||
@@ -82,5 +83,135 @@ namespace AMWD.Common.Tests.Extensions
|
||||
// assert
|
||||
Assert.AreEqual("255.255.255.255", decremented.ToString());
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void ShouldReturnCleanMappedIPAddressString()
|
||||
{
|
||||
// arrange
|
||||
var mapped = IPAddress.Parse("::ffff:192.168.0.1");
|
||||
|
||||
// act
|
||||
string cleaned = mapped.ToCleanString();
|
||||
|
||||
// assert
|
||||
Assert.AreEqual("192.168.0.1", cleaned);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void ShouldReturnCleanIPv6String()
|
||||
{
|
||||
// arrange
|
||||
var ipv6 = IPAddress.Parse("2001:db8::1");
|
||||
|
||||
// act / assert
|
||||
Assert.AreEqual("2001:db8::1", ipv6.ToCleanString());
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
[DataRow(0, "0.0.0.0")]
|
||||
[DataRow(32, "255.255.255.255")]
|
||||
[DataRow(8, "255.0.0.0")]
|
||||
[DataRow(12, "255.240.0.0")]
|
||||
[DataRow(24, "255.255.255.0")]
|
||||
[DataRow(23, "255.255.254.0")]
|
||||
public void ShouldReturnSubnetMask(int cidr, string expected)
|
||||
{
|
||||
// arrange
|
||||
|
||||
// act
|
||||
string mask = cidr.ToSubnetMask().ToString();
|
||||
|
||||
// assert
|
||||
Assert.AreEqual(expected, mask);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
[DataRow(-1)]
|
||||
[DataRow(33)]
|
||||
public void ShouldThrowArgumentOutOfRangeExceptionForInvalidSubnetMask(int cidr)
|
||||
{
|
||||
// arrange
|
||||
|
||||
// act & assert
|
||||
Assert.ThrowsExactly<ArgumentOutOfRangeException>(() => cidr.ToSubnetMask());
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void ShouldObfuscateIPv4()
|
||||
{
|
||||
// arrange
|
||||
var ip = IPAddress.Parse("192.168.0.100");
|
||||
|
||||
// act
|
||||
string ob = ip.ObfuscateIpAddress();
|
||||
|
||||
// assert
|
||||
Assert.AreEqual("•.168.•.100", ob);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void ShouldObfuscateIpAddressWithCustomString()
|
||||
{
|
||||
// arrange
|
||||
var ip = IPAddress.Parse("10.0.0.5");
|
||||
|
||||
// act
|
||||
string ob = ip.ObfuscateIpAddress("X");
|
||||
|
||||
// assert
|
||||
Assert.AreEqual("X.0.X.5", ob);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void ShouldNotObfuscateLocalhostIPv4()
|
||||
{
|
||||
// arrange
|
||||
var ip = IPAddress.Parse("127.0.0.1");
|
||||
|
||||
// act
|
||||
string ob = ip.ObfuscateIpAddress();
|
||||
|
||||
// assert
|
||||
Assert.AreEqual("127.0.0.1", ob);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void ShouldObfuscatedMappedIP()
|
||||
{
|
||||
// arrange
|
||||
var ip = IPAddress.Parse("::ffff:10.0.0.5");
|
||||
|
||||
// act
|
||||
string ob = ip.ObfuscateIpAddress("X");
|
||||
|
||||
// assert
|
||||
Assert.AreEqual("X.0.X.5", ob);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void ShouldObfuscateIPv6()
|
||||
{
|
||||
// arrange
|
||||
var ip = IPAddress.Parse("2001:0db8:85a3:0000:0000:8a2e:0370:7334");
|
||||
|
||||
// act
|
||||
string ob = ip.ObfuscateIpAddress();
|
||||
|
||||
// assert
|
||||
Assert.AreEqual("•:db8:•::•:370:•", ob);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void ShouldNotObfuscateLocalhostIPv6()
|
||||
{
|
||||
// arrange
|
||||
var ip = IPAddress.Parse("::1");
|
||||
|
||||
// act
|
||||
string ob = ip.ObfuscateIpAddress();
|
||||
|
||||
// assert
|
||||
Assert.AreEqual("::1", ob);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user