cql 1.4.2 → 1.5.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 (31) hide show
  1. checksums.yaml +4 -4
  2. data/lib/cql/dsl.rb +5 -0
  3. data/lib/cql/version.rb +1 -1
  4. data/testing/cucumber/features/clauses/from_clause.feature +0 -8
  5. data/testing/cucumber/features/clauses/predefined_with_filters.feature +392 -0
  6. data/testing/cucumber/features/clauses/select_clause.feature +1 -5
  7. data/testing/cucumber/features/clauses/with_clause.feature +2 -164
  8. data/testing/cucumber/features/dsl.feature +0 -22
  9. data/testing/cucumber/step_definitions/verification_steps.rb +5 -6
  10. data/testing/model_helper.rb +28 -0
  11. data/testing/rspec/spec/clauses/as_clause_spec.rb +1 -0
  12. data/testing/rspec/spec/clauses/from_clause_spec.rb +146 -0
  13. data/testing/rspec/spec/clauses/select_clause_spec.rb +184 -0
  14. data/testing/rspec/spec/clauses/transform_clause_spec.rb +35 -0
  15. data/testing/rspec/spec/clauses/with_clause_spec.rb +84 -0
  16. data/testing/rspec/spec/clauses/without_clause_spec.rb +171 -0
  17. data/testing/rspec/spec/dsl_spec.rb +3 -575
  18. data/testing/rspec/spec/filter_example_spec.rb +1 -1
  19. data/testing/rspec/spec/filter_feature_dsl_spec.rb +13 -13
  20. data/testing/rspec/spec/filter_sso_spec.rb +2 -2
  21. data/testing/rspec/spec/line_filterable_specs.rb +1 -1
  22. data/testing/rspec/spec/map_reduce_spec.rb +1 -1
  23. data/testing/rspec/spec/multiple_queries_spec.rb +1 -1
  24. data/testing/rspec/spec/name_filterable_specs.rb +1 -1
  25. data/testing/rspec/spec/predefined_filters_spec.rb +284 -0
  26. data/testing/rspec/spec/repository_spec.rb +3 -3
  27. data/testing/rspec/spec/select_feature_dsl_spec.rb +8 -8
  28. data/testing/rspec/spec/select_scen_outline_dsl_spec.rb +14 -14
  29. data/testing/rspec/spec/select_scenario_dsl_spec.rb +9 -9
  30. data/testing/rspec/spec/spec_helper.rb +3 -13
  31. metadata +21 -3
@@ -4,7 +4,7 @@ require "#{File.dirname(__FILE__)}/spec_helper"
4
4
  describe 'CQL::Repository' do
5
5
 
6
6
  let(:clazz) { CQL::Repository }
7
- let(:seed_arguments) { @feature_fixtures_directory }
7
+ let(:seed_arguments) { CQL_FEATURE_FIXTURES_DIRECTORY }
8
8
 
9
9
 
10
10
  describe 'common behavior' do
@@ -19,7 +19,7 @@ describe 'CQL::Repository' do
19
19
  end
20
20
 
21
21
  it 'can use a file path as a source' do
22
- expect { clazz.new(@feature_fixtures_directory) }.to_not raise_error
22
+ expect { clazz.new(CQL_FEATURE_FIXTURES_DIRECTORY) }.to_not raise_error
23
23
  end
24
24
 
25
25
  it 'can use a model as a source' do
@@ -33,7 +33,7 @@ describe 'CQL::Repository' do
33
33
  end
34
34
 
35
35
  it 'does not modify the repository during a query' do
36
- repo = CQL::Repository.new("#{@feature_fixtures_directory}/scenario/simple")
36
+ repo = CQL::Repository.new("#{CQL_FEATURE_FIXTURES_DIRECTORY}/scenario/simple")
37
37
 
38
38
  original_state = Marshal.dump(repo)
39
39
 
@@ -5,7 +5,7 @@ describe "select" do
5
5
  describe "from features" do
6
6
 
7
7
  it 'should return names from features' do
