ILIAS  release_5-3 Revision v5.3.23-19-g915713cf615
ilDataDetectorTest.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2014 ILIAS open source, Extended GPL, see docs/LICENSE */
3
16{
17 public function setUp()
18 {
19 include_once("./Services/PHPUnit/classes/class.ilUnitUtil.php");
20 //ilUnitUtil::performInitialisation();
21
22 // Empty workflow.
23 require_once './Services/WorkflowEngine/classes/workflows/class.ilEmptyWorkflow.php';
24 $this->workflow = new ilEmptyWorkflow();
25
26 // Basic node
27 require_once './Services/WorkflowEngine/classes/nodes/class.ilBasicNode.php';
28 $this->node = new ilBasicNode($this->workflow);
29
30 // Wiring up so the node is attached to the workflow.
31 $this->workflow->addNode($this->node);
32
33 require_once './Services/WorkflowEngine/classes/detectors/class.ilDataDetector.php';
34 }
35
36 public function tearDown()
37 {
38 global $ilSetting;
39 if ($ilSetting != null) {
40 $ilSetting->delete('IL_PHPUNIT_TEST_TIME');
41 $ilSetting->delete('IL_PHPUNIT_TEST_MICROTIME');
42 }
43 }
44
46 {
47 // Act
48 $detector = new ilDataDetector($this->node);
49
50 // Assert
51 // No exception - good
52 $this->assertTrue(
53 true,
54 'Construction failed with valid context passed to constructor.'
55 );
56 }
57
58 public function testSetDetectorState()
59 {
60 // Arrange
61 $workflow = new ilEmptyWorkflow();
62 $node = new ilBasicNode($workflow);
63 $detector = new ilDataDetector($node);
64 $workflow->addNode($node);
65
66
67 // Act
68 $detector->setDetectorState(true);
69
70
71 // Assert
72 $valid_state = true;
73
74 if (!$detector->getDetectorState()) {
75 $valid_state = false;
76 }
77
78 if ($node->isActive()) {
79 // With this single detector satisfied, the
80 // parent node should have transitted and
81 // this would result in it being inactive
82 // afterwards.
83 $valid_state = false;
84 }
85
86 $this->assertTrue($valid_state, 'Invalid state after setting of detector state.');
87 }
88
89 public function testTrigger()
90 {
91 // Arrange
92 $workflow = new ilEmptyWorkflow();
93 $node = new ilBasicNode($workflow);
94 $detector = new ilDataDetector($node);
95 $workflow->addNode($node);
96
97
98 // Act
99 $detector->trigger(null);
100
101 // Assert
102 $valid_state = true;
103
104 if (!$detector->getDetectorState()) {
105 $valid_state = false;
106 }
107
108 if ($node->isActive()) {
109 // With this single detector satisfied, the
110 // parent node should have transitted and
111 // this would result in it being inactive
112 // afterwards.
113 $valid_state = false;
114 }
115
116 $this->assertTrue($valid_state, 'Invalid state after setting of detector state.');
117 }
118
119 public function testGetContext()
120 {
121 // Arrange
122 $detector = new ilDataDetector($this->node);
123
124 // Act
125 $actual = $detector->getContext();
126
127 // Assert
128 if ($actual === $this->node) {
129 $this->assertEquals($actual, $this->node);
130 } else {
131 $this->assertTrue(false, 'Context not identical.');
132 }
133 }
134}
An exception for terminatinating execution or to throw for unit testing.
@noinspection PhpIncludeInspection
ilDataDetectorTest is part of the petri net based workflow engine.
@noinspection PhpIncludeInspection
@noinspection PhpIncludeInspection
global $ilSetting
Definition: privfeed.php:17