public async Task ApplyWhereClause_EmptyFilter_ReturnsNull() { var mockManager = new QueryMockManager(); var mapperMock = mockManager.ConfigureMapperMock <Hashtag, HashtagDto, HashtagFilterDto>(); var queryMock = mockManager.ConfigureQueryMock <Hashtag>(); var hashtagQueryObject = new HashtagQueryObject(mapperMock.Object, queryMock.Object); var filter = new HashtagFilterDto(); var temp = await hashtagQueryObject.ExecuteQuery(filter); Assert.AreEqual(null, mockManager.CapturedPredicate); }
private CompositePredicate CreateCompositePredicateFromFilter(HashtagFilterDto filter) { var predicates = new List <IPredicate>(); if (!string.IsNullOrWhiteSpace(filter.Tag)) { predicates.Add(new SimplePredicate(nameof(Hashtag.Tag), ValueComparingOperator.Equal, filter.Tag)); } if (filter.PostId != Guid.Empty) { predicates.Add(new SimplePredicate(nameof(Hashtag.PostId), ValueComparingOperator.Equal, filter.PostId)); } return(new CompositePredicate(predicates, LogicalOperator.AND)); }
public async Task ApplyWhereClause_FilterByTagString_ReturnsCorrectPredicate() { const string filteredTag = "Hashtag"; var mockManager = new QueryMockManager(); var expectedPredicate = new CompositePredicate(new List <IPredicate> { new SimplePredicate(nameof(Hashtag.Tag), ValueComparingOperator.Equal, filteredTag) }, LogicalOperator.AND); var mapperMock = mockManager.ConfigureMapperMock <Hashtag, HashtagDto, HashtagFilterDto>(); var queryMock = mockManager.ConfigureQueryMock <Hashtag>(); var hashtagQueryObject = new HashtagQueryObject(mapperMock.Object, queryMock.Object); var filter = new HashtagFilterDto { Tag = filteredTag }; var temp = await hashtagQueryObject.ExecuteQuery(filter); Assert.AreEqual(expectedPredicate, mockManager.CapturedPredicate); }
protected override IQuery <Hashtag> ApplyWhereClause(IQuery <Hashtag> query, HashtagFilterDto filter) { return(string.IsNullOrWhiteSpace(filter.Tag) && filter.PostId == Guid.Empty ? query : query.Where(CreateCompositePredicateFromFilter(filter))); }