return array_key_last($possibleMatches['values']);
}
if (count($possibleMatches['values']) > 1) {
- throw new CRM_Core_Exception(ts('Record duplicates multiple contacts'));
+ throw new CRM_Core_Exception(ts('Record duplicates multiple contacts: ') . implode(',', array_keys($possibleMatches['values'])), CRM_Import_Parser::ERROR);
+
}
return NULL;
}
* @throws \API_Exception
* @throws \CRM_Core_Exception
*/
- public function testImport($csv, $mapper, $expectedError, $expectedOutcomes = []): void {
+ public function testImport($csv, $mapper, $expectedError, $expectedOutcomes = [], $contactType = NULL): void {
try {
- $this->importCSV($csv, $mapper);
+ $this->importCSV($csv, $mapper, [
+ 'contactType' => $contactType ?? CRM_Import_Parser::CONTACT_INDIVIDUAL,
+ ]);
}
catch (CRM_Core_Exception $e) {
$this->assertSame($expectedError, $e->getMessage());
'expected_error' => '',
'expected_outcomes' => [CRM_Import_Parser::ERROR => 1],
],
+ 'organization_multiple_duplicates_invalid' => [
+ 'csv' => 'organization_multiple_duplicates_invalid.csv',
+ 'mapper' => [['organization_name'], ['email']],
+ 'expected_error' => '',
+ 'expected_outcomes' => [
+ CRM_Import_Parser::VALID => 2,
+ CRM_Import_Parser::ERROR => 1,
+ ],
+ 'contact_type' => CRM_Import_Parser::CONTACT_ORGANIZATION,
+ ],
];
}