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