19 declare(strict_types=1);
    38         return "2021-12-02 12:55:33";
    59         $irss = $this->createMock(IRSS::class);
    70         $db = $this->createMock(ilDBInterface::class);
    71         $irss = $this->createMock(IRSS::class);
    77         $this->assertInstanceOf(ilIndividualAssessmentMembersStorageDB::class, $obj);
    90             . 
"     ,iassme.obj_id, iassme.usr_id, iassme.examiner_id, iassme.record, iassme.internal_note, iassme.notify"    91             . 
"     ,iassme.notification_ts, iassme.learning_progress, iassme.finalized,iassme.place"    92             . 
"     ,iassme.event_time, iassme.changer_id, iassme.change_time\n"    93             . 
" FROM iass_members iassme"    94             . 
" JOIN usr_data usr ON iassme.usr_id = usr.usr_id"    95             . 
" LEFT JOIN usr_data ex ON iassme.examiner_id = ex.usr_id"    96             . 
" LEFT JOIN usr_data ud ON iassme.changer_id = ud.usr_id"    97             . 
" WHERE obj_id = 22";
   100         $iass = $this->createMock(ilObjIndividualAssessment::class);
   102             ->expects($this->once())
   107         $db_statement = $this->createMock(ilDBStatement::class);
   109         $db = $this->createMock(ilDBInterface::class);
   111             ->expects($this->once())
   113             ->with(22, 
"integer")
   117             ->expects($this->once())
   120             ->willReturn($db_statement)
   123             ->expects($this->any())
   124             ->method(
"fetchAssoc")
   125             ->with($db_statement)
   131             $this->createMock(IRSS::class),
   135         $result = $obj->loadMembers($iass);
   136         $this->assertInstanceOf(ilIndividualAssessmentMembers::class, $result);
   144             . 
"iassme.examiner_id,"   146             . 
"iassme.internal_note,"   148             . 
"iassme.notification_ts,"   149             . 
"iassme.learning_progress,"   150             . 
"iassme.finalized,"   152             . 
"iassme.event_time,"   153             . 
"iassme.user_view_file,"   154             . 
"iassme.file_name,"   155             . 
"iassme.changer_id,"   156             . 
"iassme.change_time,"   157             . 
"usr.login AS user_login,"   158             . 
"ex.login AS examiner_login"   160             . 
" JOIN usr_data usr ON iassme.usr_id = usr.usr_id\n"   161             . 
" LEFT JOIN usr_data ex ON iassme.examiner_id = ex.usr_id\n"   162             . 
" WHERE obj_id = 22"   165         $iass = $this->createMock(ilObjIndividualAssessment::class);
   167             ->expects($this->once())
   172         $db_statement = $this->createMock(ilDBStatement::class);
   174         $db = $this->createMock(ilDBInterface::class);
   176             ->expects($this->once())
   178             ->with(22, 
"integer")
   182             ->expects($this->once())
   185             ->willReturn($db_statement)
   188             ->expects($this->once())
   189             ->method(
"fetchAssoc")
   190             ->with($db_statement)
   194         $irss = $this->createMock(IRSS::class);
   197         $result = $obj->loadMembersAsSingleObjects($iass);
   199         $this->assertIsArray($result);
   200         $this->assertEmpty($result);
   208             . 
"iassme.examiner_id,"   210             . 
"iassme.internal_note,"   212             . 
"iassme.notification_ts,"   213             . 
"iassme.learning_progress,"   214             . 
"iassme.finalized,"   216             . 
"iassme.event_time,"   217             . 
"iassme.user_view_file,"   218             . 
"iassme.file_name,"   219             . 
"iassme.changer_id,"   220             . 
"iassme.change_time,"   221             . 
"usr.login AS user_login,"   222             . 
"ex.login AS examiner_login"   224             . 
" JOIN usr_data usr ON iassme.usr_id = usr.usr_id\n"   225             . 
" LEFT JOIN usr_data ex ON iassme.examiner_id = ex.usr_id\n"   226             . 
" WHERE obj_id = 22\n"   227             . 
"         AND iassme.usr_id = 33"   230         $iass = $this->createMock(ilObjIndividualAssessment::class);
   232             ->expects($this->once())
   237         $usr = $this->createMock(ilObjUser::class);
   239             ->expects($this->once())
   244         $db_statement = $this->createMock(ilDBStatement::class);
   246         $db = $this->createMock(ilDBInterface::class);
   248             ->expects($this->exactly(2))
   250             ->withConsecutive([22, 
"integer"], [33, 
"integer"])
   251             ->willReturnOnConsecutiveCalls(
"22", 
"33")
   254             ->expects($this->once())
   257             ->willReturn($db_statement)
   260             ->expects($this->once())
   261             ->method(
"fetchAssoc")
   262             ->with($db_statement)
   266         $irss = $this->createMock(IRSS::class);
   270         $this->expectException(ilIndividualAssessmentException::class);
   271         $this->expectExceptionMessage(
"invalid usr-obj combination");
   272         $obj->loadMember($iass, $usr);
   280             . 