8
- gs = CQL::Repository.new("#{@feature_fixtures_directory}/scenario/simple")
8
+ gs = CQL::Repository.new("#{CQL_FEATURE_FIXTURES_DIRECTORY}/scenario/simple")
9
9
 
10
10
  result = gs.query do
11
11
  select name
@@ -17,7 +17,7 @@ describe "select" do
17
17
  end
18
18
 
19
19
  # it 'should return descriptions from features' do
20
- # gs = CQL::Repository.new("#{@feature_fixtures_directory}/scenario/simple2")
20
+ # gs = CQL::Repository.new("#{CQL_FEATURE_FIXTURES_DIRECTORY}/scenario/simple2")
21
21
  #
22
22
  # result = gs.query do
23
23
  # select description_text
@@ -28,7 +28,7 @@ describe "select" do
28
28
  # end
29
29
 
30
30
  it 'should return paths from from feature files' do
31
- repo_path = "#{@feature_fixtures_directory}/scenario/simple"
31
+ repo_path = "#{CQL_FEATURE_FIXTURES_DIRECTORY}/scenario/simple"
32
32
  gs = CQL::Repository.new(repo_path)
33
33
 
34
34
  result = gs.query do
@@ -43,7 +43,7 @@ describe "select" do
43
43
  end
44
44
 
45
45
  # it 'should return tags from features' do
46
- # gs = CQL::Repository.new("#{@feature_fixtures_directory}/scenario/tagged_features")
46
+ # gs = CQL::Repository.new("#{CQL_FEATURE_FIXTURES_DIRECTORY}/scenario/tagged_features")
47
47
  #
48
48
  # result = gs.query do
49
49
  # select tags
@@ -58,7 +58,7 @@ describe "select" do
58
58
  #
59
59
  #
60
60
  # it 'should return multiple things from features' do
61
- # gs = CQL::Repository.new("#{@feature_fixtures_directory}/scenario/tagged_features")
61
+ # gs = CQL::Repository.new("#{CQL_FEATURE_FIXTURES_DIRECTORY}/scenario/tagged_features")
62
62
  #
63
63
  # result = gs.query do
64
64
  # select name, tags
@@ -72,7 +72,7 @@ describe "select" do
72
72
  # end
73
73
 
74
74
  it 'should return things from multiple feature files' do
75
- gr = CQL::Repository.new("#{@feature_fixtures_directory}/combined/b")
75
+ gr = CQL::Repository.new("#{CQL_FEATURE_FIXTURES_DIRECTORY}/combined/b")
76
76
 
77
77
  result = gr.query do
78
78
  select name
@@ -85,7 +85,7 @@ describe "select" do
85
85
  end
86
86
 
87
87
  it 'should return multiple features as a list of maps' do
88
- gr = CQL::Repository.new("#{@feature_fixtures_directory}/combined/b")
88
+ gr = CQL::Repository.new("#{CQL_FEATURE_FIXTURES_DIRECTORY}/combined/b")
89
89
 
90
90
  result = gr.query do
91
91
  select name
@@ -98,7 +98,7 @@ describe "select" do
98
98
  end
99
99
 
100
100
  # it 'should return ids from features' do
101
- # gs = CQL::Repository.new("#{@feature_fixtures_directory}/scenario/simple2")
101
+ # gs = CQL::Repository.new("#{CQL_FEATURE_FIXTURES_DIRECTORY}/scenario/simple2")
102
102
  #
103
103
  # result = gs.query do
104
104
  # select raw_element
@@ -5,7 +5,7 @@ describe "select" do
5
5
  describe 'from scenario_outlines' do
6
6
 
7
7
  # it 'should return tags from scenario outlines' do
8
- # gs = CQL::Repository.new("#{@feature_fixtures_directory}/scen_outlines/filters/tags2")
8
+ # gs = CQL::Repository.new("#{CQL_FEATURE_FIXTURES_DIRECTORY}/scen_outlines/filters/tags2")
9
9
  #
10
10
  # result = gs.query do
11
11
  # select tags
@@ -25,7 +25,7 @@ describe "select" do
25
25
  # end
26
26
  #
27
27
  # it 'should return descriptions from scenario outlines' do
