public void ShouldBuildSortByExpressionWithEmptyWhitelistThrowArgumentException(string sortOptions) { var argumentException = Assert.Catch <ArgumentException>(() => SortOptionExtensions.BuildSortByExpression <Opportunity>(sortOptions)); Assert.IsNotNull(argumentException); Assert.IsTrue(argumentException.Message.Contains("An item with the same key has already been added.")); }
protected IEnumerable <TDomain> Search(Expression <Func <TEntity, bool> > baseExpression, string filterOptions, string sortOptions, int index, int limit, out long total) { var filterExpression = FilterOptionExtensions.GetFilterExpression <TEntity>(filterOptions, Whitelist?.Whitelist); var finalExpression = baseExpression.And(filterExpression); var query = Query.Where(finalExpression); total = query.LongCount(); if (total == 0) { return(Enumerable.Empty <TDomain>()); } var sortDictionary = SortOptionExtensions.BuildSortByExpression <TEntity>(sortOptions); var entities = query.ApplySortByExpressions(sortDictionary).Skip(index).Take(limit).ToList(); return(ToDomain(entities)); }
public void ShouldBuildSortByExpressionWithEmptyWhitelist(string sortOptions) { var sortDictionary = SortOptionExtensions.BuildSortByExpression <Opportunity>(sortOptions); ValidateDictionary(sortDictionary, sortOptions); }
public void ShouldBuildSortByExpressionWithWhitelistThrowUnsupportedWhitelistPropertyException(string sortOptions) { Assert.Throws <UnsupportedWhitelistPropertyException>(() => SortOptionExtensions.BuildSortByExpression <Opportunity>(sortOptions, _whitelist)); }
public void ShouldBuildSortByExpressionReturnEmpty(string sortOptions) { var sortDictionary = SortOptionExtensions.BuildSortByExpression <Opportunity>(sortOptions); Assert.IsEmpty(sortDictionary); }
public void ShouldBuildSortByExpressionWithEmptyWhitelistThrowEntityPropertyNameNotDefinedException(string sortOptions) { Assert.Throws <EntityPropertyNameNotDefinedException>(() => SortOptionExtensions.BuildSortByExpression <Opportunity>(sortOptions)); }