ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
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() : void
18 {
20
21 // Empty workflow.
22 require_once './Services/WorkflowEngine/classes/workflows/class.ilEmptyWorkflow.php';
23 $this->workflow = new ilEmptyWorkflow();
24
25 // Basic node
26 require_once './Services/WorkflowEngine/classes/nodes/class.ilBasicNode.php';
27 $this->node = new ilBasicNode($this->workflow);
28
29 // Wiring up so the node is attached to the workflow.
30 $this->workflow->addNode($this->node);
31
32 require_once './Services/WorkflowEngine/classes/detectors/class.ilDataDetector.php';
33 }
34
35 public function tearDown() : void
36 {
37 global $DIC;
38
39 if (isset($DIC['ilSetting'])) {
40 $DIC['ilSetting']->delete('IL_PHPUNIT_TEST_TIME');
41 $DIC['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
Class ilWorkflowEngineBaseTest.
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc
$DIC
Definition: xapitoken.php:46