ILIAS  release_5-2 Revision v5.2.25-18-g3f80b828510
ilTimerDetectorTest Class Reference

ilTimerDetectorTest is part of the petri net based workflow engine. More...

+ Inheritance diagram for ilTimerDetectorTest:
+ Collaboration diagram for ilTimerDetectorTest:

Public Member Functions

 setUp ()
 
 tearDown ()
 
 testConstructorValidContext ()
 
 testSetGetTimerStart ()
 
 testSetGetTimerLimit ()
 
 testTriggerEarly ()
 
 testTriggerValid ()
 
 testTriggerValidTwice ()
 
 testIsListeningWithTimeFrame ()
 
 testIsListeningWithoutTimeFrame ()
 
 testSetGetIllegalListeningTimeframe ()
 @expectedException ilWorkflowInvalidArgumentException More...
 
 testIsListeningWithPastTimeFrame ()
 
 testIsListeningWithWildcardEndingTimeFrame ()
 
 testIsListeningWithWildcardBeginningTimeFrame ()
 
 testSetGetListeningTimeframe ()
 
 testSetGetDbId ()
 
 testHasDbIdSet ()
 
 testGetNonExistingDbId ()
 @expectedException ilWorkflowObjectStateException More...
 
 testHasDbIdUnset ()
 
 testWriteDetectorToDb ()
 
 testDeleteDetectorFromDb ()
 
 testOnActivate ()
 
 testOnDeactivate ()
 
 testGetEvent ()
 
 testGetEventSubject ()
 
 testGetEventContext ()
 
 testGetContext ()
 

Detailed Description

ilTimerDetectorTest is part of the petri net based workflow engine.

This class holds all tests for the class detectors/class.ilTimerDetector

Author
Maximilian Becker mbeck.nosp@m.er@d.nosp@m.ataba.nosp@m.y.de
Version
$Id$

/

Definition at line 15 of file ilTimerDetectorTest.php.

Member Function Documentation

◆ setUp()

ilTimerDetectorTest::setUp ( )

Definition at line 17 of file ilTimerDetectorTest.php.

18 {
19 include_once("./Services/PHPUnit/classes/class.ilUnitUtil.php");
20 //ilUnitUtil::performInitialisation();
21
22 require_once './Services/WorkflowEngine/classes/utils/class.ilWorkflowUtils.php';
23
24 // Empty workflow.
25 require_once './Services/WorkflowEngine/classes/workflows/class.ilEmptyWorkflow.php';
26 $this->workflow = new ilEmptyWorkflow();
27
28 // Basic node
29 require_once './Services/WorkflowEngine/classes/nodes/class.ilBasicNode.php';
30 $this->node = new ilBasicNode($this->workflow);
31
32 // Wiring up so the node is attached to the workflow.
33 $this->workflow->addNode($this->node);
34
35 require_once './Services/WorkflowEngine/classes/detectors/class.ilTimerDetector.php';
36 }
@noinspection PhpIncludeInspection
@noinspection PhpIncludeInspection

◆ tearDown()

ilTimerDetectorTest::tearDown ( )

Definition at line 38 of file ilTimerDetectorTest.php.

39 {
40 global $ilSetting;
41 if ($ilSetting != NULL)
42 {
43 $ilSetting->delete('IL_PHPUNIT_TEST_TIME');
44 $ilSetting->delete('IL_PHPUNIT_TEST_MICROTIME');
45 }
46 }
global $ilSetting
Definition: privfeed.php:17

References $ilSetting.

◆ testConstructorValidContext()

ilTimerDetectorTest::testConstructorValidContext ( )

Definition at line 48 of file ilTimerDetectorTest.php.

49 {
50 // Act
51 $detector = new ilTimerDetector($this->node);
52
53 // Assert
54 // No exception - good
55 $this->assertTrue(
56 true,
57 'Construction failed with valid context passed to constructor.'
58 );
59 }
@noinspection PhpIncludeInspection

◆ testDeleteDetectorFromDb()

ilTimerDetectorTest::testDeleteDetectorFromDb ( )

Definition at line 346 of file ilTimerDetectorTest.php.

