public void FindBookQueryHandler_Should_ReturnTheCorrectItem() { using (var mock = AutoMock.GetStrict()) { // Arrange const int bookId = 1; _fixture.DbSetMock .Setup(_ => _.Find(It.IsAny <object[]>())) .Returns(_fixture.BookDomainModels.FirstOrDefault()); mock.Provide(_fixture.DbContextMock.Object); mock.Provide(_fixture.MapperMock.Object); var handler = mock.Create <FindBookQueryHandler>(); var query = new FindBookQuery { Predicate = model => model.Id == bookId }; // Act var result = handler.Handle(query); // Assert Assert.NotNull(result); var book = Assert.IsAssignableFrom <BookReadModel>(result); Assert.Equal(bookId, book.Id); } }
public async Task <BookReadModel> FindBy(Predicate <BookReadModel> predicate) { var query = new FindBookQuery { Predicate = predicate }; var book = await Task.Run(() => _queryProcessor.Process(query)); return(book); }