/** * Tests the guessContactIdsBySubscribers method. * */ public function testGuessContactIdsBySubscribers() { // Create empty tables. CRM_Mailchimp_Sync::createTemporaryTableForMailchimp(); CRM_Mailchimp_Sync::createTemporaryTableForCiviCRM(); CRM_Core_DAO::executeQuery("INSERT INTO tmp_mailchimp_push_c (email, contact_id) VALUES\n ('*****@*****.**', 1),\n ('*****@*****.**', 2);"); CRM_Core_DAO::executeQuery("INSERT INTO tmp_mailchimp_push_m (email) VALUES\n ('*****@*****.**'),\n ('*****@*****.**');"); // Check for a match. $matched = CRM_Mailchimp_Sync::guessContactIdsBySubscribers(); $this->assertEquals(1, $matched); // Check the matched record did indeed match. $result = CRM_Core_DAO::singleValueQuery('SELECT COUNT(*) c FROM tmp_mailchimp_push_m WHERE email = "*****@*****.**" AND cid_guess = 1'); $this->assertEquals(1, $result); // Check the other one did not. $result = CRM_Core_DAO::singleValueQuery('SELECT COUNT(*) c FROM tmp_mailchimp_push_m WHERE email = "*****@*****.**" AND cid_guess IS NULL'); $this->assertEquals(1, $result); CRM_Mailchimp_Sync::dropTemporaryTables(); }