/**
  * 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');
 }