2009-10-08 11 views
5

Tengo un problema al usar la biblioteca Moq para simular un Enum dentro de mi proyecto. Estoy tratando de probar una clase y uno de los métodos acepta un ENum. ¿Hay alguna manera de hacer esto?Cómo utilizar la biblioteca MOQ para simular un ENum

Aquí es la enumeración que estoy tratando de burlarse:

public enum PermissionType 
{ 
    Create = 0, 
    Read = 1, 
    Update = 2, 
    Delete = 3, 
} 

Aquí está el código que estoy tratando de utilizar para crear la maqueta:

private static Mock<PermissionService> GetMockPermissionService(bool hasPermissions) 
{ 
    var mockPermissionService = new Mock<PermissionService>(); 

    mockPermissionService.Setup(x => x.HasPermission(It.IsAny<string>(), 
         **It.IsAny<PermissionType>()**)).Returns(hasPermissions); 

    return mockPermissionService; 
} 

Este es el error que recibo:

System.ArgumentException: configuración no válida en un miembro no reemplazable: x => x.HasPermis sión (It.IsAny(), It.IsAny())

también he intentado:

mockPermissionService.Setup(x => x.HasPermission(It.IsAny<string>(), 
          **It.IsAny<int>()**)).Returns(hasPermissions); 

mockPermissionService.Setup(x => x.HasPermission(It.IsAny<string>(), 
          **PermissionType.Read**)).Returns(hasPermissions); 

Cualquier ayuda se agradece ... significa

Respuesta

3

Este error que su HasPermission método en PermissionService debe ser virtual, así:

public virtual bool HasPermission(string name, PermissionType type) 
{ 
    // logic 
} 
+0

Gracias, esto funcionó! Resulta que ENum era solo un arenque rojo ... – Pat

Cuestiones relacionadas