cuke_modeler 0.4.1 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (252) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +17 -17
  3. data/.travis.yml +1 -1
  4. data/Gemfile +4 -0
  5. data/History.rdoc +71 -3
  6. data/LICENSE.txt +22 -22
  7. data/README.md +24 -10
  8. data/Rakefile +2 -12
  9. data/cuke_modeler.gemspec +1 -1
  10. data/features/analysis/test_comparison.feature +37 -122
  11. data/features/modeling/background_modeling.feature +77 -0
  12. data/features/modeling/background_output.feature +42 -0
  13. data/features/modeling/cell_modeling.feature +23 -0
  14. data/features/modeling/cell_output.feature +22 -0
  15. data/features/modeling/directory_modeling.feature +65 -0
  16. data/features/modeling/directory_output.feature +12 -0
  17. data/features/modeling/doc_string_modeling.feature +61 -0
  18. data/features/modeling/doc_string_output.feature +32 -0
  19. data/features/modeling/example_modeling.feature +125 -0
  20. data/features/modeling/example_output.feature +39 -0
  21. data/features/modeling/feature_file_modeling.feature +40 -0
  22. data/features/modeling/feature_file_output.feature +12 -0
  23. data/features/modeling/feature_modeling.feature +109 -0
  24. data/features/modeling/feature_output.feature +104 -0
  25. data/features/modeling/model_output.feature +22 -0
  26. data/features/modeling/model_structure.feature +48 -0
  27. data/features/modeling/outline_modeling.feature +144 -0
  28. data/features/modeling/outline_output.feature +69 -0
  29. data/features/modeling/row_modeling.feature +48 -0
  30. data/features/modeling/row_output.feature +22 -0
  31. data/features/modeling/scenario_modeling.feature +118 -0
  32. data/features/modeling/scenario_output.feature +45 -0
  33. data/features/modeling/step_modeling.feature +84 -0
  34. data/features/modeling/step_output.feature +29 -0
  35. data/features/modeling/table_modeling.feature +50 -0
  36. data/features/modeling/table_output.feature +24 -0
  37. data/features/modeling/tag_modeling.feature +43 -0
  38. data/features/modeling/tag_output.feature +22 -0
  39. data/features/step_definitions/action_steps.rb +11 -1
  40. data/features/step_definitions/background_steps.rb +1 -85
  41. data/features/step_definitions/directory_steps.rb +2 -48
  42. data/features/step_definitions/doc_string_steps.rb +1 -67
  43. data/features/step_definitions/feature_file_steps.rb +2 -37
  44. data/features/step_definitions/feature_steps.rb +4 -100
  45. data/features/step_definitions/modeling_steps.rb +44 -0
  46. data/features/step_definitions/setup_steps.rb +19 -41
  47. data/features/step_definitions/step_steps.rb +2 -166
  48. data/features/step_definitions/table_steps.rb +1 -58
  49. data/features/step_definitions/tag_steps.rb +2 -72
  50. data/features/step_definitions/verification_steps.rb +152 -4
  51. data/features/support/env.rb +4 -6
  52. data/gemfiles/{gherkin.gemfile → gherkin2.gemfile} +4 -0
  53. data/gemfiles/gherkin3.gemfile +4 -0
  54. data/gemfiles/gherkin4.gemfile +4 -0
  55. data/lib/cuke_modeler.rb +24 -22
  56. data/lib/cuke_modeler/adapters/gherkin_2_adapter.rb +103 -31
  57. data/lib/cuke_modeler/adapters/gherkin_3_adapter.rb +103 -40
  58. data/lib/cuke_modeler/adapters/gherkin_4_adapter.rb +111 -50
  59. data/lib/cuke_modeler/containing.rb +255 -4
  60. data/lib/cuke_modeler/described.rb +28 -0
  61. data/lib/cuke_modeler/models/background.rb +66 -0
  62. data/lib/cuke_modeler/models/cell.rb +48 -0
  63. data/lib/cuke_modeler/models/directory.rb +95 -0
  64. data/lib/cuke_modeler/models/doc_string.rb +59 -0
  65. data/lib/cuke_modeler/models/example.rb +167 -0
  66. data/lib/cuke_modeler/models/feature.rb +106 -0
  67. data/lib/cuke_modeler/models/feature_file.rb +64 -0
  68. data/lib/cuke_modeler/models/model.rb +32 -0
  69. data/lib/cuke_modeler/models/outline.rb +79 -0
  70. data/lib/cuke_modeler/models/row.rb +49 -0
  71. data/lib/cuke_modeler/models/scenario.rb +69 -0
  72. data/lib/cuke_modeler/models/step.rb +68 -0
  73. data/lib/cuke_modeler/models/table.rb +67 -0
  74. data/lib/cuke_modeler/models/tag.rb +46 -0
  75. data/lib/cuke_modeler/named.rb +19 -0
  76. data/lib/cuke_modeler/nested.rb +22 -15
  77. data/lib/cuke_modeler/parsed.rb +11 -0
  78. data/lib/cuke_modeler/parsing.rb +66 -83
  79. data/lib/cuke_modeler/sourceable.rb +3 -11
  80. data/lib/cuke_modeler/stepped.rb +24 -0
  81. data/lib/cuke_modeler/taggable.rb +6 -29
  82. data/lib/cuke_modeler/version.rb +2 -1
  83. data/spec/integration/background_integration_spec.rb +332 -7
  84. data/spec/integration/cell_integration_spec.rb +321 -0
  85. data/spec/integration/directory_integration_spec.rb +175 -9
  86. data/spec/integration/doc_string_integration_spec.rb +318 -7
  87. data/spec/integration/example_integration_spec.rb +602 -19
  88. data/spec/integration/feature_file_integration_spec.rb +98 -3
  89. data/spec/integration/feature_integration_spec.rb +445 -27
  90. data/spec/integration/gherkin_2_adapter_spec.rb +122 -0
  91. data/spec/integration/gherkin_3_adapter_spec.rb +125 -0
  92. data/spec/integration/gherkin_4_adapter_spec.rb +123 -0
  93. data/spec/integration/model_integration_spec.rb +15 -0
  94. data/spec/integration/nested_integration_spec.rb +91 -0
  95. data/spec/integration/outline_integration_spec.rb +485 -12
  96. data/spec/integration/parsing_integration_spec.rb +85 -0
  97. data/spec/integration/row_integration_spec.rb +221 -18
  98. data/spec/integration/scenario_integration_spec.rb +368 -14
  99. data/spec/integration/shared/models_integration_specs.rb +18 -0
  100. data/spec/integration/step_integration_spec.rb +328 -77
  101. data/spec/integration/table_integration_spec.rb +242 -20
  102. data/spec/integration/tag_integration_spec.rb +178 -13
  103. data/spec/spec_helper.rb +32 -18
  104. data/spec/unit/background_unit_spec.rb +24 -44
  105. data/spec/unit/cell_unit_spec.rb +73 -0
  106. data/spec/unit/described_unit_spec.rb +23 -0
  107. data/spec/unit/directory_unit_spec.rb +52 -62
  108. data/spec/unit/doc_string_unit_spec.rb +47 -100
  109. data/spec/unit/example_unit_spec.rb +50 -296
  110. data/spec/unit/feature_file_unit_spec.rb +53 -52
  111. data/spec/unit/feature_unit_spec.rb +39 -83
  112. data/spec/unit/model_unit_spec.rb +15 -0
  113. data/spec/unit/named_unit_spec.rb +23 -0
  114. data/spec/unit/nested_unit_spec.rb +24 -21
  115. data/spec/unit/outline_unit_spec.rb +46 -69
  116. data/spec/unit/parsed_unit_spec.rb +27 -0
  117. data/spec/unit/parsing_unit_spec.rb +2 -70
  118. data/spec/unit/row_unit_spec.rb +22 -51
  119. data/spec/unit/scenario_unit_spec.rb +27 -59
  120. data/spec/unit/{bare_bones_unit_specs.rb → shared/bare_bones_models_unit_specs.rb} +2 -2
  121. data/spec/unit/shared/containing_models_unit_specs.rb +18 -0
  122. data/spec/unit/shared/described_models_unit_specs.rb +38 -0
  123. data/spec/unit/shared/models_unit_specs.rb +15 -0
  124. data/spec/unit/shared/named_models_unit_specs.rb +39 -0
  125. data/spec/unit/shared/nested_models_unit_specs.rb +51 -0
  126. data/spec/unit/shared/parsed_models_unit_specs.rb +39 -0
  127. data/spec/unit/shared/prepopulated_models_unit_specs.rb +18 -0
  128. data/spec/unit/shared/sourced_models_unit_specs.rb +39 -0
  129. data/spec/unit/shared/stepped_models_unit_specs.rb +46 -0
  130. data/spec/unit/shared/stringifiable_models_unit_specs.rb +18 -0
  131. data/spec/unit/shared/tagged_models_unit_specs.rb +72 -0
  132. data/spec/unit/sourceable_unit_spec.rb +12 -4
  133. data/spec/unit/step_unit_spec.rb +40 -231
  134. data/spec/unit/stepped_unit_spec.rb +23 -0
  135. data/spec/unit/table_unit_spec.rb +27 -89
  136. data/spec/unit/tag_unit_spec.rb +30 -53
  137. data/spec/unit/taggable_unit_spec.rb +26 -42
  138. data/todo.txt +32 -0
  139. metadata +135 -217
  140. data/features/analysis/test_manipulation.feature +0 -37
  141. data/features/modeling/gherkin/background_modeling.feature +0 -65
  142. data/features/modeling/gherkin/background_output.feature +0 -131
  143. data/features/modeling/gherkin/directory_modeling.feature +0 -110
  144. data/features/modeling/gherkin/directory_output.feature +0 -14
  145. data/features/modeling/gherkin/doc_string_modeling.feature +0 -53
  146. data/features/modeling/gherkin/doc_string_output.feature +0 -72
  147. data/features/modeling/gherkin/example_modeling.feature +0 -101
  148. data/features/modeling/gherkin/example_output.feature +0 -193
  149. data/features/modeling/gherkin/feature_file_modeling.feature +0 -54
  150. data/features/modeling/gherkin/feature_file_output.feature +0 -14
  151. data/features/modeling/gherkin/feature_modeling.feature +0 -154
  152. data/features/modeling/gherkin/feature_output.feature +0 -245
  153. data/features/modeling/gherkin/outline_modeling.feature +0 -90
  154. data/features/modeling/gherkin/outline_output.feature +0 -198
  155. data/features/modeling/gherkin/row_modeling.feature +0 -68
  156. data/features/modeling/gherkin/row_output.feature +0 -28
  157. data/features/modeling/gherkin/scenario_modeling.feature +0 -79
  158. data/features/modeling/gherkin/scenario_output.feature +0 -148
  159. data/features/modeling/gherkin/step_modeling.feature +0 -75
  160. data/features/modeling/gherkin/step_output.feature +0 -53
  161. data/features/modeling/gherkin/table_modeling.feature +0 -42
  162. data/features/modeling/gherkin/table_output.feature +0 -43
  163. data/features/modeling/gherkin/table_row_modeling.feature +0 -57
  164. data/features/modeling/gherkin/table_row_output.feature +0 -28
  165. data/features/modeling/gherkin/tag_modeling.feature +0 -48
  166. data/features/modeling/gherkin/tag_output.feature +0 -17
  167. data/features/modeling/gherkin3/background_modeling.feature +0 -64
  168. data/features/modeling/gherkin3/background_output.feature +0 -131
  169. data/features/modeling/gherkin3/directory_modeling.feature +0 -110
  170. data/features/modeling/gherkin3/directory_output.feature +0 -14
  171. data/features/modeling/gherkin3/doc_string_modeling.feature +0 -53
  172. data/features/modeling/gherkin3/doc_string_output.feature +0 -72
  173. data/features/modeling/gherkin3/example_modeling.feature +0 -100
  174. data/features/modeling/gherkin3/example_output.feature +0 -207
  175. data/features/modeling/gherkin3/feature_file_modeling.feature +0 -54
  176. data/features/modeling/gherkin3/feature_file_output.feature +0 -14
  177. data/features/modeling/gherkin3/feature_modeling.feature +0 -155
  178. data/features/modeling/gherkin3/feature_output.feature +0 -249
  179. data/features/modeling/gherkin3/outline_modeling.feature +0 -89
  180. data/features/modeling/gherkin3/outline_output.feature +0 -255
  181. data/features/modeling/gherkin3/row_modeling.feature +0 -68
  182. data/features/modeling/gherkin3/row_output.feature +0 -28
  183. data/features/modeling/gherkin3/scenario_modeling.feature +0 -78
  184. data/features/modeling/gherkin3/scenario_output.feature +0 -148
  185. data/features/modeling/gherkin3/step_modeling.feature +0 -75
  186. data/features/modeling/gherkin3/step_output.feature +0 -53
  187. data/features/modeling/gherkin3/table_modeling.feature +0 -42
  188. data/features/modeling/gherkin3/table_output.feature +0 -43
  189. data/features/modeling/gherkin3/table_row_modeling.feature +0 -57
  190. data/features/modeling/gherkin3/table_row_output.feature +0 -28
  191. data/features/modeling/gherkin3/tag_modeling.feature +0 -49
  192. data/features/modeling/gherkin3/tag_output.feature +0 -17
  193. data/features/modeling/gherkin4/background_modeling.feature +0 -64
  194. data/features/modeling/gherkin4/background_output.feature +0 -131
  195. data/features/modeling/gherkin4/directory_modeling.feature +0 -110
  196. data/features/modeling/gherkin4/directory_output.feature +0 -14
  197. data/features/modeling/gherkin4/doc_string_modeling.feature +0 -53
  198. data/features/modeling/gherkin4/doc_string_output.feature +0 -72
  199. data/features/modeling/gherkin4/example_modeling.feature +0 -100
  200. data/features/modeling/gherkin4/example_output.feature +0 -193
  201. data/features/modeling/gherkin4/feature_file_modeling.feature +0 -54
  202. data/features/modeling/gherkin4/feature_file_output.feature +0 -14
  203. data/features/modeling/gherkin4/feature_modeling.feature +0 -153
  204. data/features/modeling/gherkin4/feature_output.feature +0 -245
  205. data/features/modeling/gherkin4/outline_modeling.feature +0 -89
  206. data/features/modeling/gherkin4/outline_output.feature +0 -198
  207. data/features/modeling/gherkin4/row_modeling.feature +0 -68
  208. data/features/modeling/gherkin4/row_output.feature +0 -28
  209. data/features/modeling/gherkin4/scenario_modeling.feature +0 -78
  210. data/features/modeling/gherkin4/scenario_output.feature +0 -148
  211. data/features/modeling/gherkin4/step_modeling.feature +0 -75
  212. data/features/modeling/gherkin4/step_output.feature +0 -53
  213. data/features/modeling/gherkin4/table_modeling.feature +0 -42
  214. data/features/modeling/gherkin4/table_output.feature +0 -43
  215. data/features/modeling/gherkin4/table_row_modeling.feature +0 -57
  216. data/features/modeling/gherkin4/table_row_output.feature +0 -28
  217. data/features/modeling/gherkin4/tag_modeling.feature +0 -48
  218. data/features/modeling/gherkin4/tag_output.feature +0 -17
  219. data/features/step_definitions/outline_steps.rb +0 -258
  220. data/features/step_definitions/test_steps.rb +0 -123
  221. data/lib/cuke_modeler/background.rb +0 -38
  222. data/lib/cuke_modeler/directory.rb +0 -83
  223. data/lib/cuke_modeler/doc_string.rb +0 -87
  224. data/lib/cuke_modeler/example.rb +0 -195
  225. data/lib/cuke_modeler/feature.rb +0 -147
  226. data/lib/cuke_modeler/feature_element.rb +0 -73
  227. data/lib/cuke_modeler/feature_file.rb +0 -77
  228. data/lib/cuke_modeler/outline.rb +0 -68
  229. data/lib/cuke_modeler/raw.rb +0 -20
  230. data/lib/cuke_modeler/row.rb +0 -64
  231. data/lib/cuke_modeler/scenario.rb +0 -45
  232. data/lib/cuke_modeler/step.rb +0 -216
  233. data/lib/cuke_modeler/table.rb +0 -90
  234. data/lib/cuke_modeler/table_row.rb +0 -64
  235. data/lib/cuke_modeler/tag.rb +0 -62
  236. data/lib/cuke_modeler/test_element.rb +0 -79
  237. data/lib/cuke_modeler/world.rb +0 -113
  238. data/spec/integration/table_row_integration_spec.rb +0 -76
  239. data/spec/integration/world_integration_spec.rb +0 -14
  240. data/spec/unit/containing_element_unit_specs.rb +0 -18
  241. data/spec/unit/feature_element_unit_spec.rb +0 -19
  242. data/spec/unit/feature_element_unit_specs.rb +0 -52
  243. data/spec/unit/nested_element_unit_specs.rb +0 -39
  244. data/spec/unit/prepopulated_unit_specs.rb +0 -14
  245. data/spec/unit/raw_element_unit_specs.rb +0 -27
  246. data/spec/unit/raw_unit_spec.rb +0 -28
  247. data/spec/unit/sourced_element_unit_specs.rb +0 -18
  248. data/spec/unit/table_row_unit_spec.rb +0 -102
  249. data/spec/unit/tagged_element_unit_specs.rb +0 -67
  250. data/spec/unit/test_element_unit_spec.rb +0 -54
  251. data/spec/unit/test_element_unit_specs.rb +0 -34
  252. data/spec/unit/world_unit_spec.rb +0 -140
