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