/** * VOL-154: Verifies that an activity created in a project is tagged with the * project's campaign. */ function testCampaignInheritance() { // begin setup $campaign = CRM_Core_DAO::createTestObject('CRM_Campaign_BAO_Campaign'); $this->assertObjectHasAttribute('id', $campaign, 'Failed to prepopulate Campaign'); $project = CRM_Core_DAO::createTestObject('CRM_Volunteer_BAO_Project', array('campaign_id' => $campaign->id)); $this->assertObjectHasAttribute('id', $project, 'Failed to prepopulate Volunteer Project'); $need = CRM_Core_DAO::createTestObject('CRM_Volunteer_BAO_Need', array('project_id' => $project->id)); $this->assertObjectHasAttribute('id', $need, 'Failed to prepopulate Volunteer Need'); // end setup $activityId = CRM_Volunteer_BAO_Assignment::createVolunteerActivity(array('assignee_contact_id' => 1, 'source_contact_id' => 1, 'volunteer_need_id' => $need->id)); $this->assertNotSame(FALSE, $activityId, 'Failed to create Volunteer Activity'); $createdActivity = CRM_Volunteer_BAO_Assignment::findById($activityId); $this->assertEquals($campaign->id, $createdActivity->campaign_id, 'Activity did not inherit campaign from volunteer project'); }
/** * VOL-154: Verifies that, when a project's campaign is updated, the campaign * for each associated activity is as well. */ function testProjectCampaignUpdate() { $testObjects = $this->_createTestObjects(); CRM_Volunteer_BAO_Project::create(array('campaign_id' => $testObjects['campaign']->id, 'id' => $testObjects['project']->id)); $updatedActivity = CRM_Volunteer_BAO_Assignment::findById($testObjects['activity']['id']); $this->assertEquals($testObjects['campaign']->id, $updatedActivity->campaign_id, 'Activity campaign was not updated with project campaign'); // Test unsetting campaign from a project. CRM_Volunteer_BAO_Project::create(array('campaign_id' => '', 'id' => $testObjects['project']->id)); $updatedActivity = CRM_Volunteer_BAO_Assignment::findById($testObjects['activity']['id']); $this->assertEquals('', $updatedActivity->campaign_id, 'Activity campaign was not updated with empty project campaign'); }