1 | <?php |
||
18 | class GherkinToDusk extends BaseGherkinToDusk |
||
19 | { |
||
20 | use BuildOutContent; |
||
21 | |||
22 | protected $component = false; |
||
23 | |||
24 | protected $string_contents = null; |
||
25 | |||
26 | /** |
||
27 | * Yml Content of a test yml |
||
28 | * @var string |
||
29 | */ |
||
30 | protected $feature_content; |
||
31 | |||
32 | /** |
||
33 | * @var \Behat\Gherkin\Node\FeatureNode |
||
34 | */ |
||
35 | protected $parsed_feature; |
||
36 | |||
37 | /** |
||
38 | * |
||
39 | */ |
||
40 | protected $dusk_class_and_methods; |
||
41 | |||
42 | |||
43 | /** |
||
44 | * @var WritePHPUnitFile |
||
45 | */ |
||
46 | protected $write_unit_test; |
||
47 | |||
48 | /** |
||
49 | * @var WriteBrowserFile |
||
50 | */ |
||
51 | protected $write_browser_test; |
||
52 | |||
53 | 27 | public function initializeFeature() |
|
54 | { |
||
55 | 27 | $this->loadFileContent(); |
|
56 | |||
57 | 27 | $this->buildDuskTestName(); |
|
58 | |||
59 | 27 | $this->passThroughParser(); |
|
60 | |||
61 | 27 | $this->breakIntoMethods(); |
|
62 | |||
63 | 27 | switch ($this->context) { |
|
64 | 27 | case 'unit': |
|
65 | 27 | case 'domain': |
|
66 | 21 | $this->featureToUnit(); |
|
67 | 18 | break; |
|
68 | 6 | case 'ui': |
|
69 | 6 | case 'browser': |
|
70 | 6 | $this->featureToBrowser(); |
|
71 | 6 | break; |
|
72 | default: |
||
73 | //more coming soon |
||
74 | break; |
||
75 | 16 | } |
|
76 | 24 | } |
|
77 | |||
78 | 6 | protected function featureToBrowser() |
|
79 | { |
||
80 | 6 | $this->checkIfFileExists(); |
|
81 | |||
82 | 6 | $this->getWriteBrowserTest()->writeTest( |
|
83 | 6 | $this->getDestinationFolderRoot(), |
|
84 | 6 | $this->getDuskTestName(), |
|
85 | 6 | $this->getDuskClassAndMethods() |
|
86 | 4 | ); |
|
87 | 6 | } |
|
88 | |||
89 | 21 | protected function featureToUnit() |
|
90 | { |
||
91 | 21 | $this->checkIfFileExists(); |
|
92 | |||
93 | 18 | $this->getWriteUnitTest()->writeTest( |
|
94 | 18 | $this->getDestinationFolderRoot(), |
|
95 | 18 | $this->getDuskTestName(), |
|
96 | 18 | $this->getDuskClassAndMethods() |
|
97 | 12 | ); |
|
98 | 18 | } |
|
99 | |||
100 | |||
101 | /** |
||
102 | * @return boolean |
||
103 | */ |
||
104 | public function isComponent() |
||
108 | |||
109 | /** |
||
110 | * @param boolean $component |
||
111 | */ |
||
112 | public function setComponent($component) |
||
116 | |||
117 | /** |
||
118 | * @return mixed |
||
119 | */ |
||
120 | 3 | public function getFeatureContent() |
|
124 | |||
125 | /** |
||
126 | * @param mixed $feature_content |
||
127 | */ |
||
128 | public function setFeatureContent($feature_content) |
||
132 | |||
133 | 27 | private function loadFileContent() |
|
134 | { |
||
135 | 27 | $this->feature_content = |
|
138 | |||
139 | 27 | private function passThroughParser() |
|
143 | |||
144 | /** |
||
145 | * @return \Behat\Gherkin\Node\FeatureNode |
||
146 | */ |
||
147 | 3 | public function getParsedFeature() |
|
151 | |||
152 | /** |
||
153 | * @param \Behat\Gherkin\Node\FeatureNode $parsed_feature |
||
154 | */ |
||
155 | public function setParsedFeature($parsed_feature) |
||
159 | |||
160 | 27 | private function breakIntoMethods() |
|
164 | |||
165 | 27 | private function iterateOverScenariosAndBuildUpClassMethods() |
|
181 | |||
182 | /** |
||
183 | * @param $scenario \Behat\Gherkin\Node\ScenarioNode |
||
184 | */ |
||
185 | 27 | protected function buildOutSteps($scenario, $scenario_index) |
|
196 | |||
197 | |||
198 | |||
199 | /** |
||
200 | * @return mixed |
||
201 | */ |
||
202 | 24 | public function getDuskClassAndMethods() |
|
206 | |||
207 | /** |
||
208 | * @param mixed $dusk_class_and_methods |
||
209 | */ |
||
210 | public function setDuskClassAndMethods($dusk_class_and_methods) |
||
214 | |||
215 | |||
216 | |||
217 | 6 | public function getWriteBrowserTest() |
|
226 | |||
227 | /** |
||
228 | * @param null $write_browser_test |
||
229 | * @return GherkinToDusk |
||
230 | * @internal param WritePHPUnitFile $write_unit_test |
||
231 | */ |
||
232 | 6 | public function setWriteBrowserTest($write_browser_test = null) |
|
241 | |||
242 | 18 | public function getWriteUnitTest() |
|
251 | |||
252 | /** |
||
253 | * @param WritePHPUnitFile $write_unit_test |
||
254 | * @return GherkinToDusk |
||
255 | */ |
||
256 | 18 | public function setWriteUnitTest($write_unit_test = null) |
|
265 | |||
266 | 27 | private function checkIfFileExists() |
|
274 | } |
||
275 |