/**
  * Test the query from the selector class is consistent with the dataset expectation.
  *
  * @param array $dataSet
  *   The data set to be tested. Note that when adding new datasets often only form_values and expected where
  *   clause will need changing.
  *
  * @dataProvider querySets
  */
 public function testSelectorQuery($dataSet)
 {
     $params = CRM_Contact_BAO_Query::convertFormValues($dataSet['form_values'], 0, FALSE, NULL, array());
     foreach ($dataSet['settings'] as $setting) {
         $this->callAPISuccess('Setting', 'create', array($setting['name'] => $setting['value']));
     }
     $selector = new CRM_Contact_Selector($dataSet['class'], $dataSet['form_values'], $params, $dataSet['return_properties'], $dataSet['action'], $dataSet['includeContactIds'], $dataSet['searchDescendentGroups'], $dataSet['context']);
     $queryObject = $selector->getQueryObject();
     $sql = $queryObject->query();
     $this->wrangleDefaultClauses($dataSet['expected_query']);
     foreach ($dataSet['expected_query'] as $index => $queryString) {
         $this->assertEquals($this->strWrangle($queryString), $this->strWrangle($sql[$index]));
     }
 }