function setUp() { parent::setUp(); if (class_exists('test_extension_manager_paymenttest')) { test_extension_manager_paymenttest::$counts = array(); } $this->system = new CRM_Extension_System(array('extensionsDir' => '', 'extensionsURL' => '')); $this->quickCleanup(array('civicrm_payment_processor')); }
/** * Install an extension and create a payment processor which uses it. * Attempts to uninstall fail */ public function testInstall_Add_FailUninstall() { $manager = $this->system->getManager(); $this->assertDBQuery(0, 'SELECT count(*) FROM civicrm_payment_processor_type WHERE class_name = "test.extension.manager.paymenttest"'); $manager->install(array('test.extension.manager.paymenttest')); $this->assertEquals(1, test_extension_manager_paymenttest::$counts['install']); $this->assertDBQuery(1, 'SELECT count(*) FROM civicrm_payment_processor_type WHERE class_name = "test.extension.manager.paymenttest" AND is_active = 1'); $payment_processor_type_id = CRM_Core_DAO::singleValueQuery('SELECT id FROM civicrm_payment_processor_type WHERE class_name = "test.extension.manager.paymenttest"'); $ppDAO = CRM_Financial_BAO_PaymentProcessor::create(array('payment_processor_type_id' => $payment_processor_type_id, 'domain_id' => CRM_Core_Config::domainID())); $manager->disable(array('test.extension.manager.paymenttest')); $this->assertEquals(1, test_extension_manager_paymenttest::$counts['disable']); $this->assertDBQuery(1, 'SELECT count(*) FROM civicrm_payment_processor_type WHERE class_name = "test.extension.manager.paymenttest"'); $this->assertDBQuery(1, 'SELECT count(*) FROM civicrm_payment_processor_type WHERE class_name = "test.extension.manager.paymenttest" AND is_active = 0'); // first attempt to uninstall -- fail try { $manager->uninstall(array('test.extension.manager.paymenttest')); $this->fail('Failed to catch expected exception'); } catch (CRM_Extension_Exception_DependencyException $e) { } $this->assertEquals(0, test_extension_manager_paymenttest::getCount('uninstall')); $this->assertDBQuery(1, 'SELECT count(*) FROM civicrm_payment_processor_type WHERE class_name = "test.extension.manager.paymenttest"'); $ppDAO->delete(); // second attempt to uninstall -- ok $manager->uninstall(array('test.extension.manager.paymenttest')); $this->assertEquals(1, test_extension_manager_paymenttest::getCount('uninstall')); $this->assertDBQuery(0, 'SELECT count(*) FROM civicrm_payment_processor_type WHERE class_name = "test.extension.manager.paymenttest"'); }