28
- # gs = CQL::Repository.new("#{@feature_fixtures_directory}/scen_outlines/multiple_examples")
28
+ # gs = CQL::Repository.new("#{CQL_FEATURE_FIXTURES_DIRECTORY}/scen_outlines/multiple_examples")
29
29
  #
30
30
  # result = gs.query do
31
31
  # select description_text
@@ -37,7 +37,7 @@ describe "select" do
37
37
  #
38
38
 
39
39
  it 'should return lines from scenario outlines' do
40
- gs = CQL::Repository.new("#{@feature_fixtures_directory}/scen_outlines/basic")
40
+ gs = CQL::Repository.new("#{CQL_FEATURE_FIXTURES_DIRECTORY}/scen_outlines/basic")
41
41
 
42
42
  result = gs.query do
43
43
  select source_line
@@ -48,7 +48,7 @@ describe "select" do
48
48
  end
49
49
 
50
50
  it 'should return names from scenario outlines' do
51
- gs = CQL::Repository.new("#{@feature_fixtures_directory}/scen_outlines/basic")
51
+ gs = CQL::Repository.new("#{CQL_FEATURE_FIXTURES_DIRECTORY}/scen_outlines/basic")
52
52
 
53
53
  result = gs.query do
54
54
  select name
@@ -59,7 +59,7 @@ describe "select" do
59
59
  end
60
60
 
61
61
  # it 'should return types from scenario outlines' do
62
- # gs = CQL::Repository.new("#{@feature_fixtures_directory}/scen_outlines/basic")
62
+ # gs = CQL::Repository.new("#{CQL_FEATURE_FIXTURES_DIRECTORY}/scen_outlines/basic")
63
63
  #
64
64
  # result = gs.query do
65
65
  # select raw_element
@@ -72,7 +72,7 @@ describe "select" do
72
72
  # end
73
73
  #
74
74
  # it 'should return step lines from scenario outlines' do
75
- # gs = CQL::Repository.new("#{@feature_fixtures_directory}/scen_outlines/basic")
75
+ # gs = CQL::Repository.new("#{CQL_FEATURE_FIXTURES_DIRECTORY}/scen_outlines/basic")
76
76
  #
77
77
  # result = gs.query do
78
78
  # select raw_element
@@ -85,7 +85,7 @@ describe "select" do
85
85
  # end
86
86
  #
87
87
  # it 'should return ids from scenario outlines' do
88
- # gs = CQL::Repository.new("#{@feature_fixtures_directory}/scen_outlines/basic")
88
+ # gs = CQL::Repository.new("#{CQL_FEATURE_FIXTURES_DIRECTORY}/scen_outlines/basic")
89
89
  #
90
90
  # result = gs.query do
91
91
  # select raw_element
@@ -98,7 +98,7 @@ describe "select" do
98
98
  # end
99
99
  #
100
100
  # it 'should return steps from scenario outlines' do
101
- # gs = CQL::Repository.new("#{@feature_fixtures_directory}/scen_outlines/basic")
101
+ # gs = CQL::Repository.new("#{CQL_FEATURE_FIXTURES_DIRECTORY}/scen_outlines/basic")
102
102
  #
103
103
  # result = gs.query do
104
104
  # select raw_element
@@ -112,7 +112,7 @@ describe "select" do
112
112
  #
113
113
  #
114
114
  # it 'should return multiple things from scenario outlines' do
115
- # gs = CQL::Repository.new("#{@feature_fixtures_directory}/scen_outlines/multiple_examples")
115
+ # gs = CQL::Repository.new("#{CQL_FEATURE_FIXTURES_DIRECTORY}/scen_outlines/multiple_examples")
116
116
  #
117
117
  # result = gs.query do
118
118
  # select name, tags
@@ -124,7 +124,7 @@ describe "select" do
124
124
  # end
125
125
 
126
126
  it 'should return things from multiple feature files' do
127
- gr = CQL::Repository.new("#{@feature_fixtures_directory}/scen_outlines/filters/tags2")
127
+ gr = CQL::Repository.new("#{CQL_FEATURE_FIXTURES_DIRECTORY}/scen_outlines/filters/tags2")
128
128
 
