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,42 +0,0 @@
1
- @gherkin
2
- Feature: Table elements can be modeled.
3
-
4
-
5
- Acceptance criteria
6
-
7
- 1. All conceptual pieces of a table can be modeled:
8
- - the table's contents
9
- - the table's raw element
10
-
11
- 2. Tables can be outputted in a convenient form
12
-
13
-
14
- Background: Test file setup.
15
- Given the following feature file:
16
- """
17
- Feature:
18
-
19
- Scenario:
20
- * some data filled step:
21
- | value 1 | value 2 |
22
- | value 3 | value 4 |
23
- * some data filled step:
24
- | value 1 |
25
- | value 2 |
26
- """
27
- When the file is read
28
-
29
-
30
- Scenario: The table's contents are modeled.
31
- Then the step "1" table has the following contents:
32
- | value 1 | value 2 |
33
- | value 3 | value 4 |
34
- And the step "2" table has the following contents:
35
- | value 1 |
36
- | value 2 |
37
-
38
- Scenario: The raw table element is modeled.
39
- Then the table correctly stores its underlying implementation
40
-
41
- Scenario: Convenient output of a table
42
- Then the table has convenient output
@@ -1,43 +0,0 @@
1
- @gherkin
2
- Feature: Outputting table 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 table that has one row
9
- Given a table element based on the following gherkin:
10
- """
11
- |value|
12
- """
13
- When it is outputted
14
- Then the following text is provided:
15
- """
16
- | value |
17
- """
18
-
19
- Scenario: Output of a table that has multiple rows
20
- Given a table element based on the following gherkin:
21
- """
22
- |value1|
23
- |value2|
24
- """
25
- When it is outputted
26
- Then the following text is provided:
27
- """
28
- | value1 |
29
- | value2 |
30
- """
31
-
32
- Scenario: Whitespace buffers are based on the longest value in a column
33
- Given a table element based on the following gherkin:
34
- """
35
- |value|x|
36
- |y|another_value|
37
- """
38
- When it is outputted
39
- Then the following text is provided:
40
- """
41
- | value | x |
42
- | y | another_value |
43
- """
@@ -1,57 +0,0 @@
1
- @gherkin
2
- Feature: Table Row elements can be modeled.
3
-
4
-
5
- Acceptance criteria
6
-
7
- 1. All conceptual pieces of a table row can be modeled:
8
- - the row's source line
9
- - the row's cells
10
- - the row's raw element
11
-
12
- 2. Rows 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 data filled step:
22
- | value 1 | value 2 |
23
- | value 3 | value 4 |
24
- * some data filled step:
25
- | value 1 |
26
- | value 2 |
27
- """
28
- When the file is read
29
-
30
-
31
- Scenario: The raw table row element is modeled.
32
- Then the step table row correctly stores its underlying implementation
33
-
34
- Scenario: The table row's source line is modeled.
35
- Then step "1" table row "1" is found to have the following properties:
36
- | source_line | 5 |
37
- And step "1" table row "2" is found to have the following properties:
38
- | source_line | 6 |
39
- And step "2" table row "1" is found to have the following properties:
40
- | source_line | 8 |
41
- And step "2" table row "2" is found to have the following properties:
42
- | source_line | 9 |
43
-
44
- Scenario: The table row's cells are modeled.
45
- Then step "1" table row "1" cells are as follows:
46
- | value 1 |
47
- | value 2 |
48
- And step "1" table row "2" cells are as follows:
49
- | value 3 |
50
- | value 4 |
51
- And step "2" table row "1" cells are as follows:
52
- | value 1 |
53
- And step "2" table row "2" cells are as follows:
54
- | value 2 |
55
-
56
- Scenario: Convenient output of a table row
57
- Then the table row has convenient output
@@ -1,28 +0,0 @@
1
- @gherkin
2
- Feature: Outputting table row 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 table row that has one cell
9
- Given a table row element based on the following gherkin:
10
- """
11
- |value|
12
- """
13
- When it is outputted
14
- Then the following text is provided:
15
- """
16
- | value |
17
- """
18
-
19
- Scenario: Output of a table row that has multiple cells
20
- Given a table row element based on the following gherkin:
21
- """
22
- |value|another_value|
23
- """
24
- When it is outputted
25
- Then the following text is provided:
26
- """
27
- | value | another_value |
28
- """
@@ -1,48 +0,0 @@
1
- @gherkin
2
- Feature: Tag elements can be modeled.
3
-
4
-
5
- Acceptance criteria
6
-
7
- 1. All conceptual pieces of a tag can be modeled:
8
- - the tag's name
9
- - the tags's source line
10
- - the tags's raw element
11
-
12
- 2. Features can be outputted in a convenient form
13
-
14
-
15
- Background: Test file setup.
16
- Given the following feature file:
17
- """
18
- @feature_tag
19
- Feature:
20
-
21
- @outline_tag
22
- Scenario Outline:
23
- * a step
24
-
25
- @example_tag
26
- Examples:
27
- | a param |
28
- """
29
- When the file is read
30
-
31
-
32
- Scenario: The raw tag element is modeled.
33
- Then the feature tag correctly stores its underlying implementation
34
- And the test tag correctly stores its underlying implementation
35
- And the example tag correctly stores its underlying implementation
36
-
37
- Scenario: The tag's source line is modeled.
38
- Then the feature tag source line "1"
39
- And the test tag source line "4"
40
- And the example tag source line "8"
41
-
42
- Scenario: The tag name is modeled.
43
- Then the feature tag name is "@feature_tag"
44
- And the test tag name is "@outline_tag"
45
- And the example tag name is "@example_tag"
46
-
47
- Scenario: Convenient output of a tag
48
- Then the tag has convenient output
@@ -1,17 +0,0 @@
1
- @gherkin
2
- Feature: Outputting tag 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 tag that has a name
9
- Given a tag element based on the following gherkin:
10
- """
11
- @some_tag
12
- """
13
- When it is outputted
14
- Then the following text is provided:
15
- """
16
- @some_tag
17
- """
@@ -1,64 +0,0 @@
1
- @gherkin3
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
- Some background description.
52
-
53
- Some more.
54
- Even more.
55
- """
56
-
57
- Scenario: The background steps are modeled.
58
- Then the background's steps are as follows:
59
- | a setup step |
60
- | another setup step |
61
- | an action step |
62
-
63
- Scenario: Convenient output of a background
64
- Then the background has convenient output
@@ -1,131 +0,0 @@
1
- @gherkin3
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
- @gherkin3
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