-
-
Notifications
You must be signed in to change notification settings - Fork 9.4k
/
DefinitionTest.php
82 lines (64 loc) · 2.38 KB
/
DefinitionTest.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<?php
namespace Symfony\Component\Workflow\Tests;
use Symfony\Component\Workflow\Definition;
use Symfony\Component\Workflow\Transition;
class DefinitionTest extends \PHPUnit_Framework_TestCase
{
public function testAddPlaces()
{
$places = range('a', 'e');
$definition = new Definition($places);
$this->assertCount(5, $definition->getPlaces());
$this->assertEquals('a', $definition->getInitialPlace());
}
/**
* @expectedException \Symfony\Component\Workflow\Exception\InvalidArgumentException
*/
public function testAddPlacesInvalidArgument()
{
$places = array('a"', 'e"');
$definition = new Definition($places);
}
public function testSetInitialPlace()
{
$places = range('a', 'e');
$definition = new Definition($places);
$definition->setInitialPlace($places[3]);
$this->assertEquals($places[3], $definition->getInitialPlace());
}
/**
* @expectedException \Symfony\Component\Workflow\Exception\LogicException
* @expectedExceptionMessage Place "d" cannot be the initial place as it does not exist.
*/
public function testSetInitialPlaceAndPlaceIsNotDefined()
{
$definition = new Definition();
$definition->setInitialPlace('d');
}
public function testAddTransition()
{
$places = range('a', 'b');
$transition = new Transition('name', $places[0], $places[1]);
$definition = new Definition($places, array($transition));
$this->assertCount(1, $definition->getTransitions());
$this->assertSame($transition, $definition->getTransitions()[0]);
}
/**
* @expectedException \Symfony\Component\Workflow\Exception\LogicException
* @expectedExceptionMessage Place "c" referenced in transition "name" does not exist.
*/
public function testAddTransitionAndFromPlaceIsNotDefined()
{
$places = range('a', 'b');
new Definition($places, array(new Transition('name', 'c', $places[1])));
}
/**
* @expectedException \Symfony\Component\Workflow\Exception\LogicException
* @expectedExceptionMessage Place "c" referenced in transition "name" does not exist.
*/
public function testAddTransitionAndToPlaceIsNotDefined()
{
$places = range('a', 'b');
new Definition($places, array(new Transition('name', $places[0], 'c')));
}
}