129
129
  result = gr.query do
130
130
  select name
@@ -144,7 +144,7 @@ describe "select" do
144
144
  end
145
145
 
146
146
  it 'should return multiple scenario outlines as a list of maps' do
147
- gr = CQL::Repository.new("#{@feature_fixtures_directory}/scen_outlines")
147
+ gr = CQL::Repository.new("#{CQL_FEATURE_FIXTURES_DIRECTORY}/scen_outlines")
148
148
 
149
149
  result = gr.query do
150
150
  select name
@@ -159,7 +159,7 @@ describe "select" do
159
159
  end
160
160
 
161
161
  # it "should return the examples from scenario outlines" do
162
- # gr = CQL::Repository.new("#{@feature_fixtures_directory}/scen_outlines/basic")
162
+ # gr = CQL::Repository.new("#{CQL_FEATURE_FIXTURES_DIRECTORY}/scen_outlines/basic")
163
163
  # result = gr.query do
164
164
  # select raw_element
165
165
  # as examples
@@ -177,7 +177,7 @@ describe "select" do
177
177
  # end
178
178
 
179
179
  # it "should return multiple examples used for a single scenario outline" do
180
- # gr = CQL::Repository.new("#{@feature_fixtures_directory}/scen_outlines/multiple_examples")
180
+ # gr = CQL::Repository.new("#{CQL_FEATURE_FIXTURES_DIRECTORY}/scen_outlines/multiple_examples")
181
181
  # result = gr.query do
182
182
  # select raw_element
183
183
  # as examples
@@ -204,7 +204,7 @@ describe "select" do
204
204
  # end
205
205
  #
206
206
  # it 'should return scenario outlines name and line numbers as a map' do
207
- # gs = CQL::Repository.new("#{@feature_fixtures_directory}/scen_outlines/basic")
207
+ # gs = CQL::Repository.new("#{CQL_FEATURE_FIXTURES_DIRECTORY}/scen_outlines/basic")
208
208
  # result = gs.query do
209
209
  # select name, source_line, raw_element, raw_element, raw_element, raw_element
210
210
  # as 'source_line' => 'line'
@@ -5,7 +5,7 @@ describe "select" do
5
5
  describe 'from scenarios' do
6
6
 
7
7
  it 'should return lines from scenarios' do
8
- gr = CQL::Repository.new("#{@feature_fixtures_directory}/scenario/simple2")
8
+ gr = CQL::Repository.new("#{CQL_FEATURE_FIXTURES_DIRECTORY}/scenario/simple2")
9
9
 
10
10
  result = gr.query do
11
11
  select source_line
@@ -16,7 +16,7 @@ describe "select" do
16
16
  end
17
17
 
18
18
  it 'should return names from scenarios' do
19
- gr = CQL::Repository.new("#{@feature_fixtures_directory}/scenario/simple2")
19
+ gr = CQL::Repository.new("#{CQL_FEATURE_FIXTURES_DIRECTORY}/scenario/simple2")
20
20
 
21
21
  result = gr.query do
22
22
  select name
@@ -28,7 +28,7 @@ describe "select" do
28
28
  end
29
29
 
30
30
  # it 'should return types from scenarios' do
31
- # gs = CQL::Repository.new("#{@feature_fixtures_directory}/scenario/simple2")
31
+ # gs = CQL::Repository.new("#{CQL_FEATURE_FIXTURES_DIRECTORY}/scenario/simple2")
32
32
  #
33
33
  # result = gs.query do
34
34
  # select raw_element
@@ -42,7 +42,7 @@ describe "select" do
42
42
  # end
43
43
  #
44
44
  # it 'should return step lines from scenarios' do
45
- # gs = CQL::Repository.new("#{@feature_fixtures_directory}/scenario/simple2")
45
+ # gs = CQL::Repository.new("#{CQL_FEATURE_FIXTURES_DIRECTORY}/scenario/simple2")
46
46
  #
47
47
  # result = gs.query do
48
48
  # select raw_element
@@ -58,7 +58,7 @@ describe "select" do
58
58
  # end
59
59
  #
60
60
  # it 'should return ids from scenarios' do
