Макет с помощью Query BuilderC#

Место общения программистов C#
Ответить
Anonymous
 Макет с помощью Query Builder

Сообщение Anonymous »

Я создал проект, в котором есть репозиторий и репозиторий запросов. Метод Query() в каждом репозитории возвращает IQueryBuilder для выполнения каких-либо действий.

У меня есть метод, как показано ниже, в классе User:

Код: Выделить всё

public class User
{
//...

public async Task GetCurrentState(IEventRepository entRepository)
{
var lastWorkdayWeekEvents = await eventRepository.Query()
.ByUserId(this.Id).ByDateTimeRange(DateTime.UtcNow.AddDays(-3),
DateTime.UtcNow.AddDays(1)).FilterAutomatic().
ToListAsync();

//return ...
}
}
Я хотел бы протестировать этот метод. Я думал использовать Moq. Я хотел бы высмеять метод ToListAsync().

Код: Выделить всё

    [Fact]
public async void GetCurrentState()
{
//arrage
var lastEvents = new Task(() => new List
{
new Event{ActivityId = ActivityId.BoxesIn, Address =  new Address{Id = 99}}
});

var eventRepository = new Mock().Object;
var eventQueryBuilder = new Mock().Setup(x => x.ToListAsync()).Returns(() => lastEvents);

var user = new User();
var result = await user.GetCurrentState(eventRepository);
//...

}
Я получаю нулевую ссылку, потому что eventRepository.Query() возвращает нулевое значение. Нужно ли мне издеваться над всеми методами возврата из QueryRepository, чтобы все работало? Как мне заставить его работать без особого труда?

Подробнее здесь: https://stackoverflow.com/questions/446 ... ry-builder
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»