ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
ILIAS\LegalDocuments\test\Provide\ProvideDocumentTest Class Reference
+ Inheritance diagram for ILIAS\LegalDocuments\test\Provide\ProvideDocumentTest:
+ Collaboration diagram for ILIAS\LegalDocuments\test\Provide\ProvideDocumentTest:

Public Member Functions

 testConstruct ()
 
 testTableReadOnly ()
 
 testTableEditable ()
 
 testChooseDocumentFor ()
 
 testDocumentMatches ()
 
 testRepository ()
 
 testHash ()
 
 testToCondition ()
 
 testConditionGroupsWithoutContent ()
 
 testConditionGroups ()
 
 testValidateCriteriaContent ()
 
 testDuplicateCriteriaContent ()
 
 testNeverMatchingCriteriaContent ()
 
 testContentAsComponent ()
 

Detailed Description

Definition at line 56 of file ProvideDocumentTest.php.

Member Function Documentation

◆ testChooseDocumentFor()

ILIAS\LegalDocuments\test\Provide\ProvideDocumentTest::testChooseDocumentFor ( )

Definition at line 117 of file ProvideDocumentTest.php.

117 : void
118 {
119 $document = $this->mockMethod(Document::class, 'criteria', [], []);
120 $user = $this->mock(ilObjUser::class);
121
122 $criterion = $this->mockTree(Criterion::class, ['content' => ['type' => 'bar']]);
123
124 $repository = $this->mockMethod(DocumentRepository::class, 'all', [], [
125 $this->mockMethod(Document::class, 'criteria', [], [$criterion]),
126 $document,
127 ]);
128
129 $instance = new ProvideDocument('foo', $repository, new SelectionMap([
130 'bar' => $this->mockMethod(ConditionDefinition::class, 'withCriterion', [$criterion->content()], $this->mockMethod(
131 Condition::class,
132 'eval',
133 [$user],
134 false
135 )),
136 ]), [], $this->mock(Container::class));
137 $result = $instance->chooseDocumentFor($user);
138 $this->assertTrue($result->isOk());
139 $this->assertSame($document, $result->value());
140 }

◆ testConditionGroups()

ILIAS\LegalDocuments\test\Provide\ProvideDocumentTest::testConditionGroups ( )

Definition at line 199 of file ProvideDocumentTest.php.

199 : void
200 {
201 $group = $this->mock(Group::class);
202 $content = $this->mockTree(CriterionContent::class, [
203 'type' => 'baz',
204 'arguments' => ['a', 'b', 'c'],
205 ]);
206
207 $instance = new ProvideDocument('foo', $this->mock(DocumentRepository::class), new SelectionMap([
208 'bar' => $this->mockMethod(ConditionDefinition::class, 'formGroup', [[]], $group),
209 'baz' => $this->mockMethod(ConditionDefinition::class, 'formGroup', [$content->arguments()], $group),
210 ]), [], $this->mock(Container::class));
211
212 $this->assertSame(['bar' => $group, 'baz' => $group], $instance->conditionGroups($content)->choices());
213 }

◆ testConditionGroupsWithoutContent()

ILIAS\LegalDocuments\test\Provide\ProvideDocumentTest::testConditionGroupsWithoutContent ( )

Definition at line 187 of file ProvideDocumentTest.php.

187 : void
188 {
189 $group = $this->mock(Group::class);
190
191 $instance = new ProvideDocument('foo', $this->mock(DocumentRepository::class), new SelectionMap([
192 'bar' => $this->mockMethod(ConditionDefinition::class, 'formGroup', [[]], $group),
193 'baz' => $this->mockMethod(ConditionDefinition::class, 'formGroup', [[]], $group),
194 ]), [], $this->mock(Container::class));
195
196 $this->assertSame(['bar' => $group, 'baz' => $group], $instance->conditionGroups()->choices());
197 }

◆ testConstruct()

ILIAS\LegalDocuments\test\Provide\ProvideDocumentTest::testConstruct ( )

Definition at line 60 of file ProvideDocumentTest.php.

60 : void
61 {
62 $this->assertInstanceOf(ProvideDocument::class, new ProvideDocument(
63 'foo',
64 $this->mock(DocumentRepository::class),
65 new SelectionMap(),
66 [],
67 $this->mockTree(Container::class, ['user' => ['getTimeZone' => 'europe/berlin']])
68 ));
69 }

◆ testContentAsComponent()

ILIAS\LegalDocuments\test\Provide\ProvideDocumentTest::testContentAsComponent ( )

Definition at line 278 of file ProvideDocumentTest.php.