347 {
348 $this->markTestIncomplete(
349 '$ilDB throws notices during test.'
350 );
351 return;
352 // Arrange
353 $detector = new ilTimerDetector($this->node);
354
355 require_once './Services/Database/classes/class.ilDBMySQL.php';
356 $ilDB_mock = $this->getMock('ilDBMySQL',array('quote','manipulate'),array(),'', FALSE);
357
358 $ilDB_mock->expects($this->any())->method('quote')->will($this->returnValue(234));
359 $ilDB_mock->expects($this->any())->method('manipulate')->with(
360 'DELETE
361 FROM wfe_det_listening
362 WHERE detector_id = 234'
363 )->will($this->returnValue(true));
364
365 $stashed_real_object = @$GLOBALS['ilDB'];
366 $GLOBALS['ilDB'] = $ilDB_mock;
367
368 // Act
369 $detector->setDbId(234);
370 $detector->deleteDetectorFromDb();
371 $actual = $detector->hasDbId();
372
373 // Assert
374 $this->assertFalse($actual);
375 $GLOBALS['ilDB'] = $stashed_real_object;
376 }
$GLOBALS['loaded']
Global hash that tracks already loaded includes.

References $GLOBALS.

◆ testGetContext()

ilTimerDetectorTest::testGetContext ( )

Definition at line 503 of file ilTimerDetectorTest.php.

504 {
505 // Arrange
506 $detector = new ilTimerDetector($this->node);
507
508 // Act
509 $actual = $detector->getContext();
510
511 // Assert
512 if ($actual === $this->node)
513 {
514 $this->assertEquals($actual, $this->node);
515 } else {
516 $this->assertTrue(false, 'Context not identical.');
517 }
518 }

◆ testGetEvent()

ilTimerDetectorTest::testGetEvent ( )

Definition at line 455 of file ilTimerDetectorTest.php.

456 {
457 // Arrange
458 $detector = new ilTimerDetector($this->node);
459 $exp_type = 'time_passed';
460 $exp_content = 'time_passed';
461
462 // Act
463
464 // Assert
465 $event = $detector->getEvent();
466 $act_type = $event['type'];
467 $act_content = $event['content'];
468 $this->assertEquals($exp_type.$exp_content, $act_type.$act_content);
469 }

◆ testGetEventContext()

ilTimerDetectorTest::testGetEventContext ( )

Definition at line 487 of file ilTimerDetectorTest.php.

488 {
489 // Arrange
490 $detector = new ilTimerDetector($this->node);
491 $exp_type = 'none';
492 $exp_id = '0';
493
494 // Act
495
496 // Assert
497 $event = $detector->getEventContext();
498 $act_type = $event['type'];
499 $act_id = $event['identifier'];
500 $this->assertEquals($exp_type.$exp_id, $act_type.$act_id);
501 }

◆ testGetEventSubject()

ilTimerDetectorTest::testGetEventSubject ( )

Definition at line 471 of file ilTimerDetectorTest.php.

472 {
473 // Arrange
474 $detector = new ilTimerDetector($this->node);
475 $exp_type = 'none';
476 $exp_id = '0';
477
478 // Act
479
480 // Assert
481 $event = $detector->getEventSubject();
482 $act_type = $event['type'];
483 $act_id = $event['identifier'];
484 $this->assertEquals($exp_type.$exp_id, $act_type.$act_id);
485 }

◆ testGetNonExistingDbId()

ilTimerDetectorTest::testGetNonExistingDbId ( )

@expectedException ilWorkflowObjectStateException

Definition at line 278 of file ilTimerDetectorTest.php.

279 {
280 // Arrange
281 $detector = new ilTimerDetector($this->node);
282 $expected = '1234';
283
284 // Act
285 $actual = $detector->getDbId();
286
287 // Assert
288 $this->assertEquals($expected, $actual);
289 }

◆ testHasDbIdSet()

ilTimerDetectorTest::testHasDbIdSet ( )

Definition at line 261 of file ilTimerDetectorTest.php.

262 {
263 // Arrange
264 $detector = new ilTimerDetector($this->node);
265 $expected = '1234';
266
267 // Act
268 $detector->setDbId($expected);
269 $actual = $detector->hasDbId();
270
271 // Assert
272 $this->assertTrue($actual);
273 }

◆ testHasDbIdUnset()

ilTimerDetectorTest::testHasDbIdUnset ( )

Definition at line 291 of file ilTimerDetectorTest.php.

292 {
293 // Arrange
294 $detector = new ilTimerDetector($this->node);
295
296 // Act
297 $actual = $detector->hasDbId();
298
299 // Assert
300 $this->assertFalse($actual);
301 }

