public void ComplexOr() { var condition1A = new StringBooleanCondition("genre", "Sci-Fi"); var condition1B = new IntBooleanCondition("year"); condition1B.SetFrom(1990); var groupCondition1 = new GroupedCondition(condition1A, ConditionType.AND, condition1B); var condition2A = new StringBooleanCondition("genre", "Fantasy"); var condition2B = new IntBooleanCondition("year"); condition2B.SetFrom(2013); var groupCondition2 = new GroupedCondition(condition2A, ConditionType.AND, condition2B); var groupConditionAll = new GroupedCondition(groupCondition1, ConditionType.OR, groupCondition2); var bQuery = new BooleanQuery(); bQuery.Conditions.Add(groupConditionAll); _searchQuery = new SearchQuery <Movie> { BooleanQuery = bQuery }; string query = _queryBuilder.BuildSearchQuery(_searchQuery); query.ShouldContain("(or+(or+(and+genre%3A'Sci-Fi'+year%3A1990..)+(and+genre%3A'Fantasy'+year%3A2013..)))"); }
public void ComplexOrWithList() { var genres = new List <string> { "Sci-Fi", "Fantasy" }; var condition1A = new StringListBooleanCondition("genre", genres, ConditionType.OR); var years = new List <int> { 1987, 1990, 2010 }; var condition1B = new IntListBooleanCondition("year", years, ConditionType.OR); var groupCondition1 = new GroupedCondition(condition1A, ConditionType.AND, condition1B); var condition2 = new StringBooleanCondition("director", "doduck"); var groupConditionAll = new GroupedCondition(groupCondition1, ConditionType.AND, condition2); var bQuery = new BooleanQuery(); bQuery.Conditions.Add(groupConditionAll); _searchQuery = new SearchQuery <Movie> { BooleanQuery = bQuery }; string query = _queryBuilder.BuildSearchQuery(_searchQuery); //query.ShouldNotContain("(and+(and+(and+genre%3A'Sci-Fi'+genre%3A'Fantasy'+year%3A1987+year%3A1990+year%3A2010)+director%3A'doduck'))"); query.ShouldContain("(and+(and+(or+genre%3A'Sci-Fi'+genre%3A'Fantasy')+(or+year%3A1987+year%3A1990+year%3A2010)+director%3A'doduck'))"); }
public void OrCondition() { var conditionA = new StringBooleanCondition("genre", "Sci-Fi"); var conditionB = new IntBooleanCondition("year"); conditionB.SetFrom(2013); var groupCondition = new GroupedCondition(conditionA, ConditionType.OR, conditionB); var bQuery = new BooleanQuery(); bQuery.Conditions.Add(groupCondition); _searchQuery = new SearchQuery <Movie> { BooleanQuery = bQuery }; string query = _queryBuilder.BuildSearchQuery(_searchQuery); query.ShouldContain("(or+(or+genre%3A'Sci-Fi'+year%3A2013..))"); }