"iassme.examiner_id,"   282             . 
"iassme.internal_note,"   284             . 
"iassme.notification_ts,"   285             . 
"iassme.learning_progress,"   286             . 
"iassme.finalized,"   288             . 
"iassme.event_time,"   289             . 
"iassme.user_view_file,"   290             . 
"iassme.file_name,"   291             . 
"iassme.changer_id,"   292             . 
"iassme.change_time,"   293             . 
"usr.login AS user_login,"   294             . 
"ex.login AS examiner_login"   296             . 
" JOIN usr_data usr ON iassme.usr_id = usr.usr_id\n"   297             . 
" LEFT JOIN usr_data ex ON iassme.examiner_id = ex.usr_id\n"   298             . 
" WHERE obj_id = 22\n"   299             . 
"         AND iassme.usr_id = 33"   302         $iass = $this->createMock(ilObjIndividualAssessment::class);
   304             ->expects($this->once())
   309         $usr = $this->createMock(ilObjUser::class);
   311             ->expects($this->once())
   316         $db_statement = $this->createMock(ilDBStatement::class);
   318         $db = $this->createMock(ilDBInterface::class);
   320             ->expects($this->exactly(2))
   322             ->withConsecutive([22, 
"integer"], [33, 
"integer"])
   323             ->willReturnOnConsecutiveCalls(
"22", 
"33")
   326             ->expects($this->once())
   329             ->willReturn($db_statement)
   332             ->expects($this->once())
   333             ->method(
"fetchAssoc")
   334             ->with($db_statement)
   338         $irss = $this->createMock(IRSS::class);
   342         $this->expectException(ilIndividualAssessmentException::class);
   343         $this->expectExceptionMessage(
"invalid usr-obj combination");
   344         $obj->loadMember($iass, $usr);
   349         $iass = $this->createMock(ilObjIndividualAssessment::class);
   350         $usr = $this->createMock(ilObjUser::class);
   352             ->expects($this->once())
   353             ->method(
"getFullname")
   354             ->willReturn(
"Full Name")
   375         $db = $this->createMock(ilDBInterface::class);
   376         $obj = $this->getWrapperObj($db);
   378         $member = $obj->createAssessmentMemberWrapper($iass, $usr, $record);
   380         $this->assertEquals(
"Full Name", $member->getGrading()->getName());
   381         $this->assertEquals(11, $member->changerId());
   382         $this->assertEquals(
"2021-12-02", $member->changeTime()->format(
"Y-m-d"));
   383         $this->assertEquals(22, $member->examinerId());
   384         $this->assertEquals(
$timestamp, $member->notificationTS());
   385         $this->assertEquals(
$timestamp, $member->eventTime()->getTimestamp());
   386         $this->assertEquals(
"record", $member->record());
   387         $this->assertEquals(
"internal_note", $member->internalNote());
   388         $this->assertEquals(
"file_name", $member->fileName());
   389         $this->assertTrue($member->viewFile());
   390         $this->assertEquals(33, $member->LPStatus());
   391         $this->assertTrue($member->notify());
   392         $this->assertTrue($member->finalized());
   400         $member = $this->createMock(ilIndividualAssessmentMember::class);
   402             ->expects($this->once())
   403             ->method(
"assessmentId")
   407             ->expects($this->once())
   412             ->expects($this->once())
   413             ->method(
"eventTime")
   417             ->expects($this->once())
   422             ->expects($this->once())
   423             ->method(
"examinerId")
   427             ->expects($this->once())
   429             ->willReturn(
"record")
   432             ->expects($this->once())
   433             ->method(
"internalNote")
   434             ->willReturn(
"internalNote")
   437             ->expects($this->once())
   439             ->willReturn(
"place")
   442             ->expects($this->once())
   447             ->expects($this->once())
   448             ->method(
"finalized")
   452             ->expects($this->once())
   453             ->method(
"notificationTS")
   457             ->expects($this->once())
   459             ->willReturn(
"fileName")
   462             ->expects($this->once())
   467             ->expects($this->once())
   468             ->method(
"changerId")
   472         $db = $this->createMock(ilDBInterface::class);
   473         $obj = $this->getWrapperObj($db);
   476             "obj_id" => [
"integer", 11],
   477             "usr_id" => [
"integer", 22]
   497             ->expects($this->once())
   499             ->with(
"iass_members", $values, $where)
   503         $obj->updateMember($member);
   508         $iass = $this->createMock(ilObjIndividualAssessment::class);
   510             ->expects($this->exactly(2))
   515         $sql = 
