X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=tests%2Fphpunit%2Fapi%2Fv3%2FMembershipTest.php;h=3738afe9281499bdd973c19c719bf9e59bf98dde;hb=c0afaa3afad5c0b5aa4f06be9b6bd64316420740;hp=47be4355b9a4f488fa8ddcecdef91a3508d39c07;hpb=47494d2f1f27f2ee2755f0e79a265757d63da8a5;p=civicrm-core.git diff --git a/tests/phpunit/api/v3/MembershipTest.php b/tests/phpunit/api/v3/MembershipTest.php index 47be4355b9..3738afe928 100644 --- a/tests/phpunit/api/v3/MembershipTest.php +++ b/tests/phpunit/api/v3/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. | | | @@ -93,6 +93,7 @@ class api_v3_MembershipTest extends CiviUnitTestCase { 'civicrm_membership', 'civicrm_membership_payment', 'civicrm_membership_log', + 'civicrm_uf_match', ), TRUE ); @@ -163,6 +164,47 @@ class api_v3_MembershipTest extends CiviUnitTestCase { $this->assertDBRowNotExist('CRM_Contribute_DAO_Contribution', $ContributionCreate['values'][0]['id']); } + /** + * Test Activity creation on cancellation of membership contribution. + */ + public function testActivityForCancelledContribution() { + $contactId = $this->createLoggedInUser(); + $membershipID = $this->contactMembershipCreate($this->_params); + $this->assertDBRowExist('CRM_Member_DAO_Membership', $membershipID); + + $ContributionCreate = $this->callAPISuccess('Contribution', 'create', array( + 'financial_type_id' => "Member Dues", + 'total_amount' => 100, + 'contact_id' => $this->_params['contact_id'], + )); + $membershipPaymentCreate = $this->callAPISuccess('MembershipPayment', 'create', array( + 'sequential' => 1, + 'contribution_id' => $ContributionCreate['id'], + 'membership_id' => $membershipID, + )); + $instruments = $this->callAPISuccess('contribution', 'getoptions', array('field' => 'payment_instrument_id')); + $this->paymentInstruments = $instruments['values']; + + $form = new CRM_Contribute_Form_Contribution(); + $form->_id = $ContributionCreate['id']; + $form->testSubmit(array( + 'total_amount' => 100, + 'financial_type_id' => 1, + 'receive_date' => '04/21/2015', + 'receive_date_time' => '11:27PM', + 'contact_id' => $contactId, + 'payment_instrument_id' => array_search('Check', $this->paymentInstruments), + 'contribution_status_id' => 3, + ), + CRM_Core_Action::UPDATE); + + $activity = $this->callAPISuccess('Activity', 'get', array( + 'activity_type_id' => "Change Membership Status", + 'source_record_id' => $membershipID, + )); + $this->assertNotEmpty($activity['values']); + } + /** * Test membership get. */ @@ -806,6 +848,19 @@ class api_v3_MembershipTest extends CiviUnitTestCase { ); $result = $this->callAPISuccess('membership', 'create', $params); + + //Update Status and check activities created. + $updateStatus = array( + 'id' => $result['id'], + 'status_id' => CRM_Core_PseudoConstant::getKey('CRM_Member_BAO_Membership', 'status_id', 'Cancelled'), + ); + $this->callAPISuccess('Membership', 'create', $updateStatus); + $activities = CRM_Activity_BAO_Activity::getContactActivity($this->_contactID); + $this->assertEquals(2, count($activities)); + $activityNames = array_flip(CRM_Utils_Array::collect('activity_name', $activities)); + $this->assertArrayHasKey('Membership Signup', $activityNames); + $this->assertArrayHasKey('Change Membership Status', $activityNames); + $this->callAPISuccess('Membership', 'Delete', array( 'id' => $result['id'], )); @@ -1154,10 +1209,15 @@ class api_v3_MembershipTest extends CiviUnitTestCase { $joinDate = date('Y-m-d'); $year = date('Y'); $startDate = date('Y-m-d', strtotime(date('Y-03-01'))); + $rollOver = TRUE; + if (strtotime($startDate) > time()) { + $rollOver = FALSE; + $startDate = date('Y-m-d', strtotime(date('Y-03-01') . '- 1 year')); + } $membershipTypeDetails = CRM_Member_BAO_MembershipType::getMembershipTypeDetails($this->_membershipTypeID2); $fixedPeriodRollover = CRM_Member_BAO_MembershipType::isDuringFixedAnnualRolloverPeriod($joinDate, $membershipTypeDetails, $year, $startDate); $y = 1; - if ($fixedPeriodRollover) { + if ($fixedPeriodRollover && $rollOver) { $y += 1; }