ILIAS  release_5-2 Revision v5.2.25-18-g3f80b82851
ilBasicNodeTest Class Reference

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

+ Inheritance diagram for ilBasicNodeTest:
+ Collaboration diagram for ilBasicNodeTest:

Public Member Functions

 setUp ()
 
 tearDown ()
 
 testConstructorValidContext ()
 
 testGetContext ()
 
 testIsActiveAndActivate ()
 
 testDeactivate ()
 
 testCheckTransitionPreconditionsValid ()
 
 testCheckTransitionPreconditionsInvalid ()
 
 testAttemptTransitionValid ()
 
 testAttemptTransitionInvalid ()
 
 testExecuteTransition ()
 
 testExecuteActivitiesViaExecuteTransition ()
 
 testExecuteEmitterViaExecuteTransition ()
 
 testAddDetector ()
 
 testAddEmitter ()
 
 testAddActivity ()
 
 testNotifyDetectorSatisfaction ()
 
 testSetGetIsForwardConditionNode ()
 

Detailed Description

ilBasicNodeTest is part of the petri net based workflow engine.

This class holds all tests for the class nodes/class.ilBasicNode

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

/

Definition at line 15 of file ilBasicNodeTest.php.

Member Function Documentation

◆ setUp()

ilBasicNodeTest::setUp ( )

Definition at line 17 of file ilBasicNodeTest.php.

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

◆ tearDown()

ilBasicNodeTest::tearDown ( )

Definition at line 27 of file ilBasicNodeTest.php.

References $ilSetting.

28  {
29  global $ilSetting;
30  if ($ilSetting != NULL)
31  {
32  $ilSetting->delete('IL_PHPUNIT_TEST_TIME');
33  $ilSetting->delete('IL_PHPUNIT_TEST_MICROTIME');
34  }
35  }
global $ilSetting
Definition: privfeed.php:17

◆ testAddActivity()

ilBasicNodeTest::testAddActivity ( )

Definition at line 272 of file ilBasicNodeTest.php.

273  {
274  // Arrange
275  $node = new ilBasicNode($this->workflow);
276  require_once './Services/WorkflowEngine/classes/activities/class.ilLoggingActivity.php';
277  $activity = new ilLoggingActivity($node);
278 
279  // Act
280  $node->addActivity($activity);
281  $activities = $node->getActivities();
282 
283  // Assert
284  $this->assertEquals($activity, $activities[0]);
285  }
PhpIncludeInspection
PhpIncludeInspection

◆ testAddDetector()

ilBasicNodeTest::testAddDetector ( )

Definition at line 242 of file ilBasicNodeTest.php.

243  {
244  // Arrange
245  $node = new ilBasicNode($this->workflow);
246  require_once './Services/WorkflowEngine/classes/detectors/class.ilSimpleDetector.php';
247  $detector = new ilSimpleDetector($node);
248 
249  // Act
250  $node->addDetector($detector);
251  $detectors = $node->getDetectors();
252 
253  // Assert
254  $this->assertEquals($detector, $detectors[0]);
255  }
PhpIncludeInspection
PhpIncludeInspection

◆ testAddEmitter()

ilBasicNodeTest::testAddEmitter ( )

Definition at line 257 of file ilBasicNodeTest.php.

258  {
259  // Arrange
260  $node = new ilBasicNode($this->workflow);
261  require_once './Services/WorkflowEngine/classes/emitters/class.ilSimpleEmitter.php';
262  $emitter = new ilSimpleEmitter($node);
263 
264  // Act
265  $node->addEmitter($emitter);
266  $emitters = $node->getEmitters();
267 
268  // Assert
269  $this->assertEquals($emitter, $emitters[0]);
270  }
PhpIncludeInspection
PhpIncludeInspection

◆ testAttemptTransitionInvalid()

ilBasicNodeTest::testAttemptTransitionInvalid ( )

Definition at line 149 of file ilBasicNodeTest.php.

References $result.

150  {
151  // Arrange
152  $node = new ilBasicNode($this->workflow);
153  require_once './Services/WorkflowEngine/classes/detectors/class.ilSimpleDetector.php';
154  $detector = new ilSimpleDetector($node);
155  $node->addDetector($detector);
156 
157  // Act
158  $result = $node->attemptTransition();
159 
160  // Assert
161  $this->assertFalse($result);
162  }
$result
PhpIncludeInspection
PhpIncludeInspection

◆ testAttemptTransitionValid()

ilBasicNodeTest::testAttemptTransitionValid ( )

Definition at line 133 of file ilBasicNodeTest.php.

References $result, and array.