61
- # gs = CQL::Repository.new("#{@feature_fixtures_directory}/scenario/simple2")
61
+ # gs = CQL::Repository.new("#{CQL_FEATURE_FIXTURES_DIRECTORY}/scenario/simple2")
62
62
  #
63
63
  # result = gs.query do
64
64
  # select raw_element
@@ -74,7 +74,7 @@ describe "select" do
74
74
  # end
75
75
  #
76
76
  # it 'should return steps from scenarios' do
77
- # gs = CQL::Repository.new("#{@feature_fixtures_directory}/scenario/simple2")
77
+ # gs = CQL::Repository.new("#{CQL_FEATURE_FIXTURES_DIRECTORY}/scenario/simple2")
78
78
  #
79
79
  # result = gs.query do
80
80
  # select raw_element
@@ -90,7 +90,7 @@ describe "select" do
90
90
  # end
91
91
 
92
92
  it 'should return multiple things from scenarios' do
93
- gs = CQL::Repository.new("#{@feature_fixtures_directory}/scenario/simple2")
93
+ gs = CQL::Repository.new("#{CQL_FEATURE_FIXTURES_DIRECTORY}/scenario/simple2")
94
94
 
95
95
  result = gs.query do
96
96
  select name, source_line
@@ -104,7 +104,7 @@ describe "select" do
104
104
  end
105
105
 
106
106
  it 'should return things from multiple feature files' do
107
- gr = CQL::Repository.new("#{@feature_fixtures_directory}/scenario/simple")
107
+ gr = CQL::Repository.new("#{CQL_FEATURE_FIXTURES_DIRECTORY}/scenario/simple")
108
108
 
109
109
  result = gr.query do
110
110
  select name
@@ -118,7 +118,7 @@ describe "select" do
118
118
  end
119
119
 
120
120
  it 'should get multiple scenarios as a list of maps' do
121
- gr = CQL::Repository.new("#{@feature_fixtures_directory}/scenario/simple2")
121
+ gr = CQL::Repository.new("#{CQL_FEATURE_FIXTURES_DIRECTORY}/scenario/simple2")
122
122
  result = gr.query do
123
123
  select source_line, name
124
124
  from scenarios
@@ -11,6 +11,7 @@ require "#{this_dir}/../../../lib/cql/model_dsl"
11
11
 
12
12
 
13
13
  require "#{this_dir}/../../cql_test_model"
14
+ require "#{this_dir}/../../model_helper"
14
15
  require "#{this_dir}/tag_filterable_specs"
15
16
  require "#{this_dir}/name_filterable_specs"
16
17
  require "#{this_dir}/line_count_filterable_specs"
@@ -22,21 +23,10 @@ CQL_FEATURE_FIXTURES_DIRECTORY = "#{this_dir}/../../fixtures/features"
22
23
 
23
24
  RSpec.configure do |config|
24
25
 
26
+ include CQL::ModelHelper
27
+
25
28
  if Gem.loaded_specs['cuke_modeler'].version.version[/^0/]
26
29
  config.filter_run_excluding :cuke_modeler_1x => true
27
30
  end
28
31
 
29
- config.before(:all) do
30
- @feature_fixtures_directory = CQL_FEATURE_FIXTURES_DIRECTORY
31
- end
32
-
33
- config.before(:each) do
34
- # Nothing yet
35
- end
36
-
37
- config.after(:each) do
38
- # Nothing yet
39
- end
40
32
  end
41
-
42
-
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cql
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.2
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Kessler
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2018-01-02 00:00:00.000000000 Z
12
+ date: 2018-06-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: cuke_modeler
@@ -137,7 +137,7 @@ dependencies:
137
137
  - - "~>"
138
138
  - !ruby/object:Gem::Version
139
139
  version: '1.5'
