'defaults' => [],
];
$idField = CoreUtil::getIdFieldName($entityName);
- foreach ($saveParams['records'] as &$record) {
- $record += $saveParams['defaults'];
+ foreach ($saveParams['records'] as $index => $record) {
+ $saveParams['records'][$index] += $saveParams['defaults'];
if (empty($record[$idField])) {
- $this->getRequiredValuesToCreate($entityName, $record);
+ $saveParams['records'][$index] = $this->getRequiredValuesToCreate($entityName, $saveParams['records'][$index]);
}
}
- // Unset for clarity as it leaks from the foreach & is a reference.
- unset($record);
$saved = civicrm_api4($entityName, 'save', $saveParams);
foreach ($saved as $item) {
$this->testRecords[] = [$entityName, [[$idField, '=', $item[$idField]]]];
* @return array
* @throws \CRM_Core_Exception
*/
- public function getRequiredValuesToCreate(string $entity, array &$values = []): array {
+ public function getRequiredValuesToCreate(string $entity, array $values = []): array {
$requiredFields = civicrm_api4($entity, 'getfields', [
'action' => 'create',
'loadOptions' => TRUE,
*/
class DomainTest extends Api4TestBase implements TransactionalInterface {
- public function testActiveDomain() {
+ /**
+ * Test active domain and domain_id.name parameters.
+ *
+ * @throws \CRM_Core_Exception
+ */
+ public function testActiveDomain(): void {
Domain::create(FALSE)
->addValue('name', 'Not current')
->addValue('version', \CRM_Utils_System::version())