X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=tests%2Fphpunit%2FCRM%2FMember%2FBAO%2FMembershipTest.php;h=1585b0260441020ec7af0a28be0d0cdf97b40f18;hb=e136f704594ddead8e78f52d53ec080825bdb1e2;hp=8f09d4eec95a3a72e06d4e553bb9afe61512b712;hpb=356bfcaf4b68da484020eb13a1f941b361424052;p=civicrm-core.git diff --git a/tests/phpunit/CRM/Member/BAO/MembershipTest.php b/tests/phpunit/CRM/Member/BAO/MembershipTest.php index 8f09d4eec9..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. | | | @@ -617,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']); + } + }