140
- description: CQL is a domain specific language used for querying a Cucumber (other
140
+ description: CQL is a domain specific language used for querying a Cucumber (or other
141
141
  Gherkin based) test suite. The goal of CQL is to increase the ease with which useful
142
142
  information can be extracted from a modeled test suite and turned into summarized
143
143
  data or reports.
@@ -160,6 +160,7 @@ files:
160
160
  - testing/cql_test_model.rb
161
161
  - testing/cucumber/features/clauses/as_clause.feature
162
162
  - testing/cucumber/features/clauses/from_clause.feature
163
+ - testing/cucumber/features/clauses/predefined_with_filters.feature
163
164
  - testing/cucumber/features/clauses/select_clause.feature
164
165
  - testing/cucumber/features/clauses/transform_clause.feature
165
166
  - testing/cucumber/features/clauses/with_clause.feature
@@ -220,6 +221,13 @@ files:
220
221
  - testing/fixtures/features/scenario/tags3/simple.feature
221
222
  - testing/gemfiles/cuke_modeler0.gemfile
222
223
  - testing/gemfiles/cuke_modeler1.gemfile
224
+ - testing/model_helper.rb
225
+ - testing/rspec/spec/clauses/as_clause_spec.rb
226
+ - testing/rspec/spec/clauses/from_clause_spec.rb
227
+ - testing/rspec/spec/clauses/select_clause_spec.rb
228
+ - testing/rspec/spec/clauses/transform_clause_spec.rb
229
+ - testing/rspec/spec/clauses/with_clause_spec.rb
230
+ - testing/rspec/spec/clauses/without_clause_spec.rb
223
231
  - testing/rspec/spec/dsl_spec.rb
224
232
  - testing/rspec/spec/filter_example_spec.rb
225
233
  - testing/rspec/spec/filter_feature_dsl_spec.rb
@@ -230,6 +238,7 @@ files:
230
238
  - testing/rspec/spec/model_query_spec.rb
231
239
  - testing/rspec/spec/multiple_queries_spec.rb
232
240
  - testing/rspec/spec/name_filterable_specs.rb
241
+ - testing/rspec/spec/predefined_filters_spec.rb
233
242
  - testing/rspec/spec/queriable_specs.rb
234
243
  - testing/rspec/spec/repository_spec.rb
235
244
  - testing/rspec/spec/select_feature_dsl_spec.rb
@@ -273,6 +282,7 @@ test_files:
273
282
  - testing/cql_test_model.rb
274
283
  - testing/cucumber/features/clauses/as_clause.feature
275
284
  - testing/cucumber/features/clauses/from_clause.feature
285
+ - testing/cucumber/features/clauses/predefined_with_filters.feature
276
286
  - testing/cucumber/features/clauses/select_clause.feature
277
287
  - testing/cucumber/features/clauses/transform_clause.feature
278
288
  - testing/cucumber/features/clauses/with_clause.feature
@@ -333,6 +343,13 @@ test_files:
333
343
  - testing/fixtures/features/scen_outlines/name_filter/name.feature
334
344
  - testing/gemfiles/cuke_modeler0.gemfile
335
345
  - testing/gemfiles/cuke_modeler1.gemfile
346
+ - testing/model_helper.rb
347
+ - testing/rspec/spec/clauses/as_clause_spec.rb
348
+ - testing/rspec/spec/clauses/from_clause_spec.rb
349
+ - testing/rspec/spec/clauses/select_clause_spec.rb
350
+ - testing/rspec/spec/clauses/transform_clause_spec.rb
351
+ - testing/rspec/spec/clauses/without_clause_spec.rb
352
+ - testing/rspec/spec/clauses/with_clause_spec.rb
336
353
  - testing/rspec/spec/dsl_spec.rb
337
354
  - testing/rspec/spec/filter_example_spec.rb
338
355
  - testing/rspec/spec/filter_feature_dsl_spec.rb
@@ -343,6 +360,7 @@ test_files:
343
360
  - testing/rspec/spec/model_query_spec.rb
344
361
  - testing/rspec/spec/multiple_queries_spec.rb
345
362
  - testing/rspec/spec/name_filterable_specs.rb
363
+ - testing/rspec/spec/predefined_filters_spec.rb
346
364
  - testing/rspec/spec/queriable_specs.rb
347
365
  - testing/rspec/spec/repository_spec.rb
348
366
  - testing/rspec/spec/select_feature_dsl_spec.rb