@@ -1,37 +0,0 @@
1
- Feature: Tests can be manipulated in various ways.
2
-
3
-
4
- Acceptance criteria
5
-
6
- Tests can be manipulated:
7
- 1. outlines can have rows added and removed
8
-
9
-
10
- Background: Test file setup.
11
- Given the following feature file:
12
- """
13
- Feature: A feature containing our starting outline.
14
-
15
- Scenario Outline:
16
- Given this *parameterized* step takes a table:
17
- | <param1> |
18
- | <param2> |
19
- Then I don't really need another step
20
- Examples: Only one row to start with
21
- | param1 | param2 |
22
- | x | y |
23
- """
24
- And parameter delimiters of "*" and "*"
25
- And the file is read
26
-
27
- Scenario: Rows can be added to an outline
28
- When the test example block has the following rows added to it:
29
- | 1,2 |
30
- Then the test example block rows are as follows:
31
- | x,y |
32
- | 1,2 |
33
-
34
- Scenario: Rows can be removed from an outline
35
- When the test example block has the following rows removed from it:
36
- | x,y |
37
- Then the test example block has no rows
@@ -1,65 +0,0 @@
1
- @gherkin
2
- Feature: Background elements can be modeled.
3
-
4
-
5
- Acceptance criteria
6
-
7
- 1. All conceptual pieces of a background can be modeled:
8
- - the background's name
9
- - the background's description
10
- - the background's steps
11
- - the background's source line
12
- - the background's raw element
13
-
14
- 2. Backgrounds can be outputted in a convenient form
15
-
16
-
17
- Background: Test file setup.
18
- Given the following feature file:
19
- """
20
- Feature:
21
-
22
- Background: Some general test setup stuff.
23
-
24
- Some background description.
25
-
26
- Some more.
27
- Even more.
28
-
29
- Given a setup step
30
- And another setup step
31
- When an action step
32
- """
33
- And parameter delimiters of "*" and "*"
34
- When the file is read
35
-
36
-
37
- Scenario: The raw background element is modeled.
38
- Then the background correctly stores its underlying implementation
39
-
40
- Scenario: The background source line is modeled.
41
- Then the background is found to have the following properties:
42
- | source_line | 3 |
43
-
44
- Scenario: The background name is modeled.
45
- Then the background is found to have the following properties:
46
- | name | Some general test setup stuff. |
47
-
48
- Scenario: The background description is modeled.
49
- Then the background has the following description:
50
- """
51
-
52
- Some background description.
53
-
54
- Some more.
55
- Even more.
56
- """
57
-
58
- Scenario: The background steps are modeled.
59
- Then the background's steps are as follows:
60
- | a setup step |
61
- | another setup step |
62
- | an action step |
63
-
64
- Scenario: Convenient output of a background
65
- Then the background has convenient output
@@ -1,131 +0,0 @@
1
- @gherkin
2
- Feature: Outputting background elements
3
-
4
- The output of an element model is a representation of the element as it would
5
- appear in gherkin.
6
-
7
-
8
- Scenario: Output of a background that does not have a name
9
- Given a background element based on the following gherkin:
10
- """
11
- Background:
12
- """
13
- When it is outputted
14
- Then the following text is provided:
15
- """
16
- Background:
17
- """
18
-
19
- Scenario: Output of a background that does have a name
20
- Given a background element based on the following gherkin:
21
- """
22
- Background: with a name
23
- """
24
- When it is outputted
25
- Then the following text is provided:
26
- """
27
- Background: with a name
28
- """
29
-
30
- Scenario: Output of a background that has a description, no first line buffer
31
- Given a background element based on the following gherkin:
32
- """
33
- Background:
34
- Some description.
35
- Some more description.
36
- """
37
- When it is outputted
38
- Then the following text is provided:
39
- """
40
- Background:
41
-
42
- Some description.
43
- Some more description.
44
- """
45
-
46
- Scenario: Output of a background that has a description, first line is blank
47
- Given a background element based on the following gherkin:
48
- """
49
- Background:
50
-
51
- Some description.
52
- Some more description.
53
- """
54
- When it is outputted
55
- Then the following text is provided:
56
- """
57
- Background:
58
-
59
- Some description.
60
- Some more description.
61
- """
62
-
63
- Scenario: Output of a background that has a description, first line is only whitespace
64
- Given a background element based on the following gherkin:
65
- """
66
- Background:
67
-
68
- Some description.
69
- Some more description.
70
- """
71
- When it is outputted
72
- Then the following text is provided:
73
- """
74
- Background:
75
-
76
- Some description.
77
- Some more description.
78
- """
79
-
80
- Scenario: Output of a background that has steps
81
- Given a background element based on the following gherkin:
82
- """
83
- Background:
84
- * a step
85
- |value|
86
- * another step
87
- \"\"\"
88
- some string
89
- \"\"\"
90
- """
91
- When it is outputted
92
- Then the following text is provided:
93
- """
94
- Background:
95
- * a step
96
- | value |
97
- * another step
98
- \"\"\"
99
- some string
100
- \"\"\"
101
- """
102
-
103
- Scenario: Output of a background that contains all possible parts
104
- Given a background element based on the following gherkin:
105
- """
106
- Background: A background with everything it could have
107
- Including a description
108
- and then some.
109
-
110
- * a step
111
- |value|
112
- * another step
113
- \"\"\"
114
- some string
115
- \"\"\"
116
- """
117
- When it is outputted
118
- Then the following text is provided:
119
- """
120
- Background: A background with everything it could have
121
-
122
- Including a description
123
- and then some.
124
-
125
- * a step
126
- | value |
127
- * another step
128
- \"\"\"
129
- some string
130
- \"\"\"
131
- """
@@ -1,110 +0,0 @@
1
- @gherkin
2
- Feature: Directories can be modeled.
3
-
4
-
5
- Acceptance criteria
6
-
7
- 1. Directories containing feature files can be modeled:
8
- - the directory's name
9
- - the directory's full path
10
- - all feature files contained
11
- - all directories contained
12
-
13
- 2. Directories can be outputted in a convenient form
14
-
15
-
16
- Background: Setup test directories
17
- Given a directory "feature_directory"
18
- And the following feature file "test_file_1.feature":
19
- """
20
- Feature: The test feature 1.
21
-
22
- Scenario: The first scenario's name.
23
- Given the first step
24
- When the second step
25
- Then the third step
26
- """
27
- And the following feature file "test_file_2.feature":
28
- """
29
- Feature: The test feature 2.
30
-
31
- Scenario: The first scenario's name.
32
- Given the first step
33
- When the second step
34
- Then the third step
35
- """
36
- And the following feature file "test_file_3.feature":
37
- """
38
- Feature: The test feature 3.
39
-
40
- Scenario: The first scenario's name.
41
- Given the first step
42
- When the second step
43
- Then the third step
44
- """
45
- And the following file "random.file":
46
- """
47
- Not a .feature file.
48
- """
49
- Given a directory "feature_directory/nested_directory"
50
- And the following feature file "test_file_4.feature":
51
- """
52
- Feature: The test feature 1.
53
-
54
- Scenario: The first scenario's name.
55
- Given the first step
56
- When the second step
57
- Then the third step
58
- """
59
- And the following feature file "test_file_5.feature":
60
- """
61
- Feature: The test feature 2.
62
-
63
- Scenario: The first scenario's name.
64
- Given the first step
65
- When the second step
66
- Then the third step
67
- """
68
- And the following file "another_random.file":
69
- """
70
- Not a .feature file.
71
- """
72
- When the directory "feature_directory" is read
73
- And the directory "feature_directory/nested_directory" is read
74
-
75
- Scenario: The directory's name is modeled.
76
- Then directory "1" is found to have the following properties:
77
- | name | feature_directory |
78
- And directory "2" is found to have the following properties:
79
- | name | nested_directory |
80
-
81
- Scenario: The directory's full path is modeled.
82
- Then directory "1" is found to have the following properties:
83
- | path | path_to/feature_directory |
84
- And directory "2" is found to have the following properties:
85
- | path | path_to/feature_directory/nested_directory |
86
-
87
- Scenario: The directory's feature files are modeled.
88
- Then directory "1" is found to have the following properties:
89
- | feature_file_count | 3 |
90
- And directory "1" feature files are as follows:
91
- | test_file_1.feature |
92
- | test_file_2.feature |
93
- | test_file_3.feature |
94
- Then directory "2" is found to have the following properties:
95
- | feature_file_count | 2 |
96
- And directory "2" feature files are as follows:
97
- | test_file_4.feature |
98
- | test_file_5.feature |
99
-
100
- Scenario: The directory's directories are modeled.
101
- Then directory "1" is found to have the following properties:
102
- | directory_count | 1 |
103
- And directory "1" directories are as follows:
104
- | nested_directory |
105
- Then directory "2" is found to have the following properties:
106
- | directory_count | 0 |
107
- And directory "2" has no directories
108
-
109
- Scenario: Convenient output of a directory
110
- Then the directory has convenient output
@@ -1,14 +0,0 @@
1
- @gherkin
2
- Feature: Outputting directory elements
3
-
4
- The output of an element model is a representation of the element as it would
5
- appear in gherkin.
6
-
7
-
8
- Scenario: Output of a directory
9
- Given a directory element based on "some_directory"
10
- When it is outputted
11
- Then the following text is provided:
12
- """
13
- path_to/some_directory
14
- """
@@ -1,53 +0,0 @@
1
- @gherkin
2
- Feature: Doc string elements can be modeled.
3
-
4
-
5
- Acceptance criteria
6
-
7
- 1. All conceptual pieces of a doc string can be modeled:
8
- - the doc string's content type
9
- - the doc string's contents
10
- - the doc string's raw element
11
-
12
- 2. Doc string can be outputted in a convenient form
13
-
14
-
15
- Background: Test file setup.
16
- Given the following feature file:
17
- """
18
- Feature:
19
-
20
- Scenario:
21
- * some wordy step:
22
- \"\"\" content type
23
- some text
24
-
25
- some more text
26
-
27
- \"\"\"
28
- * some wordy step:
29
- \"\"\"
30
- \"\"\"
31
- """
32
- When the file is read
33
-
34
-
35
- Scenario: The raw doc string element is modeled.
36
- Then the doc string correctly stores its underlying implementation
37
-
38
- Scenario: The doc string's content type is modeled.
39
- Then the step "1" doc string content type is "content type"
40
- And the step "2" doc string has no content type
41
-
42
- Scenario: The doc string's contents are modeled.
43
- Then the step "1" doc string has the following contents:
44
- """
45
- some text
46
-
47
- some more text
48
-
49
- """
50
- And the step "2" doc string contents are empty
51
-
52
- Scenario: Convenient output of an a doc string
53
- Then the doc string has convenient output
@@ -1,72 +0,0 @@
1
- @gherkin
2
- Feature: Outputting doc string elements
3
-
4
- The output of an element model is a representation of the element as it would
5
- appear in gherkin.
6
-
7
-
8
- Scenario: Output of an empty doc string
9
- Given a doc string element based on the following gherkin:
10
- """
11
- \"\"\"
12
- \"\"\"
13
- """
14
- When it is outputted
15
- Then the following text is provided:
16
- """
17
- \"\"\"
18
- \"\"\"
19
- """
20
-
21
- Scenario: Output of a doc string without a content type
22
- Given a doc string element based on the following gherkin:
23
- """
24
- \"\"\"
25
- Some text
26
-
27
- some more text
28
-
29
- \"\"\"
30
- """
31
- When it is outputted
32
- Then the following text is provided:
33
- """
34
- \"\"\"
35
- Some text
36
-
37
- some more text
38
-
39
- \"\"\"
40
- """
41
-
42
- Scenario: Output of a doc string with a content type
43
- Given a doc string element based on the following gherkin:
44
- """
45
- \"\"\" the type
46
- Some text
47
-
48
- some more text
49
-
50
- \"\"\"
51
- """
52
- When it is outputted
53
- Then the following text is provided:
54
- """
55
- \"\"\" the type
56
- Some text
57
-
58
- some more text
59
-
60
- \"\"\"
61
- """
62
-
63
- Scenario: Output of a doc string with a triple quotes in its contents
64
-
65
- Since triple quotes mark the beginning and end of a doc string, any triple
66
- quotes inside of the doc string (which would have had to have been escaped
67
- to get inside in the first place) will be escaped when outputted so as to
68
- retain the quality of being able to use the output directly as gherkin.
69
-
70
- Given a doc string element based on the string """" the type\n* a step\n \"\"\"\n that also has a doc string\n \"\"\"\n""""
71
- When it is outputted
72
- Then the text provided is """" the type\n* a step\n \"\"\"\n that also has a doc string\n \"\"\"\n""""