X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=tests%2Fphpunit%2FCRM%2FMember%2FImport%2FParser%2FMembershipTest.php;h=c39b1618d561651433fb27b3a39341612e39c12f;hb=e136f704594ddead8e78f52d53ec080825bdb1e2;hp=eacc78812bc4dbf1f642e2cf25ae85544503c01e;hpb=1024e1784fb68b8529a77143f5191a60d70837cf;p=civicrm-core.git diff --git a/tests/phpunit/CRM/Member/Import/Parser/MembershipTest.php b/tests/phpunit/CRM/Member/Import/Parser/MembershipTest.php index eacc78812b..c39b1618d5 100644 --- a/tests/phpunit/CRM/Member/Import/Parser/MembershipTest.php +++ b/tests/phpunit/CRM/Member/Import/Parser/MembershipTest.php @@ -5,7 +5,7 @@ * * (PHP 5) * - * @package CiviCRM + * @package CiviCRM * * This file is part of CiviCRM * @@ -24,24 +24,21 @@ * . */ -require_once 'CiviTest/CiviUnitTestCase.php'; -require_once 'CiviTest/Contact.php'; -require_once 'CiviTest/Membership.php'; - /** * Test CRM/Member/BAO Membership Log add , delete functions * - * @package CiviCRM + * @package CiviCRM + * @group headless */ class CRM_Member_Import_Parser_MembershipTest extends CiviUnitTestCase { /** - * Membership type name used in test function + * Membership type name used in test function. * @var String */ protected $_membershipTypeName = NULL; /** - * Membership type id used in test function + * Membership type id used in test function. * @var String */ protected $_membershipTypeID = NULL; @@ -72,7 +69,7 @@ class CRM_Member_Import_Parser_MembershipTest extends CiviUnitTestCase { 'visibility' => 'Public', 'is_active' => 1, 'fixed_period_start_day' => 101, - 'fixed_period_rollover_day' => 1231 + 'fixed_period_rollover_day' => 1231, ); $ids = array(); $membershipType = CRM_Member_BAO_MembershipType::add($params, $ids); @@ -86,10 +83,14 @@ class CRM_Member_Import_Parser_MembershipTest extends CiviUnitTestCase { /** * Tears down the fixture, for example, closes a network connection. * This method is called after a test is executed. - * */ public function tearDown() { - $tablesToTruncate = array('civicrm_membership', 'civicrm_membership_log', 'civicrm_contribution', 'civicrm_membership_payment'); + $tablesToTruncate = array( + 'civicrm_membership', + 'civicrm_membership_log', + 'civicrm_contribution', + 'civicrm_membership_payment', + ); $this->quickCleanup($tablesToTruncate); $this->relationshipTypeDelete($this->_relationshipTypeId); $this->membershipTypeDelete(array('id' => $this->_membershipTypeID)); @@ -98,10 +99,10 @@ class CRM_Member_Import_Parser_MembershipTest extends CiviUnitTestCase { } /** - * Test Import + * Test Import. */ public function testImport() { - $contactId = $this->individualCreate(); + $this->individualCreate(); $contact2Params = array( 'first_name' => 'Anthonita', 'middle_name' => 'J.', @@ -111,14 +112,15 @@ class CRM_Member_Import_Parser_MembershipTest extends CiviUnitTestCase { 'email' => 'b@c.com', 'contact_type' => 'Individual', ); - $contactId = $this->individualCreate($contact2Params); + + $this->individualCreate($contact2Params); $year = date('Y') - 1; $startDate2 = date('Y-m-d', mktime(0, 0, 0, 9, 10, $year)); $params = array( array( 'anthony_anderson@civicrm.org', - $this->_membershipTypeID, - date('Y-m-d'), + $this->_membershipTypeID, + date('Y-m-d'), ), array( $contact2Params['email'], @@ -131,19 +133,7 @@ class CRM_Member_Import_Parser_MembershipTest extends CiviUnitTestCase { 'mapper[1][0]' => 'membership_type_id', 'mapper[2][0]' => 'membership_start_date', ); -/* - $params = array( - 'contact_id' => $contactId, - 'membership_type_id' => $this->_membershipTypeID, - 'join_date' => '2006-01-21', - 'start_date' => '2006-01-21', - 'end_date' => '2006-12-21', - 'source' => 'Payment', - 'is_override' => 1, - 'status_id' => $this->_mebershipStatusID, - ); - */ $importObject = new CRM_Member_Import_Parser_Membership($fieldMapper); $importObject->init(); $importObject->_contactType = 'Individual'; @@ -153,4 +143,113 @@ class CRM_Member_Import_Parser_MembershipTest extends CiviUnitTestCase { $result = $this->callAPISuccess('membership', 'get', array()); $this->assertEquals(2, $result['count']); } + + public function testImportOverriddenMembershipButWithoutStatus() { + $this->individualCreate(array('email' => 'anthony_anderson2@civicrm.org')); + + $fieldMapper = array( + 'mapper[0][0]' => 'email', + 'mapper[1][0]' => 'membership_type_id', + 'mapper[2][0]' => 'membership_start_date', + 'mapper[3][0]' => 'is_override', + ); + $membershipImporter = new CRM_Member_Import_Parser_Membership($fieldMapper); + $membershipImporter->init(); + $membershipImporter->_contactType = 'Individual'; + + $importValues = array( + 'anthony_anderson2@civicrm.org', + $this->_membershipTypeID, + date('Y-m-d'), + TRUE, + ); + + $importResponse = $membershipImporter->import(CRM_Import_Parser::DUPLICATE_UPDATE, $importValues); + $this->assertEquals(CRM_Import_Parser::ERROR, $importResponse); + $this->assertContains('Required parameter missing: Status', $importValues); + } + + public function testImportOverriddenMembershipWithStatus() { + $this->individualCreate(array('email' => 'anthony_anderson3@civicrm.org')); + + $fieldMapper = array( + 'mapper[0][0]' => 'email', + 'mapper[1][0]' => 'membership_type_id', + 'mapper[2][0]' => 'membership_start_date', + 'mapper[3][0]' => 'is_override', + 'mapper[4][0]' => 'status_id', + ); + $membershipImporter = new CRM_Member_Import_Parser_Membership($fieldMapper); + $membershipImporter->init(); + $membershipImporter->_contactType = 'Individual'; + + $importValues = array( + 'anthony_anderson3@civicrm.org', + $this->_membershipTypeID, + date('Y-m-d'), + TRUE, + 'New', + ); + + $importResponse = $membershipImporter->import(CRM_Import_Parser::DUPLICATE_UPDATE, $importValues); + $this->assertEquals(CRM_Import_Parser::VALID, $importResponse); + } + + public function testImportOverriddenMembershipWithValidOverrideEndDate() { + $this->individualCreate(array('email' => 'anthony_anderson4@civicrm.org')); + + $fieldMapper = array( + 'mapper[0][0]' => 'email', + 'mapper[1][0]' => 'membership_type_id', + 'mapper[2][0]' => 'membership_start_date', + 'mapper[3][0]' => 'is_override', + 'mapper[4][0]' => 'status_id', + 'mapper[5][0]' => 'status_override_end_date', + ); + $membershipImporter = new CRM_Member_Import_Parser_Membership($fieldMapper); + $membershipImporter->init(); + $membershipImporter->_contactType = 'Individual'; + + $importValues = array( + 'anthony_anderson4@civicrm.org', + $this->_membershipTypeID, + date('Y-m-d'), + TRUE, + 'New', + date('Y-m-d'), + ); + + $importResponse = $membershipImporter->import(CRM_Import_Parser::DUPLICATE_UPDATE, $importValues); + $this->assertEquals(CRM_Import_Parser::VALID, $importResponse); + } + + public function testImportOverriddenMembershipWithInvalidOverrideEndDate() { + $this->individualCreate(array('email' => 'anthony_anderson5@civicrm.org')); + + $fieldMapper = array( + 'mapper[0][0]' => 'email', + 'mapper[1][0]' => 'membership_type_id', + 'mapper[2][0]' => 'membership_start_date', + 'mapper[3][0]' => 'is_override', + 'mapper[4][0]' => 'status_id', + 'mapper[5][0]' => 'status_override_end_date', + ); + $membershipImporter = new CRM_Member_Import_Parser_Membership($fieldMapper); + $membershipImporter->init(); + $membershipImporter->_contactType = 'Individual'; + + $importValues = array( + 'anthony_anderson5@civicrm.org', + 'New', + date('Y-m-d'), + TRUE, + $this->_mebershipStatusID, + 'abc', + ); + + $importResponse = $membershipImporter->import(CRM_Import_Parser::DUPLICATE_UPDATE, $importValues); + $this->assertEquals(CRM_Import_Parser::ERROR, $importResponse); + $this->assertContains('Required parameter missing: Status', $importValues); + } + }