◆ testIsListeningWithoutTimeFrame()

ilTimerDetectorTest::testIsListeningWithoutTimeFrame ( )

Definition at line 155 of file ilTimerDetectorTest.php.

156 {
157 // Arrange
158 $detector = new ilTimerDetector($this->node);
159 $timer_start = ilWorkflowUtils::time() + 5*60; # +5 Minutes from here.
160 $timer_end = 0;
161
162 // Act
163 $actual = $detector->isListening();
164
165 // Assert
166 $this->assertTrue($actual, 'Detector should be listening.');
167 }

◆ testIsListeningWithPastTimeFrame()

ilTimerDetectorTest::testIsListeningWithPastTimeFrame ( )

Definition at line 187 of file ilTimerDetectorTest.php.

188 {
189 // Arrange
190 $detector = new ilTimerDetector($this->node);
191 $timer_start = ilWorkflowUtils::time() - 5*60; # -5 Minutes from now.
192 $timer_end = ilWorkflowUtils::time() - 1*60; # -1 Minute from now.
193 $detector->setListeningTimeframe($timer_start, $timer_end);
194
195 // Act
196 $actual = $detector->isListening();
197
198 // Assert
199 $this->assertFalse($actual, 'Detector should not be listening.');
200 }

◆ testIsListeningWithTimeFrame()

ilTimerDetectorTest::testIsListeningWithTimeFrame ( )

Definition at line 140 of file ilTimerDetectorTest.php.

141 {
142 // Arrange
143 $detector = new ilTimerDetector($this->node);
144 $timer_start = ilWorkflowUtils::time() + 5*60; # +5 Minutes from here.
145 $timer_end = 0;
146 $detector->setListeningTimeframe($timer_start, $timer_end);
147
148 // Act
149 $actual = $detector->isListening();
150
151 // Assert
152 $this->assertFalse($actual, 'Detector should not be listening.');
153 }

◆ testIsListeningWithWildcardBeginningTimeFrame()

ilTimerDetectorTest::testIsListeningWithWildcardBeginningTimeFrame ( )

Definition at line 217 of file ilTimerDetectorTest.php.

218 {
219 // Arrange
220 $detector = new ilTimerDetector($this->node);
221 $timer_start = 0; # Wildcard.
222 $timer_end = ilWorkflowUtils::time() + 5*60; # +5 Minutes from now.
223 $detector->setListeningTimeframe($timer_start, $timer_end);
224
225 // Act
226 $actual = $detector->isListening();
227
228 // Assert
229 $this->assertTrue($actual, 'Detector should not be listening.');
230 }

◆ testIsListeningWithWildcardEndingTimeFrame()

ilTimerDetectorTest::testIsListeningWithWildcardEndingTimeFrame ( )

Definition at line 202 of file ilTimerDetectorTest.php.

203 {
204 // Arrange
205 $detector = new ilTimerDetector($this->node);
206 $timer_start = ilWorkflowUtils::time() - 5*60; # -5 Minutes from now.
207 $timer_end = 0; # Wildcard.
208 $detector->setListeningTimeframe($timer_start, $timer_end);
209
210 // Act
211 $actual = $detector->isListening();
212
213 // Assert
214 $this->assertTrue($actual, 'Detector should not be listening.');
215 }

◆ testOnActivate()

ilTimerDetectorTest::testOnActivate ( )

Definition at line 378 of file ilTimerDetectorTest.php.

379 {
380 $this->markTestIncomplete(
381 '$ilDB throws notices during test.'
382 );
383 return;
384 // Arrange
385 $detector = new ilTimerDetector($this->node);
386
387 require_once './Services/Database/classes/class.ilDBMySQL.php';
388 $ilDB_mock = $this->getMock('ilDBMySQL',array('nextID','quote','insert'),array(),'', FALSE);
389
390 $ilDB_mock->expects($this->once())->method('nextID')->with($this->equalTo('wfe_det_listening'))->will($this->returnValue(234));
391 $ilDB_mock->expects($this->any())->method('quote')->will($this->returnArgument(0));
392 $ilDB_mock->expects($this->any())->method('insert')->with(
393 'wfe_det_listening',
394 array(
395 'detector_id' => array ('integer', 234),
396 'workflow_id' => array ('integer', null),
397 'type' => array ('text', 'time_passed' ),
398 'content' => array ('text', 'time_passed'),
399 'subject_type' => array ('text', 'none'),
400 'subject_id' => array ('integer', 0),
401 'context_type' => array ('text', 'none'),
402 'context_id' => array ('integer', 0),
403 'listening_start' => array ('integer', 0),
404 'listening_end' => array ('integer', 0)
405 )
406 )->will($this->returnValue(true));
407
408 $stashed_real_object = @$GLOBALS['ilDB'];
409 $GLOBALS['ilDB'] = $ilDB_mock;
410
411 // Act
412 $detector->onActivate();
413 $actual = $detector->hasDbId();
414 //$detector->onDeactivate();
415
416 // Assert
417 $this->assertTrue($actual);
418 $this->assertEquals(234, $detector->getDbId());
419 $GLOBALS['ilDB'] = $stashed_real_object;
420 }

