Add RangeBan

This commit is contained in:
2025-05-25 01:47:34 +02:00
parent a784ec1ff8
commit e099ee5071
5 changed files with 231 additions and 0 deletions
+27
View File
@@ -0,0 +1,27 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
<LangVersion>latest</LangVersion>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="coverlet.collector" Version="6.0.2"/>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0"/>
<PackageReference Include="NUnit" Version="4.3.2" />
<PackageReference Include="NUnit.Analyzers" Version="4.4.0"/>
<PackageReference Include="NUnit3TestAdapter" Version="4.6.0"/>
</ItemGroup>
<ItemGroup>
<Using Include="NUnit.Framework"/>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\RangeBan\RangeBan.csproj" />
</ItemGroup>
</Project>
+61
View File
@@ -0,0 +1,61 @@
namespace RangeBan.Tests;
[TestFixture]
public class IpRangeTests
{
[Test]
public void IsInRange_WithNullInput_ReturnsFalse()
{
Assert.That(RangeBan.IsInRange("192.168.1.0/24", null), Is.False);
}
[Test]
public void IsInRange_WithEmptyInput_ReturnsFalse()
{
Assert.That(RangeBan.IsInRange("192.168.1.0/24", ""), Is.False);
}
[Test]
public void IsInRange_WithInvalidRange_ReturnsFalse()
{
Assert.That(RangeBan.IsInRange("invalid-range", "192.168.1.1"), Is.False);
}
[TestCase("192.168.1.0/24", "192.168.1.1", true)]
[TestCase("192.168.1.0/24", "192.168.1.254", true)]
[TestCase("192.168.1.0/24", "192.168.2.1", false)]
[TestCase("192.168.1.0/24", "10.0.0.1", false)]
[TestCase("176.2.0.0/16", "176.2.73.23", true)]
[TestCase("176.2.0.0/16", "176.2.70.50", true)]
public void IsInRange_WithCidrNotation_ReturnsExpectedResult(string range, string ip, bool expected)
{
Assert.That(RangeBan.IsInRange(range, ip), Is.EqualTo(expected));
}
[TestCase("192.168.2.0/33")]
[TestCase("192.168.1.0/invalid")]
public void IsInRange_WithInvalidCidrNotation_ReturnsFalse(string range)
{
Assert.That(RangeBan.IsInRange(range, "192.168.1.1"), Is.False);
}
[Test]
public void IsInRange_WithInvalidIpAddress_ThrowsArgumentException()
{
Assert.Throws<ArgumentException>(() => RangeBan.IsInRange("192.168.1.0/24", "invalid.ip.address"));
}
[TestCase("192.168.1.0/24", "192.168.1")]
[TestCase("192.168.1.0/24", "192.168.1.1.1")]
[TestCase("192.168.1.0/24", "not.an.ip.address")]
public void IsInRange_WithMalformedIpAddress_ThrowsArgumentException(string range, string ip)
{
Assert.Throws<ArgumentException>(() => RangeBan.IsInRange(range, ip));
}
[Test]
public void IsInRange_WithValidPublicIp_DoesNotThrow()
{
Assert.DoesNotThrow(() => RangeBan.IsInRange("192.168.1.0/24", "8.8.8.8"));
}
}