1
0

Adding support for .NET 8.0 LTS, renaming private fields to start with underscore

This commit is contained in:
2023-12-29 01:58:40 +01:00
parent 8bd511a936
commit 99d3f7758a
59 changed files with 922 additions and 871 deletions

View File

@@ -22,28 +22,28 @@ namespace UnitTests.AspNetCore.Attributes
[System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
public class BasicAuthenticationAttributeTests
{
private Mock<IHeaderDictionary> requestHeaderMock;
private Mock<IHeaderDictionary> responseHeaderMock;
private Mock<IHeaderDictionary> _requestHeaderMock;
private Mock<IHeaderDictionary> _responseHeaderMock;
private Mock<HttpRequest> requestMock;
private Mock<HttpResponse> responseMock;
private Mock<HttpRequest> _requestMock;
private Mock<HttpResponse> _responseMock;
private Mock<HttpContext> contextMock;
private Mock<HttpContext> _contextMock;
private Dictionary<string, string> requestHeaders;
private string validatorRealm;
private ClaimsPrincipal validatorResult;
private Dictionary<string, string> _requestHeaders;
private string _validatorRealm;
private ClaimsPrincipal _validatorResult;
private string responseHeaderAuthCallback;
private string _responseHeaderAuthCallback;
[TestInitialize]
public void InitializeTest()
{
requestHeaders = new Dictionary<string, string>();
validatorRealm = null;
validatorResult = null;
_requestHeaders = [];
_validatorRealm = null;
_validatorResult = null;
responseHeaderAuthCallback = null;
_responseHeaderAuthCallback = null;
}
[TestMethod]
@@ -55,7 +55,7 @@ namespace UnitTests.AspNetCore.Attributes
Username = "user",
Password = "password"
};
requestHeaders.Add("Authorization", $"Basic {Convert.ToBase64String(Encoding.UTF8.GetBytes($"{attribute.Username}:{attribute.Password}"))}");
_requestHeaders.Add("Authorization", $"Basic {Convert.ToBase64String(Encoding.UTF8.GetBytes($"{attribute.Username}:{attribute.Password}"))}");
var context = GetContext();
@@ -64,7 +64,7 @@ namespace UnitTests.AspNetCore.Attributes
// assert
Assert.IsNull(context.Result);
Assert.IsTrue(string.IsNullOrWhiteSpace(responseHeaderAuthCallback));
Assert.IsTrue(string.IsNullOrWhiteSpace(_responseHeaderAuthCallback));
}
[TestMethod]
@@ -72,8 +72,8 @@ namespace UnitTests.AspNetCore.Attributes
{
// arrange
var attribute = new BasicAuthenticationAttribute();
requestHeaders.Add("Authorization", $"Basic {Convert.ToBase64String(Encoding.UTF8.GetBytes($"{attribute.Username}:{attribute.Password}"))}");
validatorResult = new ClaimsPrincipal();
_requestHeaders.Add("Authorization", $"Basic {Convert.ToBase64String(Encoding.UTF8.GetBytes($"{attribute.Username}:{attribute.Password}"))}");
_validatorResult = new ClaimsPrincipal();
var context = GetContext(hasValidator: true);
@@ -82,7 +82,7 @@ namespace UnitTests.AspNetCore.Attributes
// assert
Assert.IsNull(context.Result);
Assert.IsTrue(string.IsNullOrWhiteSpace(responseHeaderAuthCallback));
Assert.IsTrue(string.IsNullOrWhiteSpace(_responseHeaderAuthCallback));
}
[TestMethod]
@@ -101,7 +101,7 @@ namespace UnitTests.AspNetCore.Attributes
// assert
Assert.IsNull(context.Result);
Assert.IsTrue(string.IsNullOrWhiteSpace(responseHeaderAuthCallback));
Assert.IsTrue(string.IsNullOrWhiteSpace(_responseHeaderAuthCallback));
}
[TestMethod]
@@ -123,8 +123,8 @@ namespace UnitTests.AspNetCore.Attributes
Assert.IsTrue(context.Result is StatusCodeResult);
Assert.AreEqual(401, ((StatusCodeResult)context.Result).StatusCode);
Assert.IsFalse(string.IsNullOrWhiteSpace(responseHeaderAuthCallback));
Assert.AreEqual("Basic", responseHeaderAuthCallback);
Assert.IsFalse(string.IsNullOrWhiteSpace(_responseHeaderAuthCallback));
Assert.AreEqual("Basic", _responseHeaderAuthCallback);
}
[TestMethod]
@@ -147,8 +147,8 @@ namespace UnitTests.AspNetCore.Attributes
Assert.IsTrue(context.Result is StatusCodeResult);
Assert.AreEqual(401, ((StatusCodeResult)context.Result).StatusCode);
Assert.IsFalse(string.IsNullOrWhiteSpace(responseHeaderAuthCallback));
Assert.AreEqual("Basic realm=\"re:alm\"", responseHeaderAuthCallback);
Assert.IsFalse(string.IsNullOrWhiteSpace(_responseHeaderAuthCallback));
Assert.AreEqual("Basic realm=\"re:alm\"", _responseHeaderAuthCallback);
}
[TestMethod]
@@ -160,7 +160,7 @@ namespace UnitTests.AspNetCore.Attributes
Username = "user",
Password = "password"
};
requestHeaders.Add("Authorization", $"Basic {Convert.ToBase64String(Encoding.UTF8.GetBytes($"{attribute.Username}a:{attribute.Password}"))}");
_requestHeaders.Add("Authorization", $"Basic {Convert.ToBase64String(Encoding.UTF8.GetBytes($"{attribute.Username}a:{attribute.Password}"))}");
var context = GetContext();
// act
@@ -171,8 +171,8 @@ namespace UnitTests.AspNetCore.Attributes
Assert.IsTrue(context.Result is StatusCodeResult);
Assert.AreEqual(401, ((StatusCodeResult)context.Result).StatusCode);
Assert.IsFalse(string.IsNullOrWhiteSpace(responseHeaderAuthCallback));
Assert.AreEqual("Basic", responseHeaderAuthCallback);
Assert.IsFalse(string.IsNullOrWhiteSpace(_responseHeaderAuthCallback));
Assert.AreEqual("Basic", _responseHeaderAuthCallback);
}
[TestMethod]
@@ -184,7 +184,7 @@ namespace UnitTests.AspNetCore.Attributes
Username = "user",
Password = "password"
};
requestHeaders.Add("Authorization", $"Basic {Convert.ToBase64String(Encoding.UTF8.GetBytes($"{attribute.Username}:{attribute.Password}a"))}");
_requestHeaders.Add("Authorization", $"Basic {Convert.ToBase64String(Encoding.UTF8.GetBytes($"{attribute.Username}:{attribute.Password}a"))}");
var context = GetContext();
// act
@@ -195,8 +195,8 @@ namespace UnitTests.AspNetCore.Attributes
Assert.IsTrue(context.Result is StatusCodeResult);
Assert.AreEqual(401, ((StatusCodeResult)context.Result).StatusCode);
Assert.IsFalse(string.IsNullOrWhiteSpace(responseHeaderAuthCallback));
Assert.AreEqual("Basic", responseHeaderAuthCallback);
Assert.IsFalse(string.IsNullOrWhiteSpace(_responseHeaderAuthCallback));
Assert.AreEqual("Basic", _responseHeaderAuthCallback);
}
[TestMethod]
@@ -207,7 +207,7 @@ namespace UnitTests.AspNetCore.Attributes
{
Realm = "attribute"
};
requestHeaders.Add("Authorization", $"Basic {Convert.ToBase64String(Encoding.UTF8.GetBytes($"{attribute.Username}:{attribute.Password}"))}");
_requestHeaders.Add("Authorization", $"Basic {Convert.ToBase64String(Encoding.UTF8.GetBytes($"{attribute.Username}:{attribute.Password}"))}");
var context = GetContext(hasValidator: true);
// act
@@ -218,17 +218,17 @@ namespace UnitTests.AspNetCore.Attributes
Assert.IsTrue(context.Result is StatusCodeResult);
Assert.AreEqual(401, ((StatusCodeResult)context.Result).StatusCode);
Assert.IsFalse(string.IsNullOrWhiteSpace(responseHeaderAuthCallback));
Assert.AreEqual("Basic realm=\"attribute\"", responseHeaderAuthCallback);
Assert.IsFalse(string.IsNullOrWhiteSpace(_responseHeaderAuthCallback));
Assert.AreEqual("Basic realm=\"attribute\"", _responseHeaderAuthCallback);
}
[TestMethod]
public async Task ShouldAskOnValidatorWithRealmOnValidator()
{
// arrange
validatorRealm = "validator";
_validatorRealm = "validator";
var attribute = new BasicAuthenticationAttribute();
requestHeaders.Add("Authorization", $"Basic {Convert.ToBase64String(Encoding.UTF8.GetBytes($"{attribute.Username}:{attribute.Password}"))}");
_requestHeaders.Add("Authorization", $"Basic {Convert.ToBase64String(Encoding.UTF8.GetBytes($"{attribute.Username}:{attribute.Password}"))}");
var context = GetContext(hasValidator: true);
// act
@@ -239,8 +239,8 @@ namespace UnitTests.AspNetCore.Attributes
Assert.IsTrue(context.Result is StatusCodeResult);
Assert.AreEqual(401, ((StatusCodeResult)context.Result).StatusCode);
Assert.IsFalse(string.IsNullOrWhiteSpace(responseHeaderAuthCallback));
Assert.AreEqual("Basic realm=\"validator\"", responseHeaderAuthCallback);
Assert.IsFalse(string.IsNullOrWhiteSpace(_responseHeaderAuthCallback));
Assert.AreEqual("Basic realm=\"validator\"", _responseHeaderAuthCallback);
}
[TestMethod]
@@ -248,7 +248,7 @@ namespace UnitTests.AspNetCore.Attributes
{
// arrange
var attribute = new BasicAuthenticationAttribute();
requestHeaders.Add("Authorization", $"Basic {Convert.ToBase64String(Encoding.UTF8.GetBytes($"{attribute.Username}"))}");
_requestHeaders.Add("Authorization", $"Basic {Convert.ToBase64String(Encoding.UTF8.GetBytes($"{attribute.Username}"))}");
var context = GetContext();
// act
@@ -262,34 +262,38 @@ namespace UnitTests.AspNetCore.Attributes
private AuthorizationFilterContext GetContext(bool isAnonymousAllowed = false, bool hasValidator = false)
{
requestHeaderMock = new Mock<IHeaderDictionary>();
foreach (var header in requestHeaders)
_requestHeaderMock = new Mock<IHeaderDictionary>();
foreach (var header in _requestHeaders)
{
requestHeaderMock
StringValues outVal = header.Value;
_requestHeaderMock
.Setup(h => h.ContainsKey(header.Key))
.Returns(true);
requestHeaderMock
_requestHeaderMock
.Setup(h => h[header.Key])
.Returns(header.Value);
_requestHeaderMock
.Setup(h => h.TryGetValue(header.Key, out outVal))
.Returns(true);
}
responseHeaderMock = new Mock<IHeaderDictionary>();
responseHeaderMock
.SetupSet(h => h["WWW-Authenticate"] = It.IsAny<StringValues>())
.Callback<string, StringValues>((key, value) =>
_responseHeaderMock = new Mock<IHeaderDictionary>();
_responseHeaderMock
.SetupSet(h => h.WWWAuthenticate = It.IsAny<StringValues>())
.Callback<StringValues>((value) =>
{
responseHeaderAuthCallback = value;
_responseHeaderAuthCallback = value;
});
requestMock = new Mock<HttpRequest>();
requestMock
_requestMock = new Mock<HttpRequest>();
_requestMock
.Setup(r => r.Headers)
.Returns(requestHeaderMock.Object);
.Returns(_requestHeaderMock.Object);
responseMock = new Mock<HttpResponse>();
responseMock
_responseMock = new Mock<HttpResponse>();
_responseMock
.Setup(r => r.Headers)
.Returns(responseHeaderMock.Object);
.Returns(_responseHeaderMock.Object);
var requestServicesMock = new Mock<IServiceProvider>();
@@ -298,10 +302,10 @@ namespace UnitTests.AspNetCore.Attributes
var validatorMock = new Mock<IBasicAuthenticationValidator>();
validatorMock
.Setup(v => v.Realm)
.Returns(validatorRealm);
.Returns(_validatorRealm);
validatorMock
.Setup(v => v.ValidateAsync(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<IPAddress>(), It.IsAny<CancellationToken>()))
.ReturnsAsync(validatorResult);
.ReturnsAsync(_validatorResult);
requestServicesMock
.Setup(rs => rs.GetService(typeof(IBasicAuthenticationValidator)))
@@ -313,20 +317,20 @@ namespace UnitTests.AspNetCore.Attributes
.Setup(ci => ci.RemoteIpAddress)
.Returns(IPAddress.Loopback);
contextMock = new Mock<HttpContext>();
contextMock
_contextMock = new Mock<HttpContext>();
_contextMock
.Setup(c => c.Request)
.Returns(requestMock.Object);
contextMock
.Returns(_requestMock.Object);
_contextMock
.Setup(c => c.Response)
.Returns(responseMock.Object);
contextMock
.Returns(_responseMock.Object);
_contextMock
.Setup(c => c.RequestServices)
.Returns(requestServicesMock.Object);
contextMock
_contextMock
.Setup(c => c.Connection)
.Returns(connectionInfoMock.Object);
contextMock
_contextMock
.Setup(c => c.RequestAborted)
.Returns(CancellationToken.None);
@@ -341,7 +345,7 @@ namespace UnitTests.AspNetCore.Attributes
return new AuthorizationFilterContext(new ActionContext
{
HttpContext = contextMock.Object,
HttpContext = _contextMock.Object,
RouteData = routeDataMock.Object,
ActionDescriptor = actionDescriptor,
}, new List<IFilterMetadata>());

View File

@@ -16,20 +16,20 @@ namespace UnitTests.AspNetCore.Attributes
[System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
public class IPAllowListAttributeTests
{
private Dictionary<string, string> requestHeaders;
private Dictionary<object, object> itemsCallback;
private string configKey;
private bool configExists;
private List<string> allowedIpsConfig;
private Dictionary<string, string> _requestHeaders;
private Dictionary<object, object> _itemsCallback;
private string _configKey;
private bool _configExists;
private List<string> _allowedIpsConfig;
[TestInitialize]
public void InitializeTest()
{
requestHeaders = new Dictionary<string, string>();
itemsCallback = new Dictionary<object, object>();
configKey = null;
configExists = false;
allowedIpsConfig = new List<string>();
_requestHeaders = [];
_itemsCallback = [];
_configKey = null;
_configExists = false;
_allowedIpsConfig = [];
}
[TestMethod]
@@ -48,8 +48,8 @@ namespace UnitTests.AspNetCore.Attributes
Assert.IsTrue(context.Result is StatusCodeResult);
Assert.AreEqual(403, ((StatusCodeResult)context.Result).StatusCode);
Assert.AreEqual(1, itemsCallback.Count);
Assert.AreEqual(remote, itemsCallback["RemoteAddress"]);
Assert.AreEqual(1, _itemsCallback.Count);
Assert.AreEqual(remote, _itemsCallback["RemoteAddress"]);
}
[TestMethod]
@@ -71,8 +71,8 @@ namespace UnitTests.AspNetCore.Attributes
Assert.IsTrue(context.Result is StatusCodeResult);
Assert.AreEqual(403, ((StatusCodeResult)context.Result).StatusCode);
Assert.AreEqual(1, itemsCallback.Count);
Assert.AreEqual(remote, itemsCallback["RemoteAddress"]);
Assert.AreEqual(1, _itemsCallback.Count);
Assert.AreEqual(remote, _itemsCallback["RemoteAddress"]);
}
[TestMethod]
@@ -87,8 +87,8 @@ namespace UnitTests.AspNetCore.Attributes
// assert
Assert.IsNull(context.Result);
Assert.AreEqual(1, itemsCallback.Count);
Assert.AreEqual(IPAddress.Loopback, itemsCallback["RemoteAddress"]);
Assert.AreEqual(1, _itemsCallback.Count);
Assert.AreEqual(IPAddress.Loopback, _itemsCallback["RemoteAddress"]);
}
[TestMethod]
@@ -109,8 +109,8 @@ namespace UnitTests.AspNetCore.Attributes
Assert.IsTrue(context.Result is StatusCodeResult);
Assert.AreEqual(403, ((StatusCodeResult)context.Result).StatusCode);
Assert.AreEqual(1, itemsCallback.Count);
Assert.AreEqual(IPAddress.Loopback, itemsCallback["RemoteAddress"]);
Assert.AreEqual(1, _itemsCallback.Count);
Assert.AreEqual(IPAddress.Loopback, _itemsCallback["RemoteAddress"]);
}
[DataTestMethod]
@@ -142,22 +142,22 @@ namespace UnitTests.AspNetCore.Attributes
Assert.AreEqual(403, ((StatusCodeResult)context.Result).StatusCode);
}
Assert.AreEqual(1, itemsCallback.Count);
Assert.AreEqual(remote, itemsCallback["RemoteAddress"]);
Assert.AreEqual(1, _itemsCallback.Count);
Assert.AreEqual(remote, _itemsCallback["RemoteAddress"]);
}
[TestMethod]
public void ShouldAllowLocalAccessConfig()
{
// arrange
configKey = "White:List";
configExists = true;
allowedIpsConfig.Add("127.0.0.0/8");
allowedIpsConfig.Add("192.168.178.10");
_configKey = "White:List";
_configExists = true;
_allowedIpsConfig.Add("127.0.0.0/8");
_allowedIpsConfig.Add("192.168.178.10");
var attribute = new IPAllowListAttribute
{
AllowLocalAccess = true,
ConfigurationKey = configKey
ConfigurationKey = _configKey
};
var context = GetContext();
@@ -166,22 +166,22 @@ namespace UnitTests.AspNetCore.Attributes
// assert
Assert.IsNull(context.Result);
Assert.AreEqual(1, itemsCallback.Count);
Assert.AreEqual(IPAddress.Loopback, itemsCallback["RemoteAddress"]);
Assert.AreEqual(1, _itemsCallback.Count);
Assert.AreEqual(IPAddress.Loopback, _itemsCallback["RemoteAddress"]);
}
[TestMethod]
public void ShouldDenyLocalAccessConfig()
{
// arrange
configKey = "White:List";
configExists = true;
allowedIpsConfig.Add("");
allowedIpsConfig.Add("192.168.178.10");
_configKey = "White:List";
_configExists = true;
_allowedIpsConfig.Add("");
_allowedIpsConfig.Add("192.168.178.10");
var attribute = new IPAllowListAttribute
{
AllowLocalAccess = false,
ConfigurationKey = configKey
ConfigurationKey = _configKey
};
var context = GetContext();
@@ -193,8 +193,8 @@ namespace UnitTests.AspNetCore.Attributes
Assert.IsTrue(context.Result is StatusCodeResult);
Assert.AreEqual(403, ((StatusCodeResult)context.Result).StatusCode);
Assert.AreEqual(1, itemsCallback.Count);
Assert.AreEqual(IPAddress.Loopback, itemsCallback["RemoteAddress"]);
Assert.AreEqual(1, _itemsCallback.Count);
Assert.AreEqual(IPAddress.Loopback, _itemsCallback["RemoteAddress"]);
}
[DataTestMethod]
@@ -203,13 +203,13 @@ namespace UnitTests.AspNetCore.Attributes
public void ShouldAllowSpecificAddressConfig(string address)
{
// arrange
configKey = "White:List";
configExists = true;
allowedIpsConfig.Add("192.168.178.10");
_configKey = "White:List";
_configExists = true;
_allowedIpsConfig.Add("192.168.178.10");
var attribute = new IPAllowListAttribute
{
AllowLocalAccess = false,
ConfigurationKey = configKey
ConfigurationKey = _configKey
};
var remote = IPAddress.Parse(address);
var context = GetContext(remote);
@@ -229,20 +229,20 @@ namespace UnitTests.AspNetCore.Attributes
Assert.AreEqual(403, ((StatusCodeResult)context.Result).StatusCode);
}
Assert.AreEqual(1, itemsCallback.Count);
Assert.AreEqual(remote, itemsCallback["RemoteAddress"]);
Assert.AreEqual(1, _itemsCallback.Count);
Assert.AreEqual(remote, _itemsCallback["RemoteAddress"]);
}
[TestMethod]
public void ShouldDenyOnMissingConfiguration()
{
// arrange
configKey = "White:List";
configExists = false;
_configKey = "White:List";
_configExists = false;
var attribute = new IPAllowListAttribute
{
AllowLocalAccess = false,
ConfigurationKey = configKey
ConfigurationKey = _configKey
};
var context = GetContext();
@@ -254,14 +254,14 @@ namespace UnitTests.AspNetCore.Attributes
Assert.IsTrue(context.Result is StatusCodeResult);
Assert.AreEqual(403, ((StatusCodeResult)context.Result).StatusCode);
Assert.AreEqual(1, itemsCallback.Count);
Assert.AreEqual(IPAddress.Loopback, itemsCallback["RemoteAddress"]);
Assert.AreEqual(1, _itemsCallback.Count);
Assert.AreEqual(IPAddress.Loopback, _itemsCallback["RemoteAddress"]);
}
private ActionExecutingContext GetContext(IPAddress remote = null)
{
var requestHeaderMock = new Mock<IHeaderDictionary>();
foreach (var header in requestHeaders)
foreach (var header in _requestHeaders)
{
requestHeaderMock
.Setup(h => h.ContainsKey(header.Key))
@@ -287,11 +287,11 @@ namespace UnitTests.AspNetCore.Attributes
var itemsMock = new Mock<IDictionary<object, object>>();
itemsMock
.SetupSet(i => i[It.IsAny<object>()] = It.IsAny<object>())
.Callback<object, object>((key, val) => itemsCallback.Add(key, val));
.Callback<object, object>((key, val) => _itemsCallback.Add(key, val));
var configurationMock = new Mock<IConfiguration>();
var children = new List<IConfigurationSection>();
foreach (string ipAddress in allowedIpsConfig)
foreach (string ipAddress in _allowedIpsConfig)
{
var csm = new Mock<IConfigurationSection>();
csm.Setup(cs => cs.Value).Returns(ipAddress);
@@ -305,8 +305,8 @@ namespace UnitTests.AspNetCore.Attributes
.Returns(children);
configurationMock
.Setup(c => c.GetSection(configKey))
.Returns(configExists ? configSectionMock.Object : null);
.Setup(c => c.GetSection(_configKey))
.Returns(_configExists ? configSectionMock.Object : null);
var requestServicesMock = new Mock<IServiceProvider>();
requestServicesMock

View File

@@ -16,20 +16,20 @@ namespace UnitTests.AspNetCore.Attributes
[System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
public class IPBlockListAttributeTests
{
private Dictionary<string, string> requestHeaders;
private Dictionary<object, object> itemsCallback;
private string configKey;
private bool configExists;
private List<string> restrictedIpsConfig;
private Dictionary<string, string> _requestHeaders;
private Dictionary<object, object> _itemsCallback;
private string _configKey;
private bool _configExists;
private List<string> _restrictedIpsConfig;
[TestInitialize]
public void InitializeTest()
{
requestHeaders = new Dictionary<string, string>();
itemsCallback = new Dictionary<object, object>();
configKey = null;
configExists = false;
restrictedIpsConfig = new List<string>();
_requestHeaders = [];
_itemsCallback = [];
_configKey = null;
_configExists = false;
_restrictedIpsConfig = [];
}
[TestMethod]
@@ -45,8 +45,8 @@ namespace UnitTests.AspNetCore.Attributes
// assert
Assert.IsNull(context.Result);
Assert.AreEqual(1, itemsCallback.Count);
Assert.AreEqual(remote, itemsCallback["RemoteAddress"]);
Assert.AreEqual(1, _itemsCallback.Count);
Assert.AreEqual(remote, _itemsCallback["RemoteAddress"]);
}
[TestMethod]
@@ -65,8 +65,8 @@ namespace UnitTests.AspNetCore.Attributes
// assert
Assert.IsNull(context.Result);
Assert.AreEqual(1, itemsCallback.Count);
Assert.AreEqual(remote, itemsCallback["RemoteAddress"]);
Assert.AreEqual(1, _itemsCallback.Count);
Assert.AreEqual(remote, _itemsCallback["RemoteAddress"]);
}
[TestMethod]
@@ -85,8 +85,8 @@ namespace UnitTests.AspNetCore.Attributes
// assert
Assert.IsNull(context.Result);
Assert.AreEqual(1, itemsCallback.Count);
Assert.AreEqual(IPAddress.Loopback, itemsCallback["RemoteAddress"]);
Assert.AreEqual(1, _itemsCallback.Count);
Assert.AreEqual(IPAddress.Loopback, _itemsCallback["RemoteAddress"]);
}
[TestMethod]
@@ -108,8 +108,8 @@ namespace UnitTests.AspNetCore.Attributes
Assert.IsTrue(context.Result is StatusCodeResult);
Assert.AreEqual(403, ((StatusCodeResult)context.Result).StatusCode);
Assert.AreEqual(1, itemsCallback.Count);
Assert.AreEqual(IPAddress.Loopback, itemsCallback["RemoteAddress"]);
Assert.AreEqual(1, _itemsCallback.Count);
Assert.AreEqual(IPAddress.Loopback, _itemsCallback["RemoteAddress"]);
}
[DataTestMethod]
@@ -141,22 +141,22 @@ namespace UnitTests.AspNetCore.Attributes
Assert.IsNull(context.Result);
}
Assert.AreEqual(1, itemsCallback.Count);
Assert.AreEqual(remote, itemsCallback["RemoteAddress"]);
Assert.AreEqual(1, _itemsCallback.Count);
Assert.AreEqual(remote, _itemsCallback["RemoteAddress"]);
}
[TestMethod]
public void ShouldAllowLocalAccessConfig()
{
// arrange
configKey = "Black:List";
configExists = true;
restrictedIpsConfig.Add("127.0.0.0/8");
restrictedIpsConfig.Add("192.168.178.10");
_configKey = "Black:List";
_configExists = true;
_restrictedIpsConfig.Add("127.0.0.0/8");
_restrictedIpsConfig.Add("192.168.178.10");
var attribute = new IPBlockListAttribute
{
BlockLocalAccess = false,
ConfigurationKey = configKey
ConfigurationKey = _configKey
};
var context = GetContext();
@@ -165,23 +165,23 @@ namespace UnitTests.AspNetCore.Attributes
// assert
Assert.IsNull(context.Result);
Assert.AreEqual(1, itemsCallback.Count);
Assert.AreEqual(IPAddress.Loopback, itemsCallback["RemoteAddress"]);
Assert.AreEqual(1, _itemsCallback.Count);
Assert.AreEqual(IPAddress.Loopback, _itemsCallback["RemoteAddress"]);
}
[TestMethod]
public void ShouldBlockLocalAccessConfig()
{
// arrange
configKey = "Black:List";
configExists = true;
restrictedIpsConfig.Add("");
restrictedIpsConfig.Add("127.0.0.0/8");
restrictedIpsConfig.Add("192.168.178.10");
_configKey = "Black:List";
_configExists = true;
_restrictedIpsConfig.Add("");
_restrictedIpsConfig.Add("127.0.0.0/8");
_restrictedIpsConfig.Add("192.168.178.10");
var attribute = new IPBlockListAttribute
{
BlockLocalAccess = true,
ConfigurationKey = configKey
ConfigurationKey = _configKey
};
var context = GetContext();
@@ -193,8 +193,8 @@ namespace UnitTests.AspNetCore.Attributes
Assert.IsTrue(context.Result is StatusCodeResult);
Assert.AreEqual(403, ((StatusCodeResult)context.Result).StatusCode);
Assert.AreEqual(1, itemsCallback.Count);
Assert.AreEqual(IPAddress.Loopback, itemsCallback["RemoteAddress"]);
Assert.AreEqual(1, _itemsCallback.Count);
Assert.AreEqual(IPAddress.Loopback, _itemsCallback["RemoteAddress"]);
}
[DataTestMethod]
@@ -203,14 +203,14 @@ namespace UnitTests.AspNetCore.Attributes
public void ShouldBlockSpecificAddressConfig(string address)
{
// arrange
configKey = "Black:List";
configExists = true;
restrictedIpsConfig.Add("127.0.0.0/8");
restrictedIpsConfig.Add("192.168.178.10");
_configKey = "Black:List";
_configExists = true;
_restrictedIpsConfig.Add("127.0.0.0/8");
_restrictedIpsConfig.Add("192.168.178.10");
var attribute = new IPBlockListAttribute
{
BlockLocalAccess = true,
ConfigurationKey = configKey
ConfigurationKey = _configKey
};
var remote = IPAddress.Parse(address);
var context = GetContext(remote);
@@ -230,20 +230,20 @@ namespace UnitTests.AspNetCore.Attributes
Assert.IsNull(context.Result);
}
Assert.AreEqual(1, itemsCallback.Count);
Assert.AreEqual(remote, itemsCallback["RemoteAddress"]);
Assert.AreEqual(1, _itemsCallback.Count);
Assert.AreEqual(remote, _itemsCallback["RemoteAddress"]);
}
[TestMethod]
public void ShouldAllowOnMissingConfiguration()
{
// arrange
configKey = "Black:List";
configExists = false;
_configKey = "Black:List";
_configExists = false;
var attribute = new IPBlockListAttribute
{
BlockLocalAccess = true,
ConfigurationKey = configKey
ConfigurationKey = _configKey
};
var context = GetContext();
@@ -253,14 +253,14 @@ namespace UnitTests.AspNetCore.Attributes
// assert
Assert.IsNull(context.Result);
Assert.AreEqual(1, itemsCallback.Count);
Assert.AreEqual(IPAddress.Loopback, itemsCallback["RemoteAddress"]);
Assert.AreEqual(1, _itemsCallback.Count);
Assert.AreEqual(IPAddress.Loopback, _itemsCallback["RemoteAddress"]);
}
private ActionExecutingContext GetContext(IPAddress remote = null)
{
var requestHeaderMock = new Mock<IHeaderDictionary>();
foreach (var header in requestHeaders)
foreach (var header in _requestHeaders)
{
requestHeaderMock
.Setup(h => h.ContainsKey(header.Key))
@@ -286,11 +286,11 @@ namespace UnitTests.AspNetCore.Attributes
var itemsMock = new Mock<IDictionary<object, object>>();
itemsMock
.SetupSet(i => i[It.IsAny<object>()] = It.IsAny<object>())
.Callback<object, object>((key, val) => itemsCallback.Add(key, val));
.Callback<object, object>((key, val) => _itemsCallback.Add(key, val));
var configurationMock = new Mock<IConfiguration>();
var children = new List<IConfigurationSection>();
foreach (string ipAddress in restrictedIpsConfig)
foreach (string ipAddress in _restrictedIpsConfig)
{
var csm = new Mock<IConfigurationSection>();
csm.Setup(cs => cs.Value).Returns(ipAddress);
@@ -304,8 +304,8 @@ namespace UnitTests.AspNetCore.Attributes
.Returns(children);
configurationMock
.Setup(c => c.GetSection(configKey))
.Returns(configExists ? configSectionMock.Object : null);
.Setup(c => c.GetSection(_configKey))
.Returns(_configExists ? configSectionMock.Object : null);
var requestServicesMock = new Mock<IServiceProvider>();
requestServicesMock