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