X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=tests%2Fphpunit%2FCRM%2FContact%2FBAO%2FQueryTest.php;h=b0233c1c5b9650d7128196c387529423118fdaee;hb=c3137c08168665e27a18cd6a5f41ec3b5375b205;hp=e81c3427aa57d4d09c2076e34dcb019111a42d0b;hpb=1cd7865b5cca5a5c6a01ee0f4318374e506669df;p=civicrm-core.git diff --git a/tests/phpunit/CRM/Contact/BAO/QueryTest.php b/tests/phpunit/CRM/Contact/BAO/QueryTest.php index e81c3427aa..b0233c1c5b 100644 --- a/tests/phpunit/CRM/Contact/BAO/QueryTest.php +++ b/tests/phpunit/CRM/Contact/BAO/QueryTest.php @@ -275,4 +275,30 @@ class CRM_Contact_BAO_QueryTest extends CiviUnitTestCase { } + /** + * Test the group contact clause does not contain an OR. + * + * The search should return 3 contacts - 2 households in the smart group of + * Contact Type = Household and one Individual hard-added to it. The + * Household that meets both criteria should be returned once. + */ + public function testGroupClause() { + $this->householdCreate(); + $householdID = $this->householdCreate(); + $individualID = $this->individualCreate(); + $groupID = $this->smartGroupCreate(); + $this->callAPISuccess('GroupContact', 'create', array('group_id' => $groupID, 'contact_id' => $individualID, 'status' => 'Added')); + $this->callAPISuccess('GroupContact', 'create', array('group_id' => $groupID, 'contact_id' => $householdID, 'status' => 'Added')); + + $query = new CRM_Contact_BAO_Query( + array(array('group', 'IN', array($groupID), 0, 0)), + array('contact_id') + ); + + $sql = $query->query(); + $queryString = implode(' ', $sql); + $dao = CRM_Core_DAO::executeQuery($queryString); + $this->assertEquals(3, $dao->N); + } + }