CourseObjectFulfillmentTest.php in Course 3.x        
                          
                  
                        
  
  
  
  
  
File
  tests/src/Functional/CourseObjectFulfillmentTest.php
  
    View source  
  <?php
namespace Drupal\Tests\course\Functional;
use Drupal\course\Entity\CourseObject;
class CourseObjectFulfillmentTest extends CourseTestBase {
  
  function testCourseContentObjectFulfillment() {
    
    $course = $this
      ->createCourse();
    $co1 = CourseObject::create([
      'object_type' => 'course_test_object',
    ]);
    $co1
      ->setCourse($course);
    $co1
      ->save();
    
    $co1
      ->getFulfillment($this->student_user)
      ->setComplete(TRUE)
      ->save();
    $this
      ->assertFalse($co1
      ->getFulfillment($this->student_user)
      ->isComplete(), 'Check that the object is not fulfilled.');
    
    $course
      ->enroll($this->student_user);
    
    $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.');
  }
}