Я пытаюсь написать свой первый модульный тест для одного из моих сервисных уровней. Я использую nunit и moq (последние версии).
У меня есть репо, но я буду издеваться над этим, это не проблема.
public void Create(string email, int id)
{
User user = Repo.GetUserByEmail(email); // mock this out. and return a mocked user.
if user != null)
{
// check permission
var clearence = GetPermissions(user, PermissionTypes.Add, id);
// some other stuff
}
}
private static List<Permissions> GetPermissions(User user, PermissionTypes PermissionNeeded, int id)
{
List<PermissionLevel> clearence = user.PermissionLevels.Where(u => u.id == id &&
(u.Permission.Name == PermissionNeeded || u.Permission.Name == PermissionTypes.Owner)).ToList();
return clearence;
}
Так вот, что у меня есть.
Теперь, что меня привлекает, так это разрешение. Я не уверен, как это сделать. Я не уверен, должен ли я создать пользовательский объект, у которого есть licenseLevels, который содержит идентификатор.
Я не уверен, смогу ли я сделать это, но сомневаюсь, потому что это личное.
Вторая проблема заключается в том, что я не уверен, как создать «id», поскольку «id» находится в классе домена, который имеет закрытый набор, потому что это был стандарт, используемый для nhibernate.
Так что я не уверен, как обойти это.