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 
45  public function testConstructorValidContext()
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 }
ilDataDetectorTest is part of the petri net based workflow engine.
PhpIncludeInspection
PhpIncludeInspection
global $ilSetting
Definition: privfeed.php:17
PhpIncludeInspection