19declare(strict_types=1);
21use PHPUnit\Framework\TestCase;
38 return "2021-12-02 12:55:33";
46 return $this->getWhereFromFilter($filter);
51 return $this->getOrderByFromSort($sort);
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);
250 $db = $this->createMock(ilDBInterface::class);
252 ->expects($this->exactly(2))
254 ->willReturnCallback(
255 function (
int $v,
string $type) use (&$consecutive) {
256 list($ev, $etype) = array_shift($consecutive);
257 $this->assertEquals($ev, $v);
258 $this->assertEquals($etype, $type);
264 ->expects($this->once())
267 ->willReturn($db_statement)
270 ->expects($this->once())
271 ->method(
"fetchAssoc")
272 ->with($db_statement)
276 $irss = $this->createMock(IRSS::class);
280 $this->expectException(ilIndividualAssessmentException::class);
281 $this->expectExceptionMessage(
"invalid usr-obj combination");
282 $obj->loadMember($iass, $usr);
290 .
"iassme.examiner_id,"
292 .
"iassme.internal_note,"
294 .
"iassme.notification_ts,"
295 .
"iassme.learning_progress,"
296 .
"iassme.finalized,"
298 .
"iassme.event_time,"
299 .
"iassme.user_view_file,"
300 .
"iassme.file_name,"
301 .
"iassme.changer_id,"
302 .
"iassme.change_time,"
303 .
"usr.login AS user_login,"
304 .
"ex.login AS examiner_login"
306 .
" JOIN usr_data usr ON iassme.usr_id = usr.usr_id\n"
307 .
" LEFT JOIN usr_data ex ON iassme.examiner_id = ex.usr_id\n"
308 .
" WHERE obj_id = 22\n"
309 .
" AND iassme.usr_id = 33"
312 $iass = $this->createMock(ilObjIndividualAssessment::class);
314 ->expects($this->once())
319 $usr = $this->createMock(ilObjUser::class);
321 ->expects($this->once())
326 $db_statement = $this->createMock(ilDBStatement::class);
332 $db = $this->createMock(ilDBInterface::class);
334 ->expects($this->exactly(2))
336 ->willReturnCallback(
337 function (
int $v,
string $type) use (&$consecutive) {
338 list($ev, $etype) = array_shift($consecutive);
339 $this->assertEquals($ev, $v);
340 $this->assertEquals($etype, $type);
346 ->expects($this->once())
349 ->willReturn($db_statement)
352 ->expects($this->once())
353 ->method(
"fetchAssoc")
354 ->with($db_statement)
358 $irss = $this->createMock(IRSS::class);
362 $this->expectException(ilIndividualAssessmentException::class);
363 $this->expectExceptionMessage(
"invalid usr-obj combination");
364 $obj->loadMember($iass, $usr);
369 $iass = $this->createMock(ilObjIndividualAssessment::class);
370 $usr = $this->createMock(ilObjUser::class);
372 ->expects($this->once())
373 ->method(
"getFullname")
374 ->willReturn(
"Full Name")
395 $db = $this->createMock(ilDBInterface::class);
398 $member = $obj->createAssessmentMemberWrapper($iass, $usr, $record);
400 $this->assertEquals(
"Full Name", $member->getGrading()->getName());
401 $this->assertEquals(11, $member->changerId());
402 $this->assertEquals(
"2021-12-02", $member->changeTime()->format(
"Y-m-d"));
403 $this->assertEquals(22, $member->examinerId());
404 $this->assertEquals(
$timestamp, $member->notificationTS());
405 $this->assertEquals(
$timestamp, $member->eventTime()->getTimestamp());
406 $this->assertEquals(
"record", $member->record());
407 $this->assertEquals(
"internal_note", $member->internalNote());
408 $this->assertEquals(
"file_name", $member->fileName());
409 $this->assertTrue($member->viewFile());
410 $this->assertEquals(33, $member->LPStatus());
411 $this->assertTrue($member->notify());
412 $this->assertTrue($member->finalized());
418 $date = (
new DateTimeImmutable())->setTimestamp(
$timestamp);
420 $member = $this->createMock(ilIndividualAssessmentMember::class);
422 ->expects($this->once())
423 ->method(
"assessmentId")
427 ->expects($this->once())
432 ->expects($this->once())
433 ->method(
"eventTime")
437 ->expects($this->once())
442 ->expects($this->once())
443 ->method(
"examinerId")
447 ->expects($this->once())
449 ->willReturn(
"record")
452 ->expects($this->once())
453 ->method(
"internalNote")
454 ->willReturn(
"internalNote")
457 ->expects($this->once())
459 ->willReturn(
"place")
462 ->expects($this->once())
467 ->expects($this->once())
468 ->method(
"finalized")
472 ->expects($this->once())
473 ->method(
"notificationTS")
477 ->expects($this->once())
479 ->willReturn(
"fileName")
482 ->expects($this->once())
487 ->expects($this->once())
488 ->method(
"changerId")
492 $db = $this->createMock(ilDBInterface::class);
496 "obj_id" => [
"integer", 11],
497 "usr_id" => [
"integer", 22]
517 ->expects($this->once())
519 ->with(
"iass_members", $values, $where)
523 $obj->updateMember($member);
528 $iass = $this->createMock(ilObjIndividualAssessment::class);
530 ->expects($this->exactly(2))
535 $sql =
"DELETE FROM iass_members WHERE obj_id = 22";
537 $db = $this->createMock(ilDBInterface::class);
539 ->expects($this->any())
541 ->with(22,
"integer")
545 ->expects($this->once())
546 ->method(
"manipulate")
550 $irss = $this->createMock(IRSS::class);
553 $obj->deleteMembers($iass);
560 $iass = $this->createMock(ilObjIndividualAssessment::class);
562 ->expects($this->once())
567 $db = $this->createMock(ilDBInterface::class);
588 "obj_id" => [
"integer", 11],
606 ->expects($this->once())
608 ->with(
"iass_members", $values)
611 $obj->insertMembersRecord($iass, $record);
616 $iass = $this->createMock(ilObjIndividualAssessment::class);
618 ->expects($this->once())
626 "DELETE FROM iass_members" . PHP_EOL
627 .
"WHERE obj_id = 11" . PHP_EOL
628 .
"AND usr_id = 22" . PHP_EOL
635 $db = $this->createMock(ilDBInterface::class);
637 ->expects($this->exactly(2))
639 ->willReturnCallback(
640 function (
int $v,
string $type) use (&$consecutive) {
641 list($ev, $etype) = array_shift($consecutive);
642 $this->assertEquals($ev, $v);
643 $this->assertEquals($etype, $type);
649 ->expects($this->once())
650 ->method(
"manipulate")
654 $irss = $this->createMock(IRSS::class);
657 $obj->removeMembersRecord($iass, $record);
665 " AND finalized = 0 AND examiner_id IS NULL\n"
669 " AND finalized = 0 AND examiner_id IS NOT NULL\n"
673 " AND finalized = 1 AND learning_progress = 2\n"
677 " AND finalized = 1 AND learning_progress = 3\n"
686 #[\PHPUnit\Framework\Attributes\DataProvider('dataFor_getWhereFromFilter')]
689 $db = $this->createMock(ilDBInterface::class);
691 $res = $obj->getWhereFromFilterWrapper($filter);
693 $this->assertEquals($result,
$res);
698 $db = $this->createMock(ilDBInterface::class);
703 $res = $obj->getOrderByFromSortWrapper($sort);
705 $this->assertEquals(
" ORDER BY test foo",
$res);
foreach($mandatory_scripts as $file) $timestamp
Edit the record of a user, set LP.
const FIELD_INTERNAL_NOTE
const FIELD_CHANGER_LASTNAME
const FIELD_USER_VIEW_FILE
const FIELD_CHANGER_FIRSTNAME
const LP_ASSESSMENT_NOT_COMPLETED
const FIELD_EXAMINER_FIRSTNAME
const FIELD_NOTIFICATION_TS
const FIELD_LEARNING_PROGRESS
const FIELD_EXAMINER_LASTNAME
For the purpose of streamlining the grading and learning-process status definition outside of tests,...
return['delivery_method'=> 'php',]
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...