References $GLOBALS.

◆ testOnDeactivate()

ilTimerDetectorTest::testOnDeactivate ( )

Definition at line 422 of file ilTimerDetectorTest.php.

423 {
424 $this->markTestIncomplete(
425 '$ilDB throws notices during test.'
426 );
427 return;
428 // Arrange
429 $detector = new ilTimerDetector($this->node);
430
431 require_once './Services/Database/classes/class.ilDBMySQL.php';
432 $ilDB_mock = $this->getMock('ilDBMySQL',array('quote','manipulate'),array(),'', FALSE);
433
434 $ilDB_mock->expects($this->any())->method('quote')->will($this->returnValue(234));
435 $ilDB_mock->expects($this->any())->method('manipulate')->with(
436 'DELETE
437 FROM wfe_det_listening
438 WHERE detector_id = 234'
439 )->will($this->returnValue(true));
440
441 $stashed_real_object = @$GLOBALS['ilDB'];
442 $GLOBALS['ilDB'] = $ilDB_mock;
443
444 // Act
445 $detector->setDbId(234);
446 $detector->onDeactivate();
447 $actual = $detector->hasDbId();
448
449 // Assert
450 $this->assertFalse($actual);
451
452 $GLOBALS['ilDB'] = $stashed_real_object;
453 }

References $GLOBALS.

◆ testSetGetDbId()

ilTimerDetectorTest::testSetGetDbId ( )

Definition at line 247 of file ilTimerDetectorTest.php.

248 {
249 // Arrange
250 $detector = new ilTimerDetector($this->node);
251 $expected = '1234';
252
253 // Act
254 $detector->setDbId($expected);
255 $actual = $detector->getDbId();
256
257 // Assert
258 $this->assertEquals($expected, $actual);
259 }

◆ testSetGetIllegalListeningTimeframe()

ilTimerDetectorTest::testSetGetIllegalListeningTimeframe ( )

@expectedException ilWorkflowInvalidArgumentException

Definition at line 172 of file ilTimerDetectorTest.php.

173 {
174 // Arrange
175 $detector = new ilTimerDetector($this->node);
176 $exp_start = 4712;
177 $exp_end = 4711;
178
179 // Act
180 $detector->setListeningTimeframe($exp_start, $exp_end);
181 $act = $detector->getListeningTimeframe();
182
183 // Assert
184 $this->assertEquals($exp_start.$exp_end, $act['listening_start'].$act['listening_end']);
185 }

◆ testSetGetListeningTimeframe()

ilTimerDetectorTest::testSetGetListeningTimeframe ( )

Definition at line 232 of file ilTimerDetectorTest.php.

233 {
234 // Arrange
235 $detector = new ilTimerDetector($this->node);
236 $exp_start = 4711; # +5 Minutes from here.
237 $exp_end = 4712;
238
239 // Act
240 $detector->setListeningTimeframe($exp_start, $exp_end);
241 $act = $detector->getListeningTimeframe();
242
243 // Assert
244 $this->assertEquals($exp_start.$exp_end, $act['listening_start'].$act['listening_end']);
245 }

◆ testSetGetTimerLimit()

ilTimerDetectorTest::testSetGetTimerLimit ( )

Definition at line 75 of file ilTimerDetectorTest.php.

76 {
77 // Arrange
78 $detector = new ilTimerDetector($this->node);
79 $expected = 5*60*60;
80
81 // Act
82 $detector->setTimerLimit($expected);
83 $actual = $detector->getTimerLimit();
84
85 // Assert
86 $this->assertEquals($actual, $expected);
87 }

