19 include_once(
"./Services/PHPUnit/classes/class.ilUnitUtil.php");
23 require_once
'./Services/WorkflowEngine/classes/workflows/class.ilEmptyWorkflow.php';
30 if ($ilSetting != NULL)
32 $ilSetting->delete(
'IL_PHPUNIT_TEST_TIME');
33 $ilSetting->delete(
'IL_PHPUNIT_TEST_MICROTIME');
46 'Construction failed with valid context passed to constructor.' 56 $actual = $node->getContext();
59 if ($actual === $this->workflow)
61 $this->assertEquals($actual, $this->workflow);
63 $this->assertTrue(
false,
'Context not identical.');
71 require_once
'./Services/WorkflowEngine/classes/detectors/class.ilSimpleDetector.php';
73 $node->addDetector($detector);
74 $evaluation_expression =
'return null;';
75 $node->setEvaluationExpression($evaluation_expression);
81 $actual = $node->isActive();
82 $this->assertTrue($actual);
89 require_once
'./Services/WorkflowEngine/classes/detectors/class.ilSimpleDetector.php';
91 $node->addDetector($detector);
92 $evaluation_expression =
'return null;';
93 $node->setEvaluationExpression($evaluation_expression);
97 $was_activated = $node->isActive();
99 $was_deactivated = !$node->isActive();
102 $this->assertEquals($was_activated, $was_deactivated);
109 require_once
'./Services/WorkflowEngine/classes/detectors/class.ilSimpleDetector.php';
111 $node->addDetector($detector1);
113 $node->addDetector($detector2);
115 $evaluation_expression =
118 if ($detectors[0]->getDetectorState() == false 119 && $detectors[1]->getDetectorState() == true) 124 if ($detectors[0]->getDetectorState() == true 125 && $detectors[1]->getDetectorState() == false) 132 $node->setEvaluationExpression($evaluation_expression);
133 $detector1->trigger(null);
136 $preconditions = $node->checkTransitionPreconditions();
139 $this->assertTrue($preconditions);
146 require_once
'./Services/WorkflowEngine/classes/detectors/class.ilSimpleDetector.php';
148 $node->addDetector($detector1);
150 $node->addDetector($detector2);
152 $evaluation_expression =
155 if ($detectors[0]->getDetectorState() == false 156 && $detectors[1]->getDetectorState() == true) 161 if ($detectors[0]->getDetectorState() == true 162 && $detectors[1]->getDetectorState() == false) 169 $node->setEvaluationExpression($evaluation_expression);
170 $detector2->trigger(null);
173 $preconditions = $node->checkTransitionPreconditions();
176 $this->assertTrue($preconditions);
183 require_once
'./Services/WorkflowEngine/classes/detectors/class.ilSimpleDetector.php';
185 $node->addDetector($detector1);
187 $node->addDetector($detector2);
189 $evaluation_expression =
192 if ($detectors[0]->getDetectorState() == false 193 && $detectors[1]->getDetectorState() == true) 198 if ($detectors[0]->getDetectorState() == true 199 && $detectors[1]->getDetectorState() == false) 206 $node->setEvaluationExpression($evaluation_expression);
209 $preconditions = $node->checkTransitionPreconditions();
212 $this->assertFalse($preconditions);
219 require_once
'./Services/WorkflowEngine/classes/detectors/class.ilSimpleDetector.php';
221 $node->addDetector($detector);
225 $node->executeTransition();
226 $state = $node->isActive();
229 $this->assertFalse($state);
238 require_once
'./Services/WorkflowEngine/classes/detectors/class.ilSimpleDetector.php';
240 $node->addDetector($detector);
244 $node->executeElseTransition();
245 $state = $node->isActive();
248 $this->assertFalse($state);
255 require_once
'./Services/WorkflowEngine/classes/detectors/class.ilSimpleDetector.php';
257 $node->addDetector($detector);
259 require_once
'./Services/WorkflowEngine/classes/activities/class.ilLoggingActivity.php';
261 $activity->setLogFile(
'ilTransitionLog.txt');
262 $activity->setLogLevel(
'MESSAGE');
263 $activity->setLogMessage(
'TEST');
264 $node->addActivity($activity);
268 $node->executeTransition();
271 $expected =
' :: MESSAGE :: TEST';
272 $fp = fopen(
'ilTransitionLog.txt',
'r');
274 $actual = substr($line, 25, strlen($line)-27);
275 @unlink(
'ilTransitionLog.txt');
286 require_once
'./Services/WorkflowEngine/classes/detectors/class.ilSimpleDetector.php';
288 $node->addDetector($detector);
290 require_once
'./Services/WorkflowEngine/classes/activities/class.ilLoggingActivity.php';
292 $activity->setLogFile(
'ilTransitionLog.txt');
293 $activity->setLogLevel(
'MESSAGE');
294 $activity->setLogMessage(
'TEST');
295 $node->addActivity($activity,
true);
299 $node->executeElseTransition();
302 $expected =
' :: MESSAGE :: TEST';
303 $fp = fopen(
'ilTransitionLog.txt',
'r');
305 $actual = substr($line, 25, strlen($line)-27);
306 @unlink(
'ilTransitionLog.txt');
317 require_once
'./Services/WorkflowEngine/classes/detectors/class.ilSimpleDetector.php';
319 $node->addDetector($detector);
321 require_once
'./Services/WorkflowEngine/classes/emitters/class.ilActivationEmitter.php';
324 $t_node->addDetector($t_detector);
326 $t_node->addDetector($foo_detector);
330 $emitter->setTargetDetector($t_detector);
331 $node->addEmitter($emitter);
335 $node->executeTransition();
338 $this->assertTrue($t_node->isActive());
345 require_once
'./Services/WorkflowEngine/classes/detectors/class.ilSimpleDetector.php';
347 $node->addDetector($detector);
349 require_once
'./Services/WorkflowEngine/classes/emitters/class.ilActivationEmitter.php';
352 $t_node->addDetector($t_detector);
354 $t_node->addDetector($foo_detector);
358 $emitter->setTargetDetector($t_detector);
359 $node->addEmitter($emitter,
true);
363 $node->executeElseTransition();
366 $this->assertTrue($t_node->isActive());
373 require_once
'./Services/WorkflowEngine/classes/detectors/class.ilSimpleDetector.php';
375 $node->addDetector($detector);
377 require_once
'./Services/WorkflowEngine/classes/emitters/class.ilActivationEmitter.php';
380 $t_node->addDetector($t_detector);
382 $t_node->addDetector($foo_detector);
386 $emitter->setTargetDetector($t_detector);
387 $node->addEmitter($emitter,
true);
388 $node->setEvaluationExpression(
"return false;");
391 $node->AttemptTransition();
394 $this->assertTrue($t_node->isActive());
401 require_once
'./Services/WorkflowEngine/classes/detectors/class.ilSimpleDetector.php';
405 $node->addDetector($detector);
406 $detectors = $node->getDetectors();
409 $this->assertEquals($detector, $detectors[0]);
416 require_once
'./Services/WorkflowEngine/classes/emitters/class.ilSimpleEmitter.php';
420 $node->addEmitter($emitter);
421 $emitters = $node->getEmitters();
424 $this->assertEquals($emitter, $emitters[0]);
431 require_once
'./Services/WorkflowEngine/classes/emitters/class.ilSimpleEmitter.php';
435 $node->addEmitter($emitter,
true);
436 $emitters = $node->getEmitters(
true);
439 $this->assertEquals($emitter, $emitters[0]);
446 require_once
'./Services/WorkflowEngine/classes/activities/class.ilLoggingActivity.php';
450 $node->addActivity($activity);
451 $activities = $node->getActivities();
454 $this->assertEquals($activity, $activities[0]);
461 require_once
'./Services/WorkflowEngine/classes/activities/class.ilLoggingActivity.php';
465 $node->addActivity($activity,
true);
466 $activities = $node->getActivities(
true);
469 $this->assertEquals($activity, $activities[0]);
477 require_once
'./Services/WorkflowEngine/classes/detectors/class.ilSimpleDetector.php';
479 $node->addDetector($detector);
480 $detector->setDetectorState(
true);
481 $node->setEvaluationExpression(
'return true;');
492 $node->notifyDetectorSatisfaction($detector);
495 $this->assertFalse($node->isActive());
502 require_once
'./Services/WorkflowEngine/classes/detectors/class.ilSimpleDetector.php';
504 $node->addDetector($detector1);
506 $node->addDetector($detector2);
507 $node->setEvaluationExpression(
'return $GLOBALS["expr_retval"];');
512 $this->assertTrue($node->isActive());
515 $detector1->trigger(null);
516 $detector2->trigger(null);
518 $this->assertFalse($node->isActive());
testExecuteTransitionThen()
testExecuteTransitionElse()
testCheckTransitionPreconditionsValidElse()
ilConditionalNodeTest is part of the petri net based workflow engine.
testNotifyDetectorSatisfactionAndTransit()
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
testExecuteElseActivitiesViaExecuteTransition()
testAddElseActivityFirst()
testCheckTransitionPreconditionsValidThen()
testExecuteEmitterViaExecuteTransition()
testConstructorValidContext()
testNotifyDetectorSatisfaction()
testExecuteActivitiesViaExecuteTransition()
testExecuteElseEmitterViaAttemptTransition()
testIsActiveAndActivate()
testExecuteElseEmitterViaExecuteTransition()
testCheckTransitionPreconditionsInvalid()
testAddElseEmitterFirst()