ILIAS  trunk Revision v11.0_alpha-2645-g16283d3b3f8
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.

References ILIAS\LegalDocuments\Provide\ProvideDocument\chooseDocumentFor().

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  }
+ Here is the call graph for this function:

◆ 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.

References $c.

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

◆ 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.

References ILIAS\LegalDocuments\Provide\ProvideDocument\CRITERION_ALREADY_EXISTS.

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  }

◆ 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.

References ILIAS\LegalDocuments\Provide\ProvideDocument\CRITERION_WOULD_NEVER_MATCH.

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  }

◆ 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.

References $container.

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
Definition: wac.php:36

◆ testTableReadOnly()

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

Definition at line 71 of file ProvideDocumentTest.php.

References $container.

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  }
$container
Definition: wac.php:36

◆ 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: