+
+ 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);
+ }
+