|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using IPFiltering;
using System.Net;
namespace IPFilterTests
{
[TestClass]
public class IPRangeTests
{
[TestMethod()]
public void TestIsMatch()
{
IPRange range;
range = IPRange.Parse("10.*.1.*");
Assert.IsTrue(range.IsMatch(IPAddress.Parse("10.1.1.11")));
Assert.IsFalse(range.IsMatch(IPAddress.Parse("10.1.12.11")));
range = IPRange.Parse("192.168.*.1");
Assert.IsTrue(range.IsMatch(IPAddress.Parse("192.168.3.1")));
Assert.IsFalse(range.IsMatch(IPAddress.Parse("192.68.12.1")));
range = IPRange.Parse("192.168.1.0/24");
Assert.IsTrue(range.IsMatch(IPAddress.Parse("192.168.1.1")));
Assert.IsFalse(range.IsMatch(IPAddress.Parse("192.68.12.1")));
}
[TestMethod()]
public void TestParse()
{
IPRange range;
string value, expectedValue;
expectedValue = "10.*.1.*";
range = IPRange.Parse(expectedValue);
value = range.ToString();
Assert.AreEqual(expectedValue, value);
expectedValue = "192.168.*.1";
range = IPRange.Parse(expectedValue);
value = range.ToString();
Assert.AreEqual(expectedValue, value);
expectedValue = "192.168.1.*";
range = IPRange.Parse(expectedValue);
value = range.ToString();
Assert.AreEqual(expectedValue, value);
expectedValue = "192.168.1.0/24";
range = IPRange.Parse(expectedValue);
value = range.ToString();
Assert.AreEqual(expectedValue, value);
expectedValue = "192.168.1.0/24";
range = IPRange.Parse("192.168.1.1/24");
value = range.ToString();
Assert.AreEqual(expectedValue, value);
}
[TestMethod()]
public void TestGetAddresses()
{
IPRange range = IPRange.Parse("192.168.0.0/24");
uint index=0;
foreach (uint value in range.GetAddressValues())
{
Assert.AreEqual(index, value >> 24);
index++;
}
}
[TestMethod()]
public void TestCount()
{
IPRange range;
int exceptedValue;
exceptedValue = 256;
range = IPRange.Parse("192.168.0.0/24");
Assert.AreEqual(exceptedValue, range.Count);
exceptedValue = 65536;
range = IPRange.Parse("192.168.0.0/16");
Assert.AreEqual(exceptedValue, range.Count);
exceptedValue = 33554432;
range = IPRange.Parse("10.0.0.0/7");
Assert.AreEqual(exceptedValue, range.Count);
exceptedValue = 256;
range = IPRange.Parse("192.168.0.*");
Assert.AreEqual(exceptedValue, range.Count);
}
[TestMethod()]
public void TestCreate()
{
IPRange range;
string expectedValue;
expectedValue = "192.168.1.0/24";
range = IPRange.Create(IPAddress.Parse("192.168.1.1"), IPAddress.Parse("255.255.255.0"));
Assert.AreEqual(expectedValue, range.ToString());
expectedValue = "192.168.1.0/24";
range = IPRange.Create(IPAddress.Parse("192.168.1.110"), 24);
Assert.AreEqual(expectedValue, range.ToString());
}
[TestMethod()]
public void TestEquals()
{
IPRange x, y;
x = IPRange.Create(IPAddress.Parse("192.168.1.0"), 24);
y = IPRange.Parse("192.168.1.1/24");
Assert.AreEqual(x, y);
}
[TestMethod()]
public void TestGetHashCode()
{
IPRange x, y;
x = IPRange.Create(IPAddress.Parse("192.168.1.0"), 24);
y = IPRange.Parse("192.168.1.1/24");
Assert.AreEqual(x.GetHashCode(), y.GetHashCode());
}
[TestMethod()]
public void TestToString()
{
IPRange range;
string value, expectedValue;
expectedValue = "0.0.0.0";
range = new IPRange();
value = range.ToString();
Assert.AreEqual(expectedValue, value);
expectedValue = "10.*.1.*";
range = IPRange.Parse(expectedValue);
value = range.ToString();
Assert.AreEqual(expectedValue, value);
expectedValue = "192.168.*.1";
range = IPRange.Parse(expectedValue);
value = range.ToString();
Assert.AreEqual(expectedValue, value);
expectedValue = "192.168.1.*";
range = IPRange.Parse(expectedValue);
value = range.ToString();
Assert.AreEqual(expectedValue, value);
expectedValue = "192.168.1.0/24";
range = IPRange.Parse(expectedValue);
value = range.ToString();
Assert.AreEqual(expectedValue, value);
expectedValue = "192.168.1.0/24";
range = IPRange.Parse("192.168.1.1/24");
value = range.ToString();
Assert.AreEqual(expectedValue, value);
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.