"DELETE FROM iass_members WHERE obj_id = 22";
   517         $db = $this->createMock(ilDBInterface::class);
   519             ->expects($this->any())
   521             ->with(22, 
"integer")
   525             ->expects($this->once())
   526             ->method(
"manipulate")
   530         $irss = $this->createMock(IRSS::class);
   533         $obj->deleteMembers($iass);
   540         $iass = $this->createMock(ilObjIndividualAssessment::class);
   542             ->expects($this->once())
   547         $db = $this->createMock(ilDBInterface::class);
   548         $obj = $this->getWrapperObj($db);
   568             "obj_id" => [
"integer", 11],
   571             ilIndividualAssessmentMembers::FIELD_NOTIFY => [
"integer", 
true],
   586             ->expects($this->once())
   588             ->with(
"iass_members", $values)
   591         $obj->insertMembersRecord($iass, $record);
   596         $iass = $this->createMock(ilObjIndividualAssessment::class);
   598             ->expects($this->once())
   606             "DELETE FROM iass_members" . PHP_EOL
   607             . 
"WHERE obj_id = 11" . PHP_EOL
   608             . 
"AND usr_id = 22" . PHP_EOL
   611         $db = $this->createMock(ilDBInterface::class);
   613             ->expects($this->exactly(2))
   615             ->withConsecutive([11, 
"integer"], [22, 
"integer"])
   616             ->willReturnOnConsecutiveCalls(
"11", 
"22")
   619             ->expects($this->once())
   620             ->method(
"manipulate")
   624         $irss = $this->createMock(IRSS::class);
   627         $obj->removeMembersRecord($iass, $record);
   635                 "      AND finalized = 0 AND examiner_id IS NULL\n"   639                 "      AND finalized = 0 AND examiner_id IS NOT NULL\n"   643                 "      AND finalized = 1 AND learning_progress = 2\n"   647                 "      AND finalized = 1 AND learning_progress = 3\n"   661         $db = $this->createMock(ilDBInterface::class);
   662         $obj = $this->getWrapperObj($db);
   663         $res = $obj->getWhereFromFilterWrapper($filter);
   665         $this->assertEquals($result, 
$res);
   670         $db = $this->createMock(ilDBInterface::class);
   671         $obj = $this->getWrapperObj($db);
   675         $res = $obj->getOrderByFromSortWrapper($sort);
   677         $this->assertEquals(
" ORDER BY test foo", 
$res);
 
For the purpose of streamlining the grading and learning-process status definition outside of tests...
 
const FIELD_INTERNAL_NOTE
 
const FIELD_LEARNING_PROGRESS
 
const FIELD_CHANGER_FIRSTNAME
 
const FIELD_USER_VIEW_FILE
 
const LP_ASSESSMENT_NOT_COMPLETED
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
const FIELD_EXAMINER_FIRSTNAME
 
const FIELD_NOTIFICATION_TS
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
foreach($mandatory_scripts as $file) $timestamp
 
const FIELD_EXAMINER_LASTNAME
 
const FIELD_CHANGER_LASTNAME