public void ThenItShouldCombineMultipleConditions(CosmosCombinationOperator @operator, string expectedStringOperator) { var query = new CosmosQuery(@operator) .AddCondition("Name", DataOperator.Equals, "some-thing") .AddCondition("Status", DataOperator.Equals, "Open"); Assert.AreEqual($"{CosmosQueryTestConstants.QueryPrefix} WHERE ARRAY_CONTAINS(re.searchableName, 'some-thing') {expectedStringOperator} ARRAY_CONTAINS(re.searchableStatus, 'open')", CosmosQueryTestConstants.QueryWithoutOrderByOrSkip(query)); }
public void ThenItShouldCombineMultipleGroups(CosmosCombinationOperator @operator, string expectedStringOperator) { var group1 = new CosmosQuery(CosmosCombinationOperator.Or) .AddCondition("Name", DataOperator.Equals, "some-thing") .AddCondition("Status", DataOperator.Equals, "Open"); var group2 = new CosmosQuery(CosmosCombinationOperator.And) .AddCondition("Name", DataOperator.Equals, "another-thing") .AddCondition("Status", DataOperator.Equals, "Closed"); var query = new CosmosQuery(@operator) .AddGroup(group1) .AddGroup(group2); Assert.AreEqual($"{CosmosQueryTestConstants.QueryPrefix} WHERE ({CosmosQueryTestConstants.QueryWhereClause(group1)}) {expectedStringOperator} ({CosmosQueryTestConstants.QueryWhereClause(group2)})", CosmosQueryTestConstants.QueryWithoutOrderByOrSkip(query)); }
internal CosmosQuery(CosmosCombinationOperator combinationOperator) { _combinationOperator = combinationOperator; _whereClause = new StringBuilder(); }