$this->assertEquals([1], $caseIds);
}
+ /**
+ * Test that all custom files are migrated to new case when case is assigned to new client.
+ */
+ public function testCaseReassignForCustomFiles() {
+ $individual = $this->individualCreate();
+ $customGroup = $this->customGroupCreate(array(
+ 'extends' => 'Case',
+ ));
+ $customGroup = $customGroup['values'][$customGroup['id']];
+
+ $customFileFieldA = $this->customFieldCreate(array(
+ 'custom_group_id' => $customGroup['id'],
+ 'html_type' => 'File',
+ 'is_active' => 1,
+ 'default_value' => 'null',
+ 'label' => 'Custom File A',
+ 'data_type' => 'File',
+ ));
+
+ $customFileFieldB = $this->customFieldCreate(array(
+ 'custom_group_id' => $customGroup['id'],
+ 'html_type' => 'File',
+ 'is_active' => 1,
+ 'default_value' => 'null',
+ 'label' => 'Custom File B',
+ 'data_type' => 'File',
+ ));
+
+ // Create two files to attach to the new case
+ $filepath = Civi::paths()->getPath('[civicrm.files]/custom');
+
+ CRM_Utils_File::createFakeFile($filepath, 'Bananas do not bend themselves without a little help.', 'i_bend_bananas.txt');
+ $fileA = $this->callAPISuccess('File', 'create', ['uri' => "$filepath/i_bend_bananas.txt"]);
+
+ CRM_Utils_File::createFakeFile($filepath, 'Wombats will bite your ankles if you run from them.', 'wombats_bite_your_ankles.txt');
+ $fileB = $this->callAPISuccess('File', 'create', ['uri' => "$filepath/wombats_bite_your_ankles.txt"]);
+
+ $caseObj = $this->createCase($individual);
+
+ $this->callAPISuccess('Case', 'create', array(
+ 'id' => $caseObj->id,
+ 'custom_' . $customFileFieldA['id'] => $fileA['id'],
+ 'custom_' . $customFileFieldB['id'] => $fileB['id'],
+ ));
+
+ $reassignIndividual = $this->individualCreate();
+ $this->createLoggedInUser();
+ $newCase = CRM_Case_BAO_Case::mergeCases($reassignIndividual, $caseObj->id, $individual, NULL, TRUE);
+
+ $entityFiles = new CRM_Core_DAO_EntityFile();
+ $entityFiles->entity_id = $newCase[0];
+ $entityFiles->entity_table = $customGroup['table_name'];
+ $entityFiles->find();
+
+ $totalEntityFiles = 0;
+ while ($entityFiles->fetch()) {
+ $totalEntityFiles++;
+ }
+
+ $this->assertEquals(2, $totalEntityFiles, 'Two files should be attached with new case.');
+ }
+
/**
* FIXME: need to create an activity to run this test
* function testGetCases() {