278 : void
279 {
280 $content = $this->mockTree(DocumentContent::class, ['type' => 'html']);
281 $component = $this->mock(Component::class);
282
283 $instance = new ProvideDocument('foo', $this->mock(DocumentRepository::class), new SelectionMap(), [
284 'html' => function (DocumentContent $c) use ($content, $component): Component {
285 $this->assertSame($content, $c);
286 return $component;
287 }
288 ], $this->mock(Container::class));
289
290 $this->assertSame($component, $instance->contentAsComponent($content));
291 }
$c
Definition: deliver.php:25

References $c.

◆ testDocumentMatches()

ILIAS\LegalDocuments\test\Provide\ProvideDocumentTest::testDocumentMatches ( )

Definition at line 142 of file ProvideDocumentTest.php.

142 : void
143 {
144 $criterion = $this->mockTree(Criterion::class, ['content' => ['type' => 'bar']]);
145 $document = $this->mockMethod(Document::class, 'criteria', [], [$criterion]);
146 $user = $this->mock(ilObjUser::class);
147
148 $instance = new ProvideDocument('doo', $this->mock(DocumentRepository::class), new SelectionMap([
149 'bar' => $this->mockMethod(ConditionDefinition::class, 'withCriterion', [$criterion->content()], $this->mockMethod(
150 Condition::class,
151 'eval',
152 [$user],
153 true
154 )),
155 ]), [], $this->mock(Container::class));
156
157 $this->assertTrue($instance->documentMatches($document, $user));
158 }

◆ testDuplicateCriteriaContent()

ILIAS\LegalDocuments\test\Provide\ProvideDocumentTest::testDuplicateCriteriaContent ( )

Definition at line 246 of file ProvideDocumentTest.php.

246 : void
247 {
248 $content = new CriterionContent('foo', ['bar']);
249
250 $instance = new ProvideDocument('foo', $this->mock(DocumentRepository::class), new SelectionMap(), [], $this->mock(Container::class));
251 $result = $instance->validateCriteriaContent([
252 $this->mockTree(Criterion::class, ['content' => new CriterionContent('foo', ['bar'])])
253 ], $content);
254 $this->assertFalse($result->isOk());
255 $this->assertSame(ProvideDocument::CRITERION_ALREADY_EXISTS, $result->error());
256 }

References ILIAS\LegalDocuments\Provide\ProvideDocument\CRITERION_ALREADY_EXISTS.

◆ testHash()

ILIAS\LegalDocuments\test\Provide\ProvideDocumentTest::testHash ( )

Definition at line 167 of file ProvideDocumentTest.php.

167 : void
168 {
169 $instance = new ProvideDocument('foo', $this->mock(DocumentRepository::class), new SelectionMap(), [], $this->mock(Container::class));
170 $hash = $instance->hash();
171 $this->assertTrue(is_string($hash));
172 $this->assertSame(254, strlen($hash));
173 }

◆ testNeverMatchingCriteriaContent()

ILIAS\LegalDocuments\test\Provide\ProvideDocumentTest::testNeverMatchingCriteriaContent ( )

Definition at line 258 of file ProvideDocumentTest.php.

258 : void
259 {
260 $content = new CriterionContent('foo', ['bar']);
261 $existing_content = new CriterionContent('hoo', ['haz']);
262
263 $condition = $this->mock(Condition::class);
264 $condition->expects(self::once())->method('knownToNeverMatchWith')->with($condition)->willReturn(true);
265
266 $instance = new ProvideDocument('foo', $this->mock(DocumentRepository::class), new SelectionMap([
267 'hoo' => $this->mockMethod(ConditionDefinition::class, 'withCriterion', [$existing_content], $condition),
268 'foo' => $this->mockMethod(ConditionDefinition::class, 'withCriterion', [$content], $condition),
269 ]), [], $this->mock(Container::class));
270
271 $result = $instance->validateCriteriaContent([
272 $this->mockTree(Criterion::class, ['content' => $existing_content]),
273 ], $content);
274 $this->assertFalse($result->isOk());
275 $this->assertSame(ProvideDocument::CRITERION_WOULD_NEVER_MATCH, $result->error());
276 }

References ILIAS\LegalDocuments\Provide\ProvideDocument\CRITERION_WOULD_NEVER_MATCH.

◆ testRepository()

ILIAS\LegalDocuments\test\Provide\ProvideDocumentTest::testRepository ( )

Definition at line 160 of file ProvideDocumentTest.php.

160 : void
161 {
162 $repository = $this->mock(DocumentRepository::class);
163 $instance = new ProvideDocument('foo', $repository, new SelectionMap(), [], $this->mock(Container::class));
164 $this->assertSame($repository, $instance->repository());
165 }

◆ testTableEditable()

ILIAS\LegalDocuments\test\Provide\ProvideDocumentTest::testTableEditable ( )

