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 ()
 ilWorkflowInvalidArgumentException More...
 
 testIsListeningWithPastTimeFrame ()
 
 testIsListeningWithWildcardEndingTimeFrame ()
 
 testIsListeningWithWildcardBeginningTimeFrame ()
 
 testSetGetListeningTimeframe ()
 
 testSetGetDbId ()
 
 testHasDbIdSet ()
 
 testGetNonExistingDbId ()
 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  }
PhpIncludeInspection
PhpIncludeInspection

◆ tearDown()

ilTimerDetectorTest::tearDown ( )

Definition at line 38 of file ilTimerDetectorTest.php.

References $ilSetting.

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

◆ 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  }
PhpIncludeInspection

◆ testDeleteDetectorFromDb()

ilTimerDetectorTest::testDeleteDetectorFromDb ( )

Definition at line 346 of file ilTimerDetectorTest.php.

References $GLOBALS, and array.

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.
PhpIncludeInspection
Create styles array
The data for the language used.

◆ 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  }
PhpIncludeInspection

◆ 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  }
PhpIncludeInspection

◆ 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  }
PhpIncludeInspection

◆ 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  }
PhpIncludeInspection

◆ testGetNonExistingDbId()

ilTimerDetectorTest::testGetNonExistingDbId ( )

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  }
PhpIncludeInspection

◆ 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  }
PhpIncludeInspection

◆ 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  }
PhpIncludeInspection

◆ testIsListeningWithoutTimeFrame()

ilTimerDetectorTest::testIsListeningWithoutTimeFrame ( )

Definition at line 155 of file ilTimerDetectorTest.php.

References time.

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  }
PhpIncludeInspection
Add data(end) time
Method that wraps PHPs time in order to allow simulations with the workflow.

◆ testIsListeningWithPastTimeFrame()

ilTimerDetectorTest::testIsListeningWithPastTimeFrame ( )

Definition at line 187 of file ilTimerDetectorTest.php.

References time.

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  }
PhpIncludeInspection
Add data(end) time
Method that wraps PHPs time in order to allow simulations with the workflow.

◆ testIsListeningWithTimeFrame()

ilTimerDetectorTest::testIsListeningWithTimeFrame ( )

Definition at line 140 of file ilTimerDetectorTest.php.

References time.

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  }
PhpIncludeInspection
Add data(end) time
Method that wraps PHPs time in order to allow simulations with the workflow.

◆ testIsListeningWithWildcardBeginningTimeFrame()

ilTimerDetectorTest::testIsListeningWithWildcardBeginningTimeFrame ( )

Definition at line 217 of file ilTimerDetectorTest.php.

References time.

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  }
PhpIncludeInspection
Add data(end) time
Method that wraps PHPs time in order to allow simulations with the workflow.

◆ testIsListeningWithWildcardEndingTimeFrame()

ilTimerDetectorTest::testIsListeningWithWildcardEndingTimeFrame ( )

Definition at line 202 of file ilTimerDetectorTest.php.

References time.

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  }
PhpIncludeInspection
Add data(end) time
Method that wraps PHPs time in order to allow simulations with the workflow.

◆ testOnActivate()

ilTimerDetectorTest::testOnActivate ( )

Definition at line 378 of file ilTimerDetectorTest.php.

References $GLOBALS, and array.

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  }
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
PhpIncludeInspection
Create styles array
The data for the language used.

◆ testOnDeactivate()

ilTimerDetectorTest::testOnDeactivate ( )

Definition at line 422 of file ilTimerDetectorTest.php.

References $GLOBALS, and array.

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  }
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
PhpIncludeInspection
Create styles array
The data for the language used.

◆ 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  }
PhpIncludeInspection

◆ testSetGetIllegalListeningTimeframe()

ilTimerDetectorTest::testSetGetIllegalListeningTimeframe ( )

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  }
PhpIncludeInspection

◆ 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  }
PhpIncludeInspection

◆ 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  }
PhpIncludeInspection

◆ testSetGetTimerStart()

ilTimerDetectorTest::testSetGetTimerStart ( )

Definition at line 61 of file ilTimerDetectorTest.php.

References time.

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  }
PhpIncludeInspection
Add data(end) time
Method that wraps PHPs time in order to allow simulations with the workflow.

◆ testTriggerEarly()

ilTimerDetectorTest::testTriggerEarly ( )

Definition at line 89 of file ilTimerDetectorTest.php.

References time.

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  }
PhpIncludeInspection
Add data(end) time
Method that wraps PHPs time in order to allow simulations with the workflow.

◆ testTriggerValid()

ilTimerDetectorTest::testTriggerValid ( )

Definition at line 106 of file ilTimerDetectorTest.php.

References time.

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  }
PhpIncludeInspection
Add data(end) time
Method that wraps PHPs time in order to allow simulations with the workflow.

◆ testTriggerValidTwice()

ilTimerDetectorTest::testTriggerValidTwice ( )

Definition at line 123 of file ilTimerDetectorTest.php.

References time.

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  }
PhpIncludeInspection
Add data(end) time
Method that wraps PHPs time in order to allow simulations with the workflow.

◆ testWriteDetectorToDb()

ilTimerDetectorTest::testWriteDetectorToDb ( )

Definition at line 303 of file ilTimerDetectorTest.php.

References $GLOBALS, and array.

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  }
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
PhpIncludeInspection
Create styles array
The data for the language used.

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