cuke_modeler 2.1.0 → 3.4.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +53 -1
- data/README.md +14 -16
- data/cuke_modeler.gemspec +33 -21
- data/lib/cuke_modeler.rb +2 -1
- data/lib/cuke_modeler/adapters/gherkin_10_adapter.rb +13 -0
- data/lib/cuke_modeler/adapters/gherkin_11_adapter.rb +13 -0
- data/lib/cuke_modeler/adapters/gherkin_12_adapter.rb +13 -0
- data/lib/cuke_modeler/adapters/gherkin_13_adapter.rb +13 -0
- data/lib/cuke_modeler/adapters/gherkin_14_adapter.rb +13 -0
- data/lib/cuke_modeler/adapters/gherkin_15_adapter.rb +13 -0
- data/lib/cuke_modeler/adapters/gherkin_9_adapter.rb +356 -4
- data/lib/cuke_modeler/containing.rb +41 -89
- data/lib/cuke_modeler/described.rb +40 -1
- data/lib/cuke_modeler/models/background.rb +12 -12
- data/lib/cuke_modeler/models/cell.rb +14 -8
- data/lib/cuke_modeler/models/comment.rb +6 -6
- data/lib/cuke_modeler/models/directory.rb +14 -18
- data/lib/cuke_modeler/models/doc_string.rb +11 -8
- data/lib/cuke_modeler/models/example.rb +64 -46
- data/lib/cuke_modeler/models/feature.rb +38 -20
- data/lib/cuke_modeler/models/feature_file.rb +6 -8
- data/lib/cuke_modeler/models/model.rb +2 -1
- data/lib/cuke_modeler/models/outline.rb +20 -15
- data/lib/cuke_modeler/models/row.rb +11 -8
- data/lib/cuke_modeler/models/rule.rb +101 -0
- data/lib/cuke_modeler/models/scenario.rb +18 -13
- data/lib/cuke_modeler/models/step.rb +41 -19
- data/lib/cuke_modeler/models/table.rb +10 -7
- data/lib/cuke_modeler/models/tag.rb +10 -6
- data/lib/cuke_modeler/named.rb +5 -1
- data/lib/cuke_modeler/nested.rb +22 -18
- data/lib/cuke_modeler/parsed.rb +8 -0
- data/lib/cuke_modeler/parsing.rb +55 -74
- data/lib/cuke_modeler/sourceable.rb +8 -0
- data/lib/cuke_modeler/stepped.rb +8 -0
- data/lib/cuke_modeler/taggable.rb +9 -1
- data/lib/cuke_modeler/version.rb +1 -1
- data/testing/cucumber/features/modeling/feature_modeling.feature +28 -7
- data/testing/cucumber/features/modeling/feature_output.feature +45 -23
- data/testing/cucumber/features/modeling/rule_modeling.feature +108 -0
- data/testing/cucumber/features/modeling/rule_output.feature +111 -0
- metadata +68 -161
- data/.gitignore +0 -18
- data/.simplecov +0 -7
- data/.travis.yml +0 -81
- data/Gemfile +0 -44
- data/Rakefile +0 -73
- data/appveyor.yml +0 -88
- data/lib/cuke_modeler/adapters/gherkin_2_adapter.rb +0 -274
- data/lib/cuke_modeler/adapters/gherkin_3_adapter.rb +0 -297
- data/lib/cuke_modeler/adapters/gherkin_4_adapter.rb +0 -309
- data/lib/cuke_modeler/adapters/gherkin_5_adapter.rb +0 -12
- data/lib/cuke_modeler/adapters/gherkin_6_adapter.rb +0 -310
- data/lib/cuke_modeler/adapters/gherkin_7_adapter.rb +0 -307
- data/lib/cuke_modeler/adapters/gherkin_8_adapter.rb +0 -12
- data/testing/cucumber/step_definitions/action_steps.rb +0 -13
- data/testing/cucumber/step_definitions/background_steps.rb +0 -1
- data/testing/cucumber/step_definitions/directory_steps.rb +0 -6
- data/testing/cucumber/step_definitions/doc_string_steps.rb +0 -1
- data/testing/cucumber/step_definitions/feature_file_steps.rb +0 -16
- data/testing/cucumber/step_definitions/feature_steps.rb +0 -7
- data/testing/cucumber/step_definitions/modeling_steps.rb +0 -49
- data/testing/cucumber/step_definitions/setup_steps.rb +0 -32
- data/testing/cucumber/step_definitions/step_steps.rb +0 -3
- data/testing/cucumber/step_definitions/table_steps.rb +0 -1
- data/testing/cucumber/step_definitions/tag_steps.rb +0 -3
- data/testing/cucumber/step_definitions/verification_steps.rb +0 -181
- data/testing/cucumber/support/env.rb +0 -30
- data/testing/dialect_helper.rb +0 -48
- data/testing/file_helper.rb +0 -47
- data/testing/gemfiles/gherkin2.gemfile +0 -33
- data/testing/gemfiles/gherkin3.gemfile +0 -26
- data/testing/gemfiles/gherkin4.gemfile +0 -27
- data/testing/gemfiles/gherkin5.gemfile +0 -27
- data/testing/gemfiles/gherkin6.gemfile +0 -10
- data/testing/gemfiles/gherkin7.gemfile +0 -9
- data/testing/gemfiles/gherkin8.gemfile +0 -9
- data/testing/gemfiles/gherkin9.gemfile +0 -9
- data/testing/helper_methods.rb +0 -23
- data/testing/rspec/spec/integration/adapters/gherkin_2_adapter_spec.rb +0 -166
- data/testing/rspec/spec/integration/adapters/gherkin_3_adapter_spec.rb +0 -166
- data/testing/rspec/spec/integration/adapters/gherkin_4_adapter_spec.rb +0 -165
- data/testing/rspec/spec/integration/adapters/gherkin_5_adapter_spec.rb +0 -165
- data/testing/rspec/spec/integration/adapters/gherkin_6_adapter_spec.rb +0 -159
- data/testing/rspec/spec/integration/adapters/gherkin_7_adapter_spec.rb +0 -162
- data/testing/rspec/spec/integration/adapters/gherkin_8_adapter_spec.rb +0 -162
- data/testing/rspec/spec/integration/adapters/gherkin_9_adapter_spec.rb +0 -162
- data/testing/rspec/spec/integration/models/background_integration_spec.rb +0 -438
- data/testing/rspec/spec/integration/models/cell_integration_spec.rb +0 -338
- data/testing/rspec/spec/integration/models/comment_integration_spec.rb +0 -180
- data/testing/rspec/spec/integration/models/directory_integration_spec.rb +0 -218
- data/testing/rspec/spec/integration/models/doc_string_integration_spec.rb +0 -398
- data/testing/rspec/spec/integration/models/example_integration_spec.rb +0 -753
- data/testing/rspec/spec/integration/models/feature_file_integration_spec.rb +0 -276
- data/testing/rspec/spec/integration/models/feature_integration_spec.rb +0 -655
- data/testing/rspec/spec/integration/models/model_integration_spec.rb +0 -15
- data/testing/rspec/spec/integration/models/outline_integration_spec.rb +0 -619
- data/testing/rspec/spec/integration/models/row_integration_spec.rb +0 -303
- data/testing/rspec/spec/integration/models/scenario_integration_spec.rb +0 -475
- data/testing/rspec/spec/integration/models/step_integration_spec.rb +0 -573
- data/testing/rspec/spec/integration/models/table_integration_spec.rb +0 -333
- data/testing/rspec/spec/integration/models/tag_integration_spec.rb +0 -271
- data/testing/rspec/spec/integration/nested_integration_spec.rb +0 -91
- data/testing/rspec/spec/integration/parsing_integration_spec.rb +0 -143
- data/testing/rspec/spec/integration/shared/models_integration_specs.rb +0 -18
- data/testing/rspec/spec/spec_helper.rb +0 -129
- data/testing/rspec/spec/unit/cuke_modeler_unit_spec.rb +0 -25
- data/testing/rspec/spec/unit/described_unit_spec.rb +0 -23
- data/testing/rspec/spec/unit/models/background_unit_spec.rb +0 -83
- data/testing/rspec/spec/unit/models/cell_unit_spec.rb +0 -68
- data/testing/rspec/spec/unit/models/comment_unit_spec.rb +0 -68
- data/testing/rspec/spec/unit/models/directory_unit_spec.rb +0 -127
- data/testing/rspec/spec/unit/models/doc_string_unit_spec.rb +0 -100
- data/testing/rspec/spec/unit/models/example_unit_spec.rb +0 -133
- data/testing/rspec/spec/unit/models/feature_file_unit_spec.rb +0 -125
- data/testing/rspec/spec/unit/models/feature_unit_spec.rb +0 -157
- data/testing/rspec/spec/unit/models/model_unit_spec.rb +0 -15
- data/testing/rspec/spec/unit/models/outline_unit_spec.rb +0 -117
- data/testing/rspec/spec/unit/models/row_unit_spec.rb +0 -68
- data/testing/rspec/spec/unit/models/scenario_unit_spec.rb +0 -86
- data/testing/rspec/spec/unit/models/step_unit_spec.rb +0 -109
- data/testing/rspec/spec/unit/models/table_unit_spec.rb +0 -77
- data/testing/rspec/spec/unit/models/tag_unit_spec.rb +0 -68
- data/testing/rspec/spec/unit/named_unit_spec.rb +0 -23
- data/testing/rspec/spec/unit/nested_unit_spec.rb +0 -43
- data/testing/rspec/spec/unit/parsed_unit_spec.rb +0 -27
- data/testing/rspec/spec/unit/parsing_unit_spec.rb +0 -54
- data/testing/rspec/spec/unit/shared/bare_bones_models_unit_specs.rb +0 -14
- data/testing/rspec/spec/unit/shared/containing_models_unit_specs.rb +0 -127
- data/testing/rspec/spec/unit/shared/described_models_unit_specs.rb +0 -38
- data/testing/rspec/spec/unit/shared/keyworded_models_unit_specs.rb +0 -58
- data/testing/rspec/spec/unit/shared/models_unit_specs.rb +0 -15
- data/testing/rspec/spec/unit/shared/named_models_unit_specs.rb +0 -39
- data/testing/rspec/spec/unit/shared/nested_models_unit_specs.rb +0 -51
- data/testing/rspec/spec/unit/shared/parsed_models_unit_specs.rb +0 -39
- data/testing/rspec/spec/unit/shared/prepopulated_models_unit_specs.rb +0 -18
- data/testing/rspec/spec/unit/shared/sourced_models_unit_specs.rb +0 -39
- data/testing/rspec/spec/unit/shared/stepped_models_unit_specs.rb +0 -46
- data/testing/rspec/spec/unit/shared/stringifiable_models_unit_specs.rb +0 -18
- data/testing/rspec/spec/unit/shared/tagged_models_unit_specs.rb +0 -72
- data/testing/rspec/spec/unit/sourceable_unit_spec.rb +0 -27
- data/testing/rspec/spec/unit/stepped_unit_spec.rb +0 -23
- data/testing/rspec/spec/unit/taggable_unit_spec.rb +0 -69
- data/testing/test_languages.json +0 -45
- data/todo.txt +0 -25
@@ -1,86 +0,0 @@
|
|
1
|
-
require "#{File.dirname(__FILE__)}/../../spec_helper"
|
2
|
-
|
3
|
-
|
4
|
-
describe 'Scenario, Unit', :unit_test => true do
|
5
|
-
|
6
|
-
let(:clazz) { CukeModeler::Scenario }
|
7
|
-
let(:scenario) { clazz.new }
|
8
|
-
|
9
|
-
|
10
|
-
describe 'common behavior' do
|
11
|
-
|
12
|
-
it_should_behave_like 'a model'
|
13
|
-
it_should_behave_like 'a keyworded model'
|
14
|
-
it_should_behave_like 'a named model'
|
15
|
-
it_should_behave_like 'a described model'
|
16
|
-
it_should_behave_like 'a stepped model'
|
17
|
-
it_should_behave_like 'a tagged model'
|
18
|
-
it_should_behave_like 'a sourced model'
|
19
|
-
it_should_behave_like 'a parsed model'
|
20
|
-
|
21
|
-
end
|
22
|
-
|
23
|
-
|
24
|
-
describe 'unique behavior' do
|
25
|
-
|
26
|
-
it 'contains steps and tags' do
|
27
|
-
tags = [:tag_1, :tag_2]
|
28
|
-
steps = [:step_1, :step_2]
|
29
|
-
everything = steps + tags
|
30
|
-
|
31
|
-
scenario.steps = steps
|
32
|
-
scenario.tags = tags
|
33
|
-
|
34
|
-
expect(scenario.children).to match_array(everything)
|
35
|
-
end
|
36
|
-
|
37
|
-
|
38
|
-
describe 'comparison' do
|
39
|
-
|
40
|
-
it 'can gracefully be compared to other types of objects' do
|
41
|
-
# Some common types of object
|
42
|
-
[1, 'foo', :bar, [], {}].each do |thing|
|
43
|
-
expect { scenario == thing }.to_not raise_error
|
44
|
-
expect(scenario == thing).to be false
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
end
|
49
|
-
|
50
|
-
|
51
|
-
describe 'scenario output' do
|
52
|
-
|
53
|
-
context 'from abstract instantiation' do
|
54
|
-
|
55
|
-
let(:scenario) { clazz.new }
|
56
|
-
|
57
|
-
|
58
|
-
it 'can output an empty scenario' do
|
59
|
-
expect { scenario.to_s }.to_not raise_error
|
60
|
-
end
|
61
|
-
|
62
|
-
it 'can output a scenario that has only a keyword' do
|
63
|
-
scenario.keyword = 'foo'
|
64
|
-
|
65
|
-
expect(scenario.to_s).to eq('foo:')
|
66
|
-
end
|
67
|
-
|
68
|
-
it 'can output a scenario that has only a name' do
|
69
|
-
scenario.name = 'a name'
|
70
|
-
|
71
|
-
expect { scenario.to_s }.to_not raise_error
|
72
|
-
end
|
73
|
-
|
74
|
-
it 'can output a scenario that has only a description' do
|
75
|
-
scenario.description = 'a description'
|
76
|
-
|
77
|
-
expect { scenario.to_s }.to_not raise_error
|
78
|
-
end
|
79
|
-
|
80
|
-
end
|
81
|
-
|
82
|
-
end
|
83
|
-
|
84
|
-
end
|
85
|
-
|
86
|
-
end
|
@@ -1,109 +0,0 @@
|
|
1
|
-
require "#{File.dirname(__FILE__)}/../../spec_helper"
|
2
|
-
|
3
|
-
|
4
|
-
describe 'Step, Unit', :unit_test => true do
|
5
|
-
|
6
|
-
let(:clazz) { CukeModeler::Step }
|
7
|
-
let(:step) { clazz.new }
|
8
|
-
|
9
|
-
|
10
|
-
describe 'common behavior' do
|
11
|
-
|
12
|
-
it_should_behave_like 'a model'
|
13
|
-
it_should_behave_like 'a keyworded model'
|
14
|
-
it_should_behave_like 'a sourced model'
|
15
|
-
it_should_behave_like 'a parsed model'
|
16
|
-
|
17
|
-
end
|
18
|
-
|
19
|
-
|
20
|
-
describe 'unique behavior' do
|
21
|
-
|
22
|
-
it 'has text' do
|
23
|
-
expect(step).to respond_to(:text)
|
24
|
-
end
|
25
|
-
|
26
|
-
it 'can change its text' do
|
27
|
-
expect(step).to respond_to(:text=)
|
28
|
-
|
29
|
-
step.text = :some_text
|
30
|
-
expect(step.text).to eq(:some_text)
|
31
|
-
step.text = :some_other_text
|
32
|
-
expect(step.text).to eq(:some_other_text)
|
33
|
-
end
|
34
|
-
|
35
|
-
it 'has a block' do
|
36
|
-
expect(step).to respond_to(:block)
|
37
|
-
end
|
38
|
-
|
39
|
-
it 'can change its block' do
|
40
|
-
expect(step).to respond_to(:block=)
|
41
|
-
|
42
|
-
step.block = :some_block
|
43
|
-
expect(step.block).to eq(:some_block)
|
44
|
-
step.block = :some_other_block
|
45
|
-
expect(step.block).to eq(:some_other_block)
|
46
|
-
end
|
47
|
-
|
48
|
-
|
49
|
-
describe 'abstract instantiation' do
|
50
|
-
|
51
|
-
context 'a new step object' do
|
52
|
-
|
53
|
-
let(:step) { clazz.new }
|
54
|
-
|
55
|
-
|
56
|
-
it 'starts with no text' do
|
57
|
-
expect(step.text).to be_nil
|
58
|
-
end
|
59
|
-
|
60
|
-
it 'starts with no block' do
|
61
|
-
expect(step.block).to be_nil
|
62
|
-
end
|
63
|
-
|
64
|
-
end
|
65
|
-
|
66
|
-
end
|
67
|
-
|
68
|
-
it 'contains some kind of block' do
|
69
|
-
block = :block
|
70
|
-
everything = [block]
|
71
|
-
|
72
|
-
step.block = block
|
73
|
-
|
74
|
-
expect(step.children).to match_array(everything)
|
75
|
-
end
|
76
|
-
|
77
|
-
|
78
|
-
describe 'step output' do
|
79
|
-
|
80
|
-
context 'from abstract instantiation' do
|
81
|
-
|
82
|
-
let(:step) { clazz.new }
|
83
|
-
|
84
|
-
|
85
|
-
it 'can output an empty step' do
|
86
|
-
expect { step.to_s }.to_not raise_error
|
87
|
-
end
|
88
|
-
|
89
|
-
it 'can output a step that has only a text' do
|
90
|
-
step.text = 'step text'
|
91
|
-
|
92
|
-
expect { step.to_s }.to_not raise_error
|
93
|
-
end
|
94
|
-
|
95
|
-
end
|
96
|
-
|
97
|
-
end
|
98
|
-
|
99
|
-
it 'can gracefully be compared to other types of objects' do
|
100
|
-
# Some common types of object
|
101
|
-
[1, 'foo', :bar, [], {}, nil].each do |thing|
|
102
|
-
expect { step == thing }.to_not raise_error
|
103
|
-
expect(step == thing).to be false
|
104
|
-
end
|
105
|
-
end
|
106
|
-
|
107
|
-
end
|
108
|
-
|
109
|
-
end
|
@@ -1,77 +0,0 @@
|
|
1
|
-
require "#{File.dirname(__FILE__)}/../../spec_helper"
|
2
|
-
|
3
|
-
|
4
|
-
describe 'Table, Unit', :unit_test => true do
|
5
|
-
|
6
|
-
let(:clazz) { CukeModeler::Table }
|
7
|
-
let(:table) { clazz.new }
|
8
|
-
|
9
|
-
|
10
|
-
describe 'common behavior' do
|
11
|
-
|
12
|
-
it_should_behave_like 'a model'
|
13
|
-
it_should_behave_like 'a parsed model'
|
14
|
-
it_should_behave_like 'a sourced model'
|
15
|
-
|
16
|
-
end
|
17
|
-
|
18
|
-
|
19
|
-
describe 'unique behavior' do
|
20
|
-
|
21
|
-
it 'has rows' do
|
22
|
-
expect(table).to respond_to(:rows)
|
23
|
-
end
|
24
|
-
|
25
|
-
it 'can change its rows' do
|
26
|
-
expect(table).to respond_to(:rows=)
|
27
|
-
|
28
|
-
table.rows = :some_rows
|
29
|
-
expect(table.rows).to eq(:some_rows)
|
30
|
-
table.rows = :some_other_rows
|
31
|
-
expect(table.rows).to eq(:some_other_rows)
|
32
|
-
end
|
33
|
-
|
34
|
-
|
35
|
-
describe 'abstract instantiation' do
|
36
|
-
|
37
|
-
context 'a new table object' do
|
38
|
-
|
39
|
-
let(:table) { clazz.new }
|
40
|
-
|
41
|
-
|
42
|
-
it 'starts with no rows' do
|
43
|
-
expect(table.rows).to eq([])
|
44
|
-
end
|
45
|
-
|
46
|
-
end
|
47
|
-
|
48
|
-
end
|
49
|
-
|
50
|
-
it 'contains rows' do
|
51
|
-
rows = [:row_1, :row_2]
|
52
|
-
everything = rows
|
53
|
-
|
54
|
-
table.rows = rows
|
55
|
-
|
56
|
-
expect(table.children).to match_array(everything)
|
57
|
-
end
|
58
|
-
|
59
|
-
|
60
|
-
describe 'table output' do
|
61
|
-
|
62
|
-
context 'from abstract instantiation' do
|
63
|
-
|
64
|
-
let(:table) { clazz.new }
|
65
|
-
|
66
|
-
|
67
|
-
it 'can output an empty table' do
|
68
|
-
expect { table.to_s }.to_not raise_error
|
69
|
-
end
|
70
|
-
|
71
|
-
end
|
72
|
-
|
73
|
-
end
|
74
|
-
|
75
|
-
end
|
76
|
-
|
77
|
-
end
|
@@ -1,68 +0,0 @@
|
|
1
|
-
require "#{File.dirname(__FILE__)}/../../spec_helper"
|
2
|
-
|
3
|
-
|
4
|
-
describe 'Tag, Unit', :unit_test => true do
|
5
|
-
|
6
|
-
let(:clazz) { CukeModeler::Tag }
|
7
|
-
let(:model) { clazz.new }
|
8
|
-
|
9
|
-
|
10
|
-
describe 'common behavior' do
|
11
|
-
|
12
|
-
it_should_behave_like 'a model'
|
13
|
-
it_should_behave_like 'a sourced model'
|
14
|
-
it_should_behave_like 'a parsed model'
|
15
|
-
|
16
|
-
end
|
17
|
-
|
18
|
-
|
19
|
-
describe 'unique behavior' do
|
20
|
-
|
21
|
-
it 'has a name' do
|
22
|
-
expect(model).to respond_to(:name)
|
23
|
-
end
|
24
|
-
|
25
|
-
it 'can change its name' do
|
26
|
-
expect(model).to respond_to(:name=)
|
27
|
-
|
28
|
-
model.name = :some_name
|
29
|
-
expect(model.name).to eq(:some_name)
|
30
|
-
model.name = :some_other_name
|
31
|
-
expect(model.name).to eq(:some_other_name)
|
32
|
-
end
|
33
|
-
|
34
|
-
|
35
|
-
describe 'abstract instantiation' do
|
36
|
-
|
37
|
-
context 'a new tag object' do
|
38
|
-
|
39
|
-
let(:tag) { clazz.new }
|
40
|
-
|
41
|
-
|
42
|
-
it 'starts with no name' do
|
43
|
-
expect(tag.name).to be_nil
|
44
|
-
end
|
45
|
-
|
46
|
-
end
|
47
|
-
|
48
|
-
end
|
49
|
-
|
50
|
-
end
|
51
|
-
|
52
|
-
|
53
|
-
describe 'tag output' do
|
54
|
-
|
55
|
-
context 'from abstract instantiation' do
|
56
|
-
|
57
|
-
let(:tag) { clazz.new }
|
58
|
-
|
59
|
-
|
60
|
-
it 'can output an empty tag' do
|
61
|
-
expect { tag.to_s }.to_not raise_error
|
62
|
-
end
|
63
|
-
|
64
|
-
end
|
65
|
-
|
66
|
-
end
|
67
|
-
|
68
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
require "#{File.dirname(__FILE__)}/../spec_helper"
|
2
|
-
|
3
|
-
|
4
|
-
describe 'Named, Unit', :unit_test => true do
|
5
|
-
|
6
|
-
let(:nodule) { CukeModeler::Named }
|
7
|
-
let(:named_model) { Object.new.extend(nodule) }
|
8
|
-
|
9
|
-
|
10
|
-
it 'has a name' do
|
11
|
-
expect(named_model).to respond_to(:name)
|
12
|
-
end
|
13
|
-
|
14
|
-
it 'can change its name' do
|
15
|
-
expect(named_model).to respond_to(:name=)
|
16
|
-
|
17
|
-
named_model.name = :some_name
|
18
|
-
expect(named_model.name).to eq(:some_name)
|
19
|
-
named_model.name = :some_other_name
|
20
|
-
expect(named_model.name).to eq(:some_other_name)
|
21
|
-
end
|
22
|
-
|
23
|
-
end
|
@@ -1,43 +0,0 @@
|
|
1
|
-
require "#{File.dirname(__FILE__)}/../spec_helper"
|
2
|
-
|
3
|
-
|
4
|
-
describe 'Nested, Unit', :unit_test => true do
|
5
|
-
|
6
|
-
let(:nodule) { CukeModeler::Nested }
|
7
|
-
let(:nested_model) { Object.new.extend(nodule) }
|
8
|
-
|
9
|
-
|
10
|
-
describe 'unique behavior' do
|
11
|
-
|
12
|
-
describe 'an object including the module' do
|
13
|
-
|
14
|
-
it 'has a parent model' do
|
15
|
-
expect(nested_model).to respond_to(:parent_model)
|
16
|
-
end
|
17
|
-
|
18
|
-
it 'can change its parent model' do
|
19
|
-
expect(nested_model).to respond_to(:parent_model=)
|
20
|
-
|
21
|
-
nested_model.parent_model = :some_parent_model
|
22
|
-
expect(nested_model.parent_model).to eq(:some_parent_model)
|
23
|
-
nested_model.parent_model = :some_other_parent_model
|
24
|
-
expect(nested_model.parent_model).to eq(:some_other_parent_model)
|
25
|
-
end
|
26
|
-
|
27
|
-
it 'has access to its ancestors' do
|
28
|
-
expect(nested_model).to respond_to(:get_ancestor)
|
29
|
-
end
|
30
|
-
|
31
|
-
it 'gets an ancestor based on type' do
|
32
|
-
expect(nodule.instance_method(:get_ancestor).arity).to eq(1)
|
33
|
-
end
|
34
|
-
|
35
|
-
it 'raises and exception if an unknown ancestor type is requested' do
|
36
|
-
expect { nested_model.get_ancestor(:bad_ancestor_type) }.to raise_exception(ArgumentError)
|
37
|
-
end
|
38
|
-
|
39
|
-
end
|
40
|
-
|
41
|
-
end
|
42
|
-
|
43
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
require "#{File.dirname(__FILE__)}/../spec_helper"
|
2
|
-
|
3
|
-
|
4
|
-
describe 'Parsed, Unit' do
|
5
|
-
|
6
|
-
let(:nodule) { CukeModeler::Parsed }
|
7
|
-
let(:model) { Object.new.extend(nodule) }
|
8
|
-
|
9
|
-
|
10
|
-
describe 'unique behavior' do
|
11
|
-
|
12
|
-
it 'can access its original parsing data' do
|
13
|
-
expect(model).to respond_to(:parsing_data)
|
14
|
-
end
|
15
|
-
|
16
|
-
it 'can change its parsing data' do
|
17
|
-
expect(model).to respond_to(:parsing_data=)
|
18
|
-
|
19
|
-
model.parsing_data = :some_parsing_data
|
20
|
-
expect(model.parsing_data).to eq(:some_parsing_data)
|
21
|
-
model.parsing_data = :some_other_parsing_data
|
22
|
-
expect(model.parsing_data).to eq(:some_other_parsing_data)
|
23
|
-
end
|
24
|
-
|
25
|
-
end
|
26
|
-
|
27
|
-
end
|
@@ -1,54 +0,0 @@
|
|
1
|
-
require "#{File.dirname(__FILE__)}/../spec_helper"
|
2
|
-
|
3
|
-
|
4
|
-
describe 'Parsing, Unit', :unit_test => true do
|
5
|
-
|
6
|
-
let(:nodule) { CukeModeler::Parsing }
|
7
|
-
|
8
|
-
|
9
|
-
before(:all) do
|
10
|
-
@original_dialect = CukeModeler::Parsing.dialect
|
11
|
-
end
|
12
|
-
|
13
|
-
# Making sure that our changes don't escape a test and ruin the rest of the suite
|
14
|
-
after(:all) do
|
15
|
-
CukeModeler::Parsing.dialect = @original_dialect
|
16
|
-
end
|
17
|
-
|
18
|
-
|
19
|
-
describe 'unique behavior' do
|
20
|
-
|
21
|
-
it 'can parse text' do
|
22
|
-
expect(nodule).to respond_to(:parse_text)
|
23
|
-
end
|
24
|
-
|
25
|
-
it 'takes the text that is to be parsed and an optional file name' do
|
26
|
-
expect(nodule.method(:parse_text).arity).to eq(-2)
|
27
|
-
end
|
28
|
-
|
29
|
-
it 'knows all of the available Gherkin dialects' do
|
30
|
-
expect(nodule).to respond_to(:dialects)
|
31
|
-
end
|
32
|
-
|
33
|
-
it 'has an expected dialect to use for parsing' do
|
34
|
-
expect(nodule).to respond_to(:dialect)
|
35
|
-
end
|
36
|
-
|
37
|
-
it 'can change its expected dialect' do
|
38
|
-
expect(nodule).to respond_to(:dialect=)
|
39
|
-
|
40
|
-
nodule.dialect = :some_dialect
|
41
|
-
expect(nodule.dialect).to eq(:some_dialect)
|
42
|
-
nodule.dialect = :some_other_dialect
|
43
|
-
expect(nodule.dialect).to eq(:some_other_dialect)
|
44
|
-
end
|
45
|
-
|
46
|
-
it 'defaults to English if no dialect is set' do
|
47
|
-
nodule.dialect = nil
|
48
|
-
|
49
|
-
expect(nodule.dialect).to eq('en')
|
50
|
-
end
|
51
|
-
|
52
|
-
end
|
53
|
-
|
54
|
-
end
|