134  {
135  // Arrange
136  $node = new ilBasicNode($this->workflow);
137  require_once './Services/WorkflowEngine/classes/detectors/class.ilSimpleDetector.php';
138  $detector = new ilSimpleDetector($node);
139  $node->addDetector($detector);
140 
141  // Act
142  $detector->trigger(array());
143  $result = $node->attemptTransition();
144 
145  // Assert
146  $this->assertTrue($result);
147  }
$result
PhpIncludeInspection
Create styles array
The data for the language used.
PhpIncludeInspection

◆ testCheckTransitionPreconditionsInvalid()

ilBasicNodeTest::testCheckTransitionPreconditionsInvalid ( )

Definition at line 117 of file ilBasicNodeTest.php.

118  {
119  // Arrange
120  $node = new ilBasicNode($this->workflow);
121  require_once './Services/WorkflowEngine/classes/detectors/class.ilSimpleDetector.php';
122  $detector = new ilSimpleDetector($node);
123  $node->addDetector($detector);
124 
125 
126  // Act
127  $preconditions = $node->checkTransitionPreconditions();
128 
129  // Assert
130  $this->assertFalse($preconditions);
131  }
PhpIncludeInspection
PhpIncludeInspection

◆ testCheckTransitionPreconditionsValid()

ilBasicNodeTest::testCheckTransitionPreconditionsValid ( )

Definition at line 101 of file ilBasicNodeTest.php.

References array.

102  {
103  // Arrange
104  $node = new ilBasicNode($this->workflow);
105  require_once './Services/WorkflowEngine/classes/detectors/class.ilSimpleDetector.php';
106  $detector = new ilSimpleDetector($node);
107  $node->addDetector($detector);
108 
109  // Act
110  $detector->trigger(array());
111  $preconditions = $node->checkTransitionPreconditions();
112 
113  // Assert
114  $this->assertTrue($preconditions);
115  }
PhpIncludeInspection
Create styles array
The data for the language used.
PhpIncludeInspection

◆ testConstructorValidContext()

ilBasicNodeTest::testConstructorValidContext ( )

Definition at line 37 of file ilBasicNodeTest.php.

38  {
39  // Act
40  $node = new ilBasicNode($this->workflow);
41 
42  // Assert
43  // No exception - good
44  $this->assertTrue(
45  true,
46  'Construction failed with valid context passed to constructor.'
47  );
48  }
PhpIncludeInspection

◆ testDeactivate()

ilBasicNodeTest::testDeactivate ( )

Definition at line 83 of file ilBasicNodeTest.php.

84  {
85  // Arrange
86  $node = new ilBasicNode($this->workflow);
87  require_once './Services/WorkflowEngine/classes/detectors/class.ilSimpleDetector.php';
88  $detector = new ilSimpleDetector($node);
89  $node->addDetector($detector);
90 
91  // Act
92  $node->activate();
93  $was_activated = $node->isActive();
94  $node->deactivate();
95  $was_deactivated = !$node->isActive();
96 
97  // Assert
98  $this->assertEquals($was_activated, $was_deactivated);
99  }
PhpIncludeInspection
PhpIncludeInspection

◆ testExecuteActivitiesViaExecuteTransition()

ilBasicNodeTest::testExecuteActivitiesViaExecuteTransition ( )

Definition at line 183 of file ilBasicNodeTest.php.

184  {
185  // Arrange
186  $node = new ilBasicNode($this->workflow);
187  require_once './Services/WorkflowEngine/classes/detectors/class.ilSimpleDetector.php';
188  $detector = new ilSimpleDetector($node);
189  $node->addDetector($detector);
190 
191  require_once './Services/WorkflowEngine/classes/activities/class.ilLoggingActivity.php';
192  $activity = new ilLoggingActivity($node);
193  $activity->setLogFile('ilTransitionLog.txt');
194  $activity->setLogLevel('MESSAGE');
195  $activity->setLogMessage('TEST');
196  $node->addActivity($activity);
197 
198  // Act
199  $node->activate();
200  $node->executeTransition();
201 
202  // Assert
203  $expected = ' :: MESSAGE :: TEST';
204  $fp = fopen('ilTransitionLog.txt', r);
205  $line = fgets($fp);
206  $actual = substr($line, 25, strlen($line)-27);
207  @unlink('ilTransitionLog.txt'); // TODO: Use vfsStream
208  $this->assertEquals(
209  $actual,
210  $expected
211  );
212  }
PhpIncludeInspection
PhpIncludeInspection
PhpIncludeInspection

◆ testExecuteEmitterViaExecuteTransition()

ilBasicNodeTest::testExecuteEmitterViaExecuteTransition ( )

Definition at line 214 of file ilBasicNodeTest.php.

