Я хочу смоделировать определенное выражение в одном из моих репозиториев, и у меня возникли некоторые проблемы.
У меня сейчас есть:
Mock<Container> returnContainer = new Mock<Container>();
Mock<IRepository<Container>> CntnrRepository =
new Mock<IRepository<Container>>();
CntnrRepository.Setup<Container>(repo => repo
.Find(x => x.Name == "foo")
.Returns(returnContainer.Object);
Всякий раз, когда запускается следующий код, он возвращает нольвместо моего Mock<Container>
выше.
Container found =
containerRepository.Find(x => x.Name == cntnrName);
Что я здесь не так делаю?
Редактировать
Ниже приведен код, использующий внедренный репозиторий:
public int Foo(Guid id, string name)
{
Container found =
containerRepository.Find(x => x.Name == name);
if (found != null)
return CONTAINER_NOT_FREE;
Container cntnrToAssociate =
containerRepository.Find(x => x.Id == cntnrId);
if (cntnrToAssociate == null)
return CONTAINER_NOT_FOUND;
return OK;
}
В приведенном выше коде для одного из моих тестов мне нужно вернуть значение только в первом запросе (Find
) в containerRepository