Definition at line 92 of file ProvideDocumentTest.php.

92 : void
93 {
94 if (!defined('ILIAS_HTTP_PATH')) {
95 define('ILIAS_HTTP_PATH', 'http://localhost');
96 }
97
98 $dummy_gui = new stdClass();
99
100 $uri = 'http://myIlias/ilias.php?baseClass=iladministrationgui&cmdNode=2g:qo:gq&cmdClass=ilLegalDocumentsAdministrationGUI&cmd=documents&ref_id=50';
101
102 $container = $this->mockTree(Container::class, [
103 'ui' => [
104 'factory' => ['table' => ['action' => ['multi' => []]]],
105 'mainTemplate' => [],
106 ],
107 'language' => [],
108 'http' => ['request' => ['getUri' => ['__toString' => $uri]]],
109 'ctrl' => [],
110 'user' => ['getTimeZone' => 'europe/berlin'],
111 ]);
112
113 $instance = new ProvideDocument('foo', $this->mock(DocumentRepository::class), new SelectionMap(), [], $container);
114 $this->assertInstanceOf(DocumentTable::class, $instance->table($dummy_gui, $this->mock(EditLinks::class)));
115 }
$container
@noRector
Definition: wac.php:37

References $container.

◆ testTableReadOnly()

ILIAS\LegalDocuments\test\Provide\ProvideDocumentTest::testTableReadOnly ( )

Definition at line 71 of file ProvideDocumentTest.php.

71 : void
72 {
73 $dummy_gui = new stdClass();
74
75 $uri = 'http://myIlias/ilias.php?baseClass=iladministrationgui&cmdNode=2g:qo:gq&cmdClass=ilLegalDocumentsAdministrationGUI&cmd=documents&ref_id=50';
76
77 $container = $this->mockTree(Container::class, [
78 'ui' => [
79 'factory' => [],
80 'mainTemplate' => [],
81 ],
82 'language' => [],
83 'http' => ['request' => ['getUri' => ['__toString' => $uri]]],
84 'ctrl' => [],
85 'user' => ['getTimeZone' => 'europe/berlin'],
86 ]);
87
88 $instance = new ProvideDocument('foo', $this->mock(DocumentRepository::class), new SelectionMap(), [], $container);
89 $this->assertInstanceOf(DocumentTable::class, $instance->table($dummy_gui));
90 }

References $container.

◆ testToCondition()

ILIAS\LegalDocuments\test\Provide\ProvideDocumentTest::testToCondition ( )

Definition at line 175 of file ProvideDocumentTest.php.

175 : void
176 {
177 $condition = $this->mock(Condition::class);
178 $content = $this->mockMethod(CriterionContent::class, 'type', [], 'bar');
179
180 $instance = new ProvideDocument('foo', $this->mock(DocumentRepository::class), new SelectionMap([
181 'bar' => $this->mockMethod(ConditionDefinition::class, 'withCriterion', [$content], $condition),
182 ]), [], $this->mock(Container::class));
183
184 $this->assertSame($condition, $instance->toCondition($content));
185 }

◆ testValidateCriteriaContent()

ILIAS\LegalDocuments\test\Provide\ProvideDocumentTest::testValidateCriteriaContent ( )

Definition at line 215 of file ProvideDocumentTest.php.

215 : void
216 {
217 $content = new CriterionContent('foo', ['bar']);
218 $existing_content = new CriterionContent('hoo', ['haz']);
219 $other_existing_content = new CriterionContent('foo', ['baz']);
220
221 $condition = $this->mock(Condition::class);
222 $condition->expects(self::exactly(2))->method('knownToNeverMatchWith')->with($condition)->willReturn(false);
223
224 $definition = $this->mock(ConditionDefinition::class);
225 $consecutive = [$content, $other_existing_content, $content];
226 $definition->expects(self::exactly(3))->method('withCriterion')->with(
227 $this->callback(function ($value) use (&$consecutive) {
228 $this->assertSame(array_shift($consecutive), $value);
229 return true;
230 })
231 )->willReturn($condition);
232
233 $instance = new ProvideDocument('foo', $this->mock(DocumentRepository::class), new SelectionMap([
234 'hoo' => $this->mockMethod(ConditionDefinition::class, 'withCriterion', [$existing_content], $condition),
235 'foo' => $definition,
236 ]), [], $this->mock(Container::class));
237
238 $result = $instance->validateCriteriaContent([
239 $this->mockTree(Criterion::class, ['content' => $existing_content]),
240 $this->mockTree(Criterion::class, ['content' => $other_existing_content]),
241 ], $content);
242 $this->assertTrue($result->isOk());
243 $this->assertSame($content, $result->value());
244 }

The documentation for this class was generated from the following file: