creé un método de extensión llamado HasContentPermission
en el System.Security.Principal.IIdentity
:¿Por qué mi método de extensión no aparece en mi clase de prueba?
namespace System.Security.Principal
{
public static class IdentityExtensions
{
public static bool HasContentPermission
(this IIdentity identity, int contentID)
{
// I do stuff here
return result;
}
}
}
Y lo llaman así:
bool hasPermission = User.Identity.HasPermission(contentID);
funciona como un encanto. Ahora quiero probarlo en una unidad. Para hacer eso, todo lo que realmente necesita hacer es llamar al método de extensión directa, por eso:
using System.Security.Principal;
namespace MyUnitTests
{
[TestMethod]
public void HasContentPermission_PermissionRecordExists_ReturnsTrue()
{
IIdentity identity;
bool result = identity.HasContentPermission(...
Pero no lo hará HasContentPermission
IntelliSense. Traté de crear una clase de stub que herede de IIdentity
, pero tampoco funcionó. ¿Por qué?
¿O estoy haciendo esto de la manera incorrecta?
Su sintaxis en el primer bloque de código es incorrecta - no puede definir un método en un ámbito de espacio de nombres ... ¿Puede poner su código actual? –
¿Está seguro de que su proyecto de prueba hace referencia al ensamblaje en el que vive su Método de extensión (en lugar de solo el espacio de nombre)? –
@Reed: edité la pregunta para agregar el código faltante. –