(Как указано в тегах, я использую moq ).
У меня есть такой интерфейс:
interface ISource
{
string Name { get; set; }
int Id { get; set; }
}
interface IExample
{
string Name { get; }
ISource Source { get; set; }
}
В моем приложении конкретные экземпляры IExample принимают DTO (IDataTransferObject )в качестве источника. Некоторые свойства конкретной реализации IExample просто делегируются источнику. Вот так...
class Example : IExample
{
IDataTransferObject Source { get; set; }
string Name { get { return _data.Name; } }
}
Я хотел бы создать автономный макет IExample (, автономный, что означает, что я не могу использовать захваченную переменную, поскольку в ходе теста будет создано несколько экземпляров макета IExample )и настроить макет таким образом, чтобы IExample.Name возвращает значение IExample.Source.Name. Итак, я хотел бы создать что-то вроде этого:
var example = new Mock<IExample>();
example.SetupProperty(ex => ex.Source);
example.SetupGet(ex => ex.Name).Returns(what can I put here to return ex.Source.Name);
По сути, я хочу настроить макет так, чтобы он возвращал в качестве значения одного свойства значение свойства подобъекта макета.
Спасибо.