I'm having an issues unit testing the PermissionRequirementFilter below. This class was previously being DI'd into the unit test but something has changed and I'm unsure what's happened. It's complaining about the protection level of the class as it's an internal based class.
MainClass:
public class PermissionRequirementAttribute : TypeFilterAttribute
{
public PermissionRequirementAttribute(string permissions) : base(typeof(PermissionRequirementFilter))
{
Arguments = new object[]
{
Regex.Split(permissions, @",\s*").ToList()
};
}
}
internal class PermissionRequirementFilter : IAuthorizationFilter
{
private readonly IEnumerable<string> _requiredPermissions;
private readonly IOrganisationsServiceProxy _organisationsProxy;
public PermissionRequirementFilter(
IOrganisationsServiceProxy organisationsProxy,
IEnumerable<string> requiredPermissions)
{
_requiredPermissions = requiredPermissions;
_organisationsProxy = organisationsProxy;
}
public void OnAuthorization(AuthorizationFilterContext context)
{
}
}
TestConstructor:
The test class looks like the code below but the import isn't letting me DI the class into the test class.
public class PermissionRequirementAttributeTests
{
private readonly IEnumerable<string> _testPermissions;
private readonly PermissionRequirementFilter _permissionRequirementFilter;
private readonly Mock<IOrganisationsServiceProxy> _organisationProxy;
public PermissionRequirementAttributeTests()
{
_organisationProxy = new Mock<IOrganisationsServiceProxy>();
_testPermissions = new List<string> { "myPermission", "mySecondPermission", "myThirdPermission" };
_permissionRequirementFilter = new PermissionRequirementFilter(_organisationProxy.Object, _testPermissions);
}
}
What can I try to resolve this?