◆ testSetGetTimerStart()

ilTimerDetectorTest::testSetGetTimerStart ( )

Definition at line 61 of file ilTimerDetectorTest.php.

62 {
63 // Arrange
64 $detector = new ilTimerDetector($this->node);
65 $expected = ilWorkflowUtils::time();
66
67 // Act
68 $detector->setTimerStart($expected);
69 $actual = $detector->getTimerStart();
70
71 // Assert
72 $this->assertEquals($actual, $expected);
73 }

◆ testTriggerEarly()

ilTimerDetectorTest::testTriggerEarly ( )

Definition at line 89 of file ilTimerDetectorTest.php.

90 {
91 // Arrange
92 $detector = new ilTimerDetector($this->node);
93 $timer_start = ilWorkflowUtils::time(); # +5 Minutes from here.
94 $timer_limit = 5*60;
95 $detector->setTimerStart($timer_start);
96 $detector->setTimerLimit($timer_limit);
97
98 // Act
99 $detector->trigger(null);
100
101 // Assert
102 $actual = $detector->getDetectorState();
103 $this->assertFalse($actual, 'Early trigger should not satisfy detector');
104 }

◆ testTriggerValid()

ilTimerDetectorTest::testTriggerValid ( )

Definition at line 106 of file ilTimerDetectorTest.php.

107 {
108 // Arrange
109 $detector = new ilTimerDetector($this->node);
110 $timer_start = ilWorkflowUtils::time(); # +5 Minutes from now.
111 $timer_limit = 0;
112 $detector->setTimerStart($timer_start);
113 $detector->setTimerLimit($timer_limit);
114
115 // Act
116 $detector->trigger(null);
117
118 // Assert
119 $actual = $detector->getDetectorState();
120 $this->assertTrue($actual, 'Trigger should not satisfy detector');
121 }

◆ testTriggerValidTwice()

ilTimerDetectorTest::testTriggerValidTwice ( )

Definition at line 123 of file ilTimerDetectorTest.php.

124 {
125 // Arrange
126 $detector = new ilTimerDetector($this->node);
127 $timer_start = ilWorkflowUtils::time(); # +5 Minutes from now.
128 $timer_limit = 0;
129 $detector->setTimerStart($timer_start);
130 $detector->setTimerLimit($timer_limit);
131
132 // Act
133 $detector->trigger(null);
134 $actual = $detector->trigger(null);
135
136 // Assert
137 $this->assertFalse($actual, 'Detector should be satisfied after single trigger');
138 }

◆ testWriteDetectorToDb()

ilTimerDetectorTest::testWriteDetectorToDb ( )

Definition at line 303 of file ilTimerDetectorTest.php.

304 {
305 $this->markTestIncomplete(
306 '$ilDB throws notices during test.'
307 );
308 return;
309 // Arrange
310 $detector = new ilTimerDetector($this->node);
311
312 require_once './Services/Database/classes/class.ilDBMySQL.php';
313 $ilDB_mock = $this->getMock('ilDBMySQL',array('nextID','quote','insert'),array(),'', FALSE);
314
315 $ilDB_mock->expects($this->once())->method('nextID')->with($this->equalTo('wfe_det_listening'))->will($this->returnValue(234));
316 $ilDB_mock->expects($this->any())->method('quote')->will($this->returnArgument(0));
317 $ilDB_mock->expects($this->any())->method('insert')->with(
318 'wfe_det_listening',
319 array(
320 'detector_id' => array ('integer', 234),
321 'workflow_id' => array ('integer', null),
322 'type' => array ('text', 'time_passed' ),
323 'content' => array ('text', 'time_passed'),
324 'subject_type' => array ('text', 'none'),
325 'subject_id' => array ('integer', 0),
326 'context_type' => array ('text', 'none'),
327 'context_id' => array ('integer', 0),
328 'listening_start' => array ('integer', 0),
329 'listening_end' => array ('integer', 0)
330 )
331 )->will($this->returnValue(true));
332
333 // Act
334 $stashed_real_object = @$GLOBALS['ilDB'];
335 $GLOBALS['ilDB'] = $ilDB_mock;
336 $detector->writeDetectorToDb();
337
338 $actual = $detector->hasDbId();
339
340 // Assert
341 $this->assertTrue($actual);
342
343 $GLOBALS['ilDB'] = $stashed_real_object;
344 }

References $GLOBALS.


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