Set, don't pass queryOperator
authoreileen <emcnaughton@wikimedia.org>
Mon, 16 Jul 2018 03:35:19 +0000 (15:35 +1200)
committereileen <emcnaughton@wikimedia.org>
Tue, 17 Jul 2018 04:25:24 +0000 (16:25 +1200)
CRM/Export/BAO/Export.php
CRM/Export/BAO/ExportProcessor.php
tests/phpunit/CRM/Export/BAO/ExportTest.php

index 06dbd629a6b15fe6d65b10d62cb7b556d9c6c20e..b68509f7ef69d9468625841948c3570950b3226a 100644 (file)
@@ -353,7 +353,7 @@ class CRM_Export_BAO_Export {
     $queryOperator = 'AND'
   ) {
 
-    $processor = new CRM_Export_BAO_ExportProcessor($exportMode);
+    $processor = new CRM_Export_BAO_ExportProcessor($exportMode, $queryOperator);
     $returnProperties = array();
     $paymentFields = $selectedPaymentFields = FALSE;
 
@@ -556,7 +556,7 @@ INSERT INTO {$componentTable} SELECT distinct gc.contact_id FROM civicrm_group_c
       CRM_Contact_BAO_ProximityQuery::fixInputParams($params);
     }
 
-    list($query, $select, $from, $where, $having) = $processor->runQuery($params, $order, $queryOperator, $returnProperties);
+    list($query, $select, $from, $where, $having) = $processor->runQuery($params, $order, $returnProperties);
 
     if ($mergeSameHousehold == 1) {
       if (empty($returnProperties['id'])) {
index 807c23162875c786a62a4a359a9e54e3472586a0..8479f038a3f5e1099fb24aaec0da29e53aa97fbe 100644 (file)
@@ -55,6 +55,39 @@ class CRM_Export_BAO_ExportProcessor {
    */
   protected $queryFields = [];
 
+  /**
+   * Either AND or OR.
+   *
+   * @var string
+   */
+  protected $queryOperator;
+
+  /**
+   * CRM_Export_BAO_ExportProcessor constructor.
+   *
+   * @param int $exportMode
+   * @param string $queryOperator
+   */
+  public function __construct($exportMode, $queryOperator) {
+    $this->setExportMode($exportMode);
+    $this->setQueryMode();
+    $this->setQueryOperator($queryOperator);
+  }
+
+  /**
+   * @return string
+   */
+  public function getQueryOperator() {
+    return $this->queryOperator;
+  }
+
+  /**
+   * @param string $queryOperator
+   */
+  public function setQueryOperator($queryOperator) {
+    $this->queryOperator = $queryOperator;
+  }
+
   /**
    * @return array
    */
@@ -69,16 +102,6 @@ class CRM_Export_BAO_ExportProcessor {
     $this->queryFields = $queryFields;
   }
 
-  /**
-   * CRM_Export_BAO_ExportProcessor constructor.
-   *
-   * @param int $exportMode
-   */
-  public function __construct($exportMode) {
-    $this->setExportMode($exportMode);
-    $this->setQueryMode();
-  }
-
   /**
    * @return int
    */
@@ -142,14 +165,13 @@ class CRM_Export_BAO_ExportProcessor {
   /**
    * @param $params
    * @param $order
-   * @param $queryOperator
    * @param $returnProperties
    * @return array
    */
-  public function runQuery($params, $order, $queryOperator, $returnProperties) {
+  public function runQuery($params, $order, $returnProperties) {
     $query = new CRM_Contact_BAO_Query($params, $returnProperties, NULL,
       FALSE, FALSE, $this->getQueryMode(),
-      FALSE, TRUE, TRUE, NULL, $queryOperator
+      FALSE, TRUE, TRUE, NULL, $this->getQueryOperator()
     );
 
     //sort by state
index 1eae9a092dd5877a8e19822b17a95337b5ace037..3d1df3c8833ee334e2f9e33c214b122a0702c9a6 100644 (file)
@@ -44,7 +44,7 @@ class CRM_Export_BAO_ExportTest extends CiviUnitTestCase {
    * Basic test to ensure the exportComponents function completes without error.
    */
   public function testExportComponentsNull() {
-    list($tableName, $sqlColumns) = CRM_Export_BAO_Export::exportComponents(
+    list($tableName) = CRM_Export_BAO_Export::exportComponents(
       TRUE,
       array(),
       array(),
@@ -192,10 +192,10 @@ class CRM_Export_BAO_ExportTest extends CiviUnitTestCase {
     $pattern = '/as `?([^`,]*)/';
     $queryFieldAliases = array();
     preg_match_all($pattern, $select, $queryFieldAliases, PREG_PATTERN_ORDER);
-    $processor = new CRM_Export_BAO_ExportProcessor(CRM_Contact_BAO_Query::MODE_CONTRIBUTE);
+    $processor = new CRM_Export_BAO_ExportProcessor(CRM_Contact_BAO_Query::MODE_CONTRIBUTE, 'AND');
     $processor->setQueryFields($query->_fields);
 
-    list($outputFields) = CRM_Export_BAO_Export::getExportStructureArrays($returnProperties, $processor, $contactRelationshipTypes, '', array());
+    list($outputFields) = CRM_Export_BAO_Export::getExportStructureArrays($returnProperties, $processor, $contactRelationshipTypes, '');
     foreach (array_keys($outputFields) as $fieldAlias) {
       if ($fieldAlias == 'Home-country') {
         $this->assertTrue(in_array($fieldAlias . '_id', $queryFieldAliases[1]), 'Country is subject to some funky translate so we make sure country id is present');
@@ -502,7 +502,7 @@ class CRM_Export_BAO_ExportTest extends CiviUnitTestCase {
     ));
 
     //create address for contact A
-    $result = $this->callAPISuccess('address', 'create', array(
+    $this->callAPISuccess('address', 'create', array(
       'contact_id' => $contactA['id'],
       'location_type_id' => 'Home',
       'street_address' => 'ABC 12',
@@ -513,7 +513,7 @@ class CRM_Export_BAO_ExportTest extends CiviUnitTestCase {
     ));
 
     //create address for contact B
-    $result = $this->callAPISuccess('address', 'create', array(
+    $this->callAPISuccess('address', 'create', array(
       'contact_id' => $contactB['id'],
       'location_type_id' => 'Home',
       'street_address' => 'ABC 12',