1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
namespace Tests\Behat\Gherkin\Node; |
4
|
|
|
|
5
|
|
|
use Behat\Gherkin\Node\ExampleTableNode; |
6
|
|
|
use Behat\Gherkin\Node\OutlineNode; |
7
|
|
|
use Behat\Gherkin\Node\PyStringNode; |
8
|
|
|
use Behat\Gherkin\Node\StepNode; |
9
|
|
|
use Behat\Gherkin\Node\TableNode; |
10
|
|
|
|
11
|
|
|
class ExampleNodeTest extends \PHPUnit_Framework_TestCase |
12
|
|
|
{ |
13
|
|
|
public function testCreateExampleSteps() |
14
|
|
|
{ |
15
|
|
|
$steps = array( |
16
|
|
|
$step1 = new StepNode('Gangway!', 'I am <name>', array(), null, 'Given'), |
17
|
|
|
$step2 = new StepNode('Aye!', 'my email is <email>', array(), null, 'And'), |
18
|
|
|
$step3 = new StepNode('Blimey!', 'I open homepage', array(), null, 'When'), |
19
|
|
|
$step4 = new StepNode('Let go and haul', 'website should recognise me', array(), null, 'Then'), |
20
|
|
|
); |
21
|
|
|
|
22
|
|
|
$table = new ExampleTableNode(array( |
23
|
|
|
array('name', 'email'), |
24
|
|
|
array('everzet', '[email protected]'), |
25
|
|
|
array('example', '[email protected]') |
26
|
|
|
), 'Examples'); |
27
|
|
|
|
28
|
|
|
$outline = new OutlineNode(null, array(), $steps, $table, null, null); |
29
|
|
|
$examples = $outline->getExamples(); |
30
|
|
|
|
31
|
|
|
$this->assertCount(4, $steps = $examples[0]->getSteps()); |
32
|
|
|
|
33
|
|
|
$this->assertEquals('Gangway!', $steps[0]->getType()); |
|
|
|
|
34
|
|
|
$this->assertEquals('Gangway!', $steps[0]->getKeyword()); |
35
|
|
|
$this->assertEquals('Given', $steps[0]->getKeywordType()); |
36
|
|
|
$this->assertEquals('I am everzet', $steps[0]->getText()); |
37
|
|
|
$this->assertEquals('Aye!', $steps[1]->getType()); |
|
|
|
|
38
|
|
|
$this->assertEquals('Aye!', $steps[1]->getKeyword()); |
39
|
|
|
$this->assertEquals('And', $steps[1]->getKeywordType()); |
40
|
|
|
$this->assertEquals('my email is [email protected]', $steps[1]->getText()); |
41
|
|
|
$this->assertEquals('Blimey!', $steps[2]->getType()); |
|
|
|
|
42
|
|
|
$this->assertEquals('Blimey!', $steps[2]->getKeyword()); |
43
|
|
|
$this->assertEquals('When', $steps[2]->getKeywordType()); |
44
|
|
|
$this->assertEquals('I open homepage', $steps[2]->getText()); |
45
|
|
|
|
46
|
|
|
$this->assertCount(4, $steps = $examples[1]->getSteps()); |
47
|
|
|
|
48
|
|
|
$this->assertEquals('Gangway!', $steps[0]->getType()); |
|
|
|
|
49
|
|
|
$this->assertEquals('Gangway!', $steps[0]->getKeyword()); |
50
|
|
|
$this->assertEquals('Given', $steps[0]->getKeywordType()); |
51
|
|
|
$this->assertEquals('I am example', $steps[0]->getText()); |
52
|
|
|
$this->assertEquals('Aye!', $steps[1]->getType()); |
|
|
|
|
53
|
|
|
$this->assertEquals('Aye!', $steps[1]->getKeyword()); |
54
|
|
|
$this->assertEquals('And', $steps[1]->getKeywordType()); |
55
|
|
|
$this->assertEquals('my email is [email protected]', $steps[1]->getText()); |
56
|
|
|
$this->assertEquals('Blimey!', $steps[2]->getType()); |
|
|
|
|
57
|
|
|
$this->assertEquals('Blimey!', $steps[2]->getKeyword()); |
58
|
|
|
$this->assertEquals('When', $steps[2]->getKeywordType()); |
59
|
|
|
$this->assertEquals('I open homepage', $steps[2]->getText()); |
60
|
|
|
} |
61
|
|
|
|
62
|
|
|
public function testCreateExampleStepsWithArguments() |
63
|
|
|
{ |
64
|
|
|
$steps = array( |
65
|
|
|
$step1 = new StepNode('Gangway!', 'I am <name>', array(), null, 'Given'), |
66
|
|
|
$step2 = new StepNode('Aye!', 'my email is <email>', array(), null, 'And'), |
67
|
|
|
$step3 = new StepNode('Blimey!', 'I open:', array( |
68
|
|
|
new PyStringNode(array('page: <url>'), null) |
69
|
|
|
), null, 'When'), |
70
|
|
|
$step4 = new StepNode('Let go and haul', 'website should recognise me', array( |
|
|
|
|
71
|
|
|
new TableNode(array(array('page', '<url>'))) |
72
|
|
|
), null, 'Then'), |
73
|
|
|
); |
74
|
|
|
|
75
|
|
|
$table = new ExampleTableNode(array( |
76
|
|
|
array('name', 'email', 'url'), |
77
|
|
|
array('everzet', '[email protected]', 'homepage'), |
78
|
|
|
array('example', '[email protected]', 'other page') |
79
|
|
|
), 'Examples'); |
80
|
|
|
|
81
|
|
|
$outline = new OutlineNode(null, array(), $steps, $table, null, null); |
82
|
|
|
$examples = $outline->getExamples(); |
83
|
|
|
|
84
|
|
|
$steps = $examples[0]->getSteps(); |
85
|
|
|
|
86
|
|
|
$args = $steps[2]->getArguments(); |
87
|
|
|
$this->assertEquals('page: homepage', $args[0]->getRaw()); |
|
|
|
|
88
|
|
|
|
89
|
|
|
$args = $steps[3]->getArguments(); |
90
|
|
|
$this->assertEquals('| page | homepage |', $args[0]->getTableAsString()); |
|
|
|
|
91
|
|
|
} |
92
|
|
|
} |
93
|
|
|
|
This method has been deprecated. The supplier of the class has supplied an explanatory message.
The explanatory message should give you some clue as to whether and when the method will be removed from the class and what other method or class to use instead.