From: Tim Otten Date: Tue, 27 May 2014 03:24:13 +0000 (-0700) Subject: api_v3_CaseTest - Move setup/teardown to CiviCaseTestCase X-Git-Url: https://vcs.fsf.org/?a=commitdiff_plain;h=1d8a8d12451b771da3b4f811b7adc763506029a6;p=civicrm-core.git api_v3_CaseTest - Move setup/teardown to CiviCaseTestCase --- diff --git a/tests/phpunit/CiviTest/CiviCaseTestCase.php b/tests/phpunit/CiviTest/CiviCaseTestCase.php new file mode 100644 index 0000000000..5f009ebec1 --- /dev/null +++ b/tests/phpunit/CiviTest/CiviCaseTestCase.php @@ -0,0 +1,115 @@ +caseStatusGroup = $this->callAPISuccess('option_group', 'get', array( + 'name' => 'case_status', + 'format.only_id' => 1 + ) + ); + $optionValues = array( + 'Medical evaluation' => 'Medical evaluation', + 'Mental health evaluation' => "Mental health evaluation", + 'Secure temporary housing' => 'Secure temporary housing', + 'Long-term housing plan' => 'Long-term housing plan', + 'ADC referral' => 'ADC referral', + 'Income and benefits stabilization' => 'Income and benefits stabilization', + ); + foreach ($optionValues as $name => $label) { + $activityTypes = $this->callAPISuccess('option_value', 'Create', array( + 'option_group_id' => 2, + 'name' => $name, + 'label' => $label, + 'component_id' => 7, + )); + // store for cleanup + $this->optionValues[] = $activityTypes['id']; + } + $this->caseTypeId = 1; + $this->tablesToTruncate = array( + 'civicrm_activity', + 'civicrm_contact', + 'civicrm_custom_group', + 'civicrm_custom_field', + 'civicrm_case', + 'civicrm_case_contact', + 'civicrm_case_activity', + 'civicrm_case_type', + 'civicrm_activity_contact', + 'civicrm_relationship', + 'civicrm_relationship_type', + ); + + $this->quickCleanup($this->tablesToTruncate); + + $this->loadAllFixtures(); + + // enable the default custom templates for the case type xml files + $this->customDirectories(array('template_path' => TRUE)); + + // case is not enabled by default + $enableResult = CRM_Core_BAO_ConfigSetting::enableComponent('CiviCase'); + $this->assertTrue($enableResult, 'Cannot enable CiviCase in line ' . __LINE__); + + // create a logged in USER since the code references it for source_contact_id + $this->createLoggedInUser(); + $session = CRM_Core_Session::singleton(); + $this->_loggedInUser = $session->get('userID'); + /// note that activityType options are cached by the FULL set of options you pass in + // ie. because Activity api includes campaign in it's call cache is not flushed unless + // included in this call. Also note flush function doesn't work on this property as it sets to null not empty array + CRM_Core_PseudoConstant::activityType(TRUE, TRUE, TRUE, 'name', TRUE); + } + + /** + * Tears down the fixture, for example, closes a network connection. + * This method is called after a test is executed. + * + * @access protected + */ + function tearDown() { + $this->quickCleanup($this->tablesToTruncate, TRUE); + $this->customDirectories(array('template_path' => FALSE)); + } +} \ No newline at end of file diff --git a/tests/phpunit/api/v3/CaseTest.php b/tests/phpunit/api/v3/CaseTest.php index 82cb124868..19935366e2 100644 --- a/tests/phpunit/api/v3/CaseTest.php +++ b/tests/phpunit/api/v3/CaseTest.php @@ -31,21 +31,18 @@ /** * Include class definitions */ -require_once 'CiviTest/CiviUnitTestCase.php'; +require_once 'CiviTest/CiviCaseTestCase.php'; /** * Test APIv3 civicrm_case_* functions * * @package CiviCRM_APIv3 */ -class api_v3_CaseTest extends CiviUnitTestCase { +class api_v3_CaseTest extends CiviCaseTestCase { protected $_params; protected $_entity; protected $_apiversion =3; protected $followup_activity_type_value; - protected $caseTypeId; - protected $caseStatusGroup; - protected $optionValues; /** * Test setup for every test @@ -57,50 +54,6 @@ class api_v3_CaseTest extends CiviUnitTestCase { $this->_entity = 'case'; parent::setUp(); - // CRM-9404 - set-up is a bit cumbersome but had to put something in place to set up activity types & case types - //. Using XML was causing breakage as id numbers were changing over time - // & was really hard to troubleshoot as involved truncating option_value table to mitigate this & not leaving DB in a - // state where tests could run afterwards without re-loading. - $this->caseStatusGroup = $this->callAPISuccess('option_group', 'get', array( - 'name' => 'case_status', - 'format.only_id' => 1) - ); - $optionValues = array( - 'Medical evaluation' => 'Medical evaluation', - 'Mental health evaluation' => "Mental health evaluation", - 'Secure temporary housing' => 'Secure temporary housing', - 'Long-term housing plan' => 'Long-term housing plan', - 'ADC referral' => 'ADC referral', - 'Income and benefits stabilization' => 'Income and benefits stabilization', - ); - foreach ($optionValues as $name => $label) { - $activityTypes = $this->callAPISuccess('option_value', 'Create', array( - 'option_group_id' => 2, - 'name' => $name, - 'label' => $label, - 'component_id' => 7, - )); - // store for cleanup - $this->optionValues[] = $activityTypes['id']; - } - $this->caseTypeId = 1; - $this->tablesToTruncate = array( - 'civicrm_activity', - 'civicrm_contact', - 'civicrm_custom_group', - 'civicrm_custom_field', - 'civicrm_case', - 'civicrm_case_contact', - 'civicrm_case_activity', - 'civicrm_case_type', - 'civicrm_activity_contact', - 'civicrm_relationship', - 'civicrm_relationship_type', - ); - - $this->quickCleanup($this->tablesToTruncate); - - $this->loadAllFixtures(); $activityTypes = $this->callAPISuccess('option_value', 'get', array( 'option_group_id' => 2, @@ -110,39 +63,11 @@ class api_v3_CaseTest extends CiviUnitTestCase { )); $this->followup_activity_type_value = $activityTypes['values'][0]['value']; - // enable the default custom templates for the case type xml files - $this->customDirectories(array('template_path' => TRUE)); - - // case is not enabled by default - $enableResult = CRM_Core_BAO_ConfigSetting::enableComponent('CiviCase'); - $this->assertTrue($enableResult, 'Cannot enable CiviCase in line ' . __LINE__); - $this->_params = array( 'case_type_id' => $this->caseTypeId, 'subject' => 'Test case', 'contact_id' => 17, ); - - // create a logged in USER since the code references it for source_contact_id - $this->createLoggedInUser(); - $session = CRM_Core_Session::singleton(); - $this->_loggedInUser = $session->get('userID'); - /// note that activityType options are cached by the FULL set of options you pass in - // ie. because Activity api includes campaign in it's call cache is not flushed unless - // included in this call. Also note flush function doesn't work on this property as it sets to null not empty array - CRM_Core_PseudoConstant::activityType(TRUE, TRUE, TRUE, 'name', TRUE); - } - - /** - * Tears down the fixture, for example, closes a network connection. - * This method is called after a test is executed. - * - * @access protected - */ - function tearDown() { - $this->quickCleanup($this->tablesToTruncate, TRUE); - - $this->customDirectories(array('template_path' => FALSE)); } /**