function CourseObjectFulfillmentTestCase::testCourseContentObjectFulfillment in Course 8.3
Same name and namespace in other branches
- 8.2 tests/src/Functional/CourseObjectFulfillmentTestCase.php \Drupal\Tests\course\Functional\CourseObjectFulfillmentTestCase::testCourseContentObjectFulfillment()
 
Test fulfillment of CourseObjects with an enrolled/unenrolled user
File
- tests/
src/ Functional/ CourseObjectFulfillmentTestCase.php, line 17  
Class
- CourseObjectFulfillmentTestCase
 - Description of CourseFulfillmentObjectTestCase
 
Namespace
Drupal\Tests\course\FunctionalCode
function testCourseContentObjectFulfillment() {
  // Add the course object to the course.
  $course = $this
    ->createCourse();
  $co1 = CourseObject::create([
    'object_type' => 'course_test_object',
  ]);
  $co1
    ->setCourse($course);
  $co1
    ->save();
  // Satisfy the object outside of the course.
  $co1
    ->getFulfillment($this->student_user)
    ->setComplete(TRUE)
    ->save();
  $this
    ->assertFalse($co1
    ->getFulfillment($this->student_user)
    ->isComplete(), 'Check that the object is not fulfilled.');
  // Enroll the user in the course.
  $course
    ->enroll($this->student_user);
  // Satisfy the object inside of the course.
  $co1
    ->getFulfillment($this->student_user)
    ->setOption('test_value', 'findMe123')
    ->setComplete(TRUE)
    ->save();
  $co1
    ->getFulfillment($this->student_user)
    ->setOption('test_value_undef', 'findMe123')
    ->setComplete(TRUE)
    ->save();
  $this
    ->assertEqual($co1
    ->getFulfillment($this->student_user)
    ->getOption('test_value'), 'findMe123', 'Check that defined fulfillment data was saved.');
  $this
    ->assertNotEqual($co1
    ->getFulfillment($this->student_user)
    ->getOption('test_value_undef'), 'findMe123', 'Check that undefined fulfillment data was not saved.');
  $this
    ->assertTrue($co1
    ->getFulfillment($this->student_user)
    ->isComplete(), 'Check that the object is fulfilled.');
}