215  {
216  // Arrange
217  $node = new ilBasicNode($this->workflow);
218  require_once './Services/WorkflowEngine/classes/detectors/class.ilSimpleDetector.php';
219  $detector = new ilSimpleDetector($node);
220  $node->addDetector($detector);
221 
222  require_once './Services/WorkflowEngine/classes/emitters/class.ilActivationEmitter.php';
223  $t_node = new ilBasicNode($this->workflow);
224  $t_detector = new ilSimpleDetector($t_node);
225  $t_node->addDetector($t_detector);
226  $foo_detector = new ilSimpleDetector($t_node);
227  $t_node->addDetector($foo_detector);
228  // again a foo_detector to keep the t_node from transitting
229 
230  $emitter = new ilActivationEmitter($node);
231  $emitter->setTargetDetector($t_detector);
232  $node->addEmitter($emitter);
233 
234  // Act
235  $node->activate();
236  $node->executeTransition();
237 
238  // Assert
239  $this->assertTrue($t_node->isActive());
240  }
PhpIncludeInspection
PhpIncludeInspection

◆ testExecuteTransition()

ilBasicNodeTest::testExecuteTransition ( )

Definition at line 164 of file ilBasicNodeTest.php.

165  { // This is test #100 of the WorkflowEngine, written on 9th of May, 2012
166  // @ 14:15
167 
168  // Arrange
169  $node = new ilBasicNode($this->workflow);
170  require_once './Services/WorkflowEngine/classes/detectors/class.ilSimpleDetector.php';
171  $detector = new ilSimpleDetector($node);
172  $node->addDetector($detector);
173  $node->activate();
174 
175  // Act
176  $node->executeTransition();
177  $state = $node->isActive();
178 
179  // Assert
180  $this->assertFalse($state);
181  }
PhpIncludeInspection
PhpIncludeInspection

◆ testGetContext()

ilBasicNodeTest::testGetContext ( )

Definition at line 50 of file ilBasicNodeTest.php.

51  {
52  // Arrange
53  $node = new ilBasicNode($this->workflow);
54 
55  // Act
56  $actual = $node->getContext();
57 
58  // Assert
59  if ($actual === $this->workflow)
60  {
61  $this->assertEquals($actual, $this->workflow);
62  } else {
63  $this->assertTrue(false, 'Context not identical.');
64  }
65  }
PhpIncludeInspection

◆ testIsActiveAndActivate()

ilBasicNodeTest::testIsActiveAndActivate ( )

Definition at line 67 of file ilBasicNodeTest.php.

68  {
69  // Arrange
70  $node = new ilBasicNode($this->workflow);
71  require_once './Services/WorkflowEngine/classes/detectors/class.ilSimpleDetector.php';
72  $detector = new ilSimpleDetector($node);
73  $node->addDetector($detector);
74 
75  // Act
76  $node->activate();
77 
78  // Assert
79  $actual = $node->isActive();
80  $this->assertTrue($actual);
81  }
PhpIncludeInspection
PhpIncludeInspection

◆ testNotifyDetectorSatisfaction()

ilBasicNodeTest::testNotifyDetectorSatisfaction ( )

Definition at line 287 of file ilBasicNodeTest.php.

288  {
289  // Arrange
290  $node = new ilBasicNode($this->workflow);
291 
292  require_once './Services/WorkflowEngine/classes/detectors/class.ilSimpleDetector.php';
293  $detector = new ilSimpleDetector($node);
294  $node->addDetector($detector);
295 
296  // Note: Order is important. Setting detector state prior to activation
297  // will be voided.
298  $node->activate();
299  $detector->setDetectorState(true);
300  /* Setting the detector to true will actually be reported
301  * with notifyDetectorSatisfaction.
302  * To isolate this call, we need to reset the node back
303  * to active prior to evaluating if it successfully executes
304  * the transition and sets itself to inactive.
305  */
306 
307  // Act
308  $node->notifyDetectorSatisfaction($detector);
309 
310  // Assert
311  $this->assertFalse($node->isActive());
312  }
PhpIncludeInspection
PhpIncludeInspection

◆ testSetGetIsForwardConditionNode()

ilBasicNodeTest::testSetGetIsForwardConditionNode ( )

Definition at line 314 of file ilBasicNodeTest.php.

315  {
316  // Arrange
317  $node = new ilBasicNode($this->workflow);
318  require_once './Services/WorkflowEngine/classes/detectors/class.ilSimpleDetector.php';
319  $detector = new ilSimpleDetector($node);
320  $node->addDetector($detector);
321 
322  // Act
323  $node->activate();
324 
325  // Assert
326  $this->assertFalse($node->isForwardConditionNode(), 'Forward condition should be false by default.');
327  $node->setIsForwardConditionNode(true);
328  $this->assertTrue($node->isForwardConditionNode(), 'Forward condition node state not properly stored.');
329  }
PhpIncludeInspection
PhpIncludeInspection

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