Как передать список параметров с помощью Moq

Я пытаюсь смоделировать метод, который принимает два параметра, сигнатура метода выглядит следующим образом:

Пользователь DoSomething (Пользователь, Список newRoleList);

Я хочу, чтобы этот метод возвращал что-то, только если параметры 'newRoleList' содержат некоторые предопределенные роли и определенное имя пользователя. Поэтому вместо использования It.IsAny<> я пытаюсь использовать It.Is<>. Проблема, с которой я сталкиваюсь, связана со вторым параметром, как я могу настроить этот второй параметр.

Я пытаюсь достичь чего-то вроде этого:

List<Role> roleList = new List<Role>()
            {
                new Role() { RoleName="RoleOne}, 
                new Role() { RoleName="RoleTwo"}
            };

mockComponent.Setup(x => x.UpdateUserRoles(It.Is<User>(user1 => user1.UserName == "DummyUser"),It.Is<List<Role>>(y=>y==roleList))).Returns(user);

Но это всегда возвращает "ноль". Если я изменяю второй параметр на It.IsAny>(), тогда он возвращает мне правильное значение.

Пожалуйста, предложите, как добиться этого, есть ли лучший способ для предоставления определенного списка в качестве параметра или что?

1 ответ

Решение

Наконец, я нашел решение, мне нужно указать в моей настройке критерии для обработки двух списков равными.

Я изменил код на:

mockComponent.Setup (x => x.UpdateUserRoles (It.Is (user1 => user1.UserName == "DummyUser"), It.Is> (y => y [0].RoleName == "RoleOne" && y [ 1].RoleName == "RoleTwo"))) Возвращает (пользователь).

Это работает как шарм..

Другие вопросы по тегам