ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
SuggestedSolutionTest.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
21use PHPUnit\Framework\TestCase;
24use ILIAS\TestQuestionPool\Questions\SuggestedSolution\SuggestedSolutionText;
27
34{
35 public function getSolution(
36 int $id,
37 int $question_id,
38 string $internal_link,
39 string $import_id,
40 int $subquestion_index,
41 string $type,
42 string $value,
43 DateTimeImmutable $last_update
46 $id,
47 $question_id,
48 $internal_link,
49 $import_id,
50 $subquestion_index,
51 $type,
52 $value,
53 $last_update
54 );
55 }
56}
57
58class SuggestedSolutionTest extends TestCase
59{
61 protected function setUp(): void
62 {
63 $this->repo = new SuggestedSolutionRepoMock(
64 $this->createMock(ilDBInterface::class),
65 );
66 }
67
69 {
70 $id = 123;
71 $question_id = 321;
72 $internal_link = '';
73 $import_id = 'imported_xy';
74 $subquestion_index = 0;
75 $type = SuggestedSolution::TYPE_FILE;
76
77 $values = [
78 'name' => 'something.jpg',
79 'type' => 'image/jpeg',
80 'size' => 120,
81 'filename' => 'actually title of file',
82 ];
83
84 $last_update = new DateTimeImmutable();
85
86 $sugsol = $this->repo->getSolution(
87 $id,
88 $question_id,
89 $internal_link,
90 $import_id,
91 $subquestion_index,
92 $type,
93 serialize($values),
94 $last_update,
95 );
96 $this->assertInstanceOf(SuggestedSolution::class, $sugsol);
97 $this->assertInstanceOf(SuggestedSolutionFile::class, $sugsol);
98
99 $this->assertEquals($values[$sugsol::ARRAY_KEY_TITLE], $sugsol->getTitle());
100 $this->assertEquals($values[$sugsol::ARRAY_KEY_MIME], $sugsol->getMime());
101 $this->assertEquals($values[$sugsol::ARRAY_KEY_SIZE], $sugsol->getSize());
102 $this->assertEquals($values[$sugsol::ARRAY_KEY_FILENAME], $sugsol->getFilename());
103 $this->assertEquals(serialize($values), $sugsol->getStorableValue());
104 $this->assertTrue($sugsol->isOfTypeFile());
105 $this->assertFalse($sugsol->isOfTypeLink());
106
107 return $sugsol;
108 }
109
110
111 #[\PHPUnit\Framework\Attributes\Depends('testSuggestedSolutionFile')]
113 {
114 $values = [
115 'name' => 'somethingelse.ico',
116 'type' => 'image/x-icon',
117 'size' => 11,
118 'filename' => '',
119 ];
120
121 $sugsol = $sugsol
122 ->withTitle($values['filename'])
123 ->withMime($values['type'])
124 ->withSize($values['size'])
125 ->withFilename($values['name']);
126
127 $this->assertEquals($values['name'], $sugsol->getTitle());
128 $this->assertEquals($values['name'], $sugsol->getFileName());
129 $this->assertEquals($values['type'], $sugsol->getMime());
130 $this->assertEquals($values['size'], $sugsol->getSize());
131
132 $nu_title = 'another title';
133 $this->assertEquals($nu_title, $sugsol->withTitle($nu_title)->getTitle());
134 }
135}
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23
buildSuggestedSolution(int $id, int $question_id, string $internal_link, string $import_id, int $subquestion_index, string $type, string $value, \DateTimeImmutable $last_update)
test the suggested solution immutable(s)
getSolution(int $id, int $question_id, string $internal_link, string $import_id, int $subquestion_index, string $type, string $value, DateTimeImmutable $last_update)
SuggestedSolutionRepoMock $repo
testSuggestedSolutionMutatorsFile(SuggestedSolutionFile $sugsol)
return['delivery_method'=> 'php',]
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...