X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=tests%2Fphpunit%2FCRM%2FMember%2FBAO%2FMembershipTest.php;h=1585b0260441020ec7af0a28be0d0cdf97b40f18;hb=e136f704594ddead8e78f52d53ec080825bdb1e2;hp=2e69855a14b56644129df2e0ed368cbf5799035d;hpb=f99fddadda6cfa2576bf3601640339a662e26967;p=civicrm-core.git diff --git a/tests/phpunit/CRM/Member/BAO/MembershipTest.php b/tests/phpunit/CRM/Member/BAO/MembershipTest.php index 2e69855a14..1585b02604 100644 --- a/tests/phpunit/CRM/Member/BAO/MembershipTest.php +++ b/tests/phpunit/CRM/Member/BAO/MembershipTest.php @@ -3,7 +3,7 @@ +--------------------------------------------------------------------+ | CiviCRM version 4.7 | +--------------------------------------------------------------------+ - | Copyright CiviCRM LLC (c) 2004-2016 | + | Copyright CiviCRM LLC (c) 2004-2017 | +--------------------------------------------------------------------+ | This file is a part of CiviCRM. | | | @@ -413,37 +413,27 @@ class CRM_Member_BAO_MembershipTest extends CiviUnitTestCase { /** - * Take sort name of contact during - * Update multiple memberships + * Checkup sort name function. */ - public function testsortName() { - $contactId = Contact::createIndividual(); + public function testSortName() { + $contactId = $this->individualCreate(); $params = array( 'contact_id' => $contactId, 'membership_type_id' => $this->_membershipTypeID, - 'join_date' => date('Ymd', strtotime('2006-01-21')), - 'start_date' => date('Ymd', strtotime('2006-01-21')), - 'end_date' => date('Ymd', strtotime('2006-12-21')), + 'join_date' => '2006-01-21', + 'start_date' => '2006-01-21', + 'end_date' => '2006-12-21', 'source' => 'Payment', 'is_override' => 1, 'status_id' => $this->_membershipStatusID, ); - $ids = array(); - CRM_Member_BAO_Membership::create($params, $ids); + $membership = $this->callAPISuccess('Membership', 'create', $params); - $membershipId = $this->assertDBNotNull('CRM_Member_BAO_Membership', $contactId, 'id', - 'contact_id', 'Database check for created membership.' - ); - - CRM_Member_BAO_Membership::sortName($membershipId); + $this->assertEquals('Anderson, Anthony', CRM_Member_BAO_Membership::sortName($membership['id'])); - $this->assertDBCompareValue('CRM_Contact_DAO_Contact', $contactId, 'sort_name', 'id', 'Doe, John', - 'Database check for sort name record.' - ); - - $this->membershipDelete($membershipId); + $this->membershipDelete($membership['id']); $this->contactDelete($contactId); } @@ -451,7 +441,7 @@ class CRM_Member_BAO_MembershipTest extends CiviUnitTestCase { * Delete related memberships. */ public function testdeleteRelatedMemberships() { - $contactId = Contact::createIndividual(); + $contactId = $this->individualCreate(); $params = array( 'contact_id' => $contactId, @@ -481,7 +471,7 @@ class CRM_Member_BAO_MembershipTest extends CiviUnitTestCase { * Renew membership with change in membership type. */ public function testRenewMembership() { - $contactId = Contact::createIndividual(); + $contactId = $this->individualCreate(); $joinDate = $startDate = date("Ymd", strtotime(date("Ymd") . " -6 month")); $endDate = date("Ymd", strtotime($joinDate . " +1 year -1 day")); $params = array( @@ -513,7 +503,7 @@ class CRM_Member_BAO_MembershipTest extends CiviUnitTestCase { $config->keyDisable = TRUE; $isTestMembership = 0; - list($MembershipRenew) = CRM_Member_BAO_Membership::renewMembership( + list($MembershipRenew) = CRM_Member_BAO_Membership::processMembership( $contactId, $this->_membershipTypeID, $isTestMembership, @@ -548,7 +538,7 @@ class CRM_Member_BAO_MembershipTest extends CiviUnitTestCase { */ public function testStaleMembership() { $statusId = 3; - $contactId = Contact::createIndividual(); + $contactId = $this->individualCreate(); $joinDate = $startDate = date("Ymd", strtotime(date("Ymd") . " -1 year -15 days")); $endDate = date("Ymd", strtotime($joinDate . " +1 year -1 day")); $params = array( @@ -600,7 +590,7 @@ class CRM_Member_BAO_MembershipTest extends CiviUnitTestCase { $membershipRenewal = new CRM_Core_Form(); $membershipRenewal->controller = new CRM_Core_Controller(); - list($MembershipRenew) = CRM_Member_BAO_Membership::renewMembership( + list($MembershipRenew) = CRM_Member_BAO_Membership::processMembership( $contactId, $this->_membershipTypeID, FALSE, @@ -627,4 +617,86 @@ class CRM_Member_BAO_MembershipTest extends CiviUnitTestCase { $this->contactDelete($contactId); } + public function testUpdateAllMembershipStatusConvertExpiredOverriddenStatusToNormal() { + $params = array( + 'contact_id' => $this->individualCreate(), + 'membership_type_id' => $this->_membershipTypeID, + 'join_date' => date('Ymd', time()), + 'start_date' => date('Ymd', time()), + 'end_date' => date('Ymd', strtotime('+1 year')), + 'source' => 'Payment', + 'is_override' => 1, + 'status_override_end_date' => date('Ymd', strtotime('-1 day')), + 'status_id' => $this->_membershipStatusID, + ); + $ids = array(); + $createdMembership = CRM_Member_BAO_Membership::create($params, $ids); + + CRM_Member_BAO_Membership::updateAllMembershipStatus(); + + $membershipAfterProcess = civicrm_api3('Membership', 'get', array( + 'sequential' => 1, + 'id' => $createdMembership->id, + 'return' => array('id', 'is_override', 'status_override_end_date'), + ))['values'][0]; + + $this->assertEquals($createdMembership->id, $membershipAfterProcess['id']); + $this->assertArrayNotHasKey('is_override', $membershipAfterProcess); + $this->assertArrayNotHasKey('status_override_end_date', $membershipAfterProcess); + } + + public function testUpdateAllMembershipStatusHandleOverriddenWithEndOverrideDateEqualTodayAsExpired() { + $params = array( + 'contact_id' => $this->individualCreate(), + 'membership_type_id' => $this->_membershipTypeID, + 'join_date' => date('Ymd', time()), + 'start_date' => date('Ymd', time()), + 'end_date' => date('Ymd', strtotime('+1 year')), + 'source' => 'Payment', + 'is_override' => 1, + 'status_override_end_date' => date('Ymd', time()), + 'status_id' => $this->_membershipStatusID, + ); + $ids = array(); + $createdMembership = CRM_Member_BAO_Membership::create($params, $ids); + + CRM_Member_BAO_Membership::updateAllMembershipStatus(); + + $membershipAfterProcess = civicrm_api3('Membership', 'get', array( + 'sequential' => 1, + 'id' => $createdMembership->id, + 'return' => array('id', 'is_override', 'status_override_end_date'), + ))['values'][0]; + + $this->assertEquals($createdMembership->id, $membershipAfterProcess['id']); + $this->assertArrayNotHasKey('is_override', $membershipAfterProcess); + $this->assertArrayNotHasKey('status_override_end_date', $membershipAfterProcess); + } + + public function testUpdateAllMembershipStatusDoesNotConvertOverridenMembershipWithoutEndOverrideDateToNormal() { + $params = array( + 'contact_id' => $this->individualCreate(), + 'membership_type_id' => $this->_membershipTypeID, + 'join_date' => date('Ymd', time()), + 'start_date' => date('Ymd', time()), + 'end_date' => date('Ymd', strtotime('+1 year')), + 'source' => 'Payment', + 'is_override' => 1, + 'status_id' => $this->_membershipStatusID, + ); + $ids = array(); + $createdMembership = CRM_Member_BAO_Membership::create($params, $ids); + + CRM_Member_BAO_Membership::updateAllMembershipStatus(); + + $membershipAfterProcess = civicrm_api3('Membership', 'get', array( + 'sequential' => 1, + 'id' => $createdMembership->id, + 'return' => array('id', 'is_override', 'status_override_end_date'), + ))['values'][0]; + + $this->assertEquals($createdMembership->id, $membershipAfterProcess['id']); + $this->assertEquals(1, $membershipAfterProcess['is_override']); + } + }