cql 0.1.0 → 0.1.0.1

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.
@@ -0,0 +1,126 @@
1
+ require 'rspec'
2
+ require File.dirname(__FILE__) + "/../lib/repo"
3
+
4
+ describe "select" do
5
+ describe "single value, single results" do
6
+ it 'should get scenario outlines line number' do
7
+ gs = CQL::Repository.new File.expand_path(File.dirname(__FILE__)) + "/../fixtures/features/scen_outlines/basic"
8
+ result = gs.query do
9
+ select line
10
+ from scenario_outlines
11
+ end
12
+ result.should == {"line"=>3}
13
+ end
14
+
15
+ it 'should get scenario outlines name' do
16
+ gs = CQL::Repository.new File.expand_path(File.dirname(__FILE__)) + "/../fixtures/features/scen_outlines/basic"
17
+ result = gs.query do
18
+ select name
19
+ from scenario_outlines
20
+ end
21
+ result.should == {"name"=> "An Outline"}
22
+ end
23
+
24
+ it "should return the examples used" do
25
+ gr = CQL::Repository.new File.expand_path(File.dirname(__FILE__)) + "/../fixtures/features/scen_outlines/basic"
26
+ result = gr.query do
27
+ select examples
28
+ from scenario_outlines
29
+ end
30
+ result.should == {"examples"=>[{"keyword"=>"Examples", "name"=>"", "line"=>6,
31
+ "description"=>"", "id"=>"test-feature;an-outline;",
32
+ "rows"=>[{"cells"=>["var_a", "var_b"], "line"=>7, "id"=>"test-feature;an-outline;;1"},
33
+ {"cells"=>["1", "a"], "line"=>8, "id"=>"test-feature;an-outline;;2"},
34
+ {"cells"=>["2", "b"], "line"=>9, "id"=>"test-feature;an-outline;;3"},
35
+ {"cells"=>["3", "c"], "line"=>10, "id"=>"test-feature;an-outline;;4"},
36
+ {"cells"=>["4", "d"], "line"=>11, "id"=>"test-feature;an-outline;;5"}]
37
+ }]}
38
+ end
39
+
40
+ it "should return multiple examples used for a single scenario outline" do
41
+ gr = CQL::Repository.new File.expand_path(File.dirname(__FILE__)) + "/../fixtures/features/scen_outlines/multiple_examples"
42
+ result = gr.query do
43
+ select examples
44
+ from scenario_outlines
45
+ end
46
+ result.should == {"examples"=>[{"keyword"=>"Examples", "name"=>"One", "line"=>6, "description"=>"", "id"=>"test-feature;an-outline;one",
47
+ "rows"=>[{"cells"=>["var_a", "var_b"], "line"=>7, "id"=>"test-feature;an-outline;one;1"},
48
+ {"cells"=>["1", "a"], "line"=>8, "id"=>"test-feature;an-outline;one;2"},
49
+ {"cells"=>["2", "b"], "line"=>9, "id"=>"test-feature;an-outline;one;3"}]},
50
+ {"keyword"=>"Examples", "name"=>"Two", "line"=>11, "description"=>"", "id"=>"test-feature;an-outline;two",
51
+ "rows"=>[{"cells"=>["var_a", "var_b"], "line"=>12, "id"=>"test-feature;an-outline;two;1"},
52
+ {"cells"=>["1", "a"], "line"=>13, "id"=>"test-feature;an-outline;two;2"},
53
+ {"cells"=>["2", "b"], "line"=>14, "id"=>"test-feature;an-outline;two;3"}]}]}
54
+ end
55
+
56
+ end
57
+
58
+ describe "single value, multiple results" do
59
+ it 'should get scenario outlines as is when no select criteria given' do
60
+ expected = {"all"=>{"keyword"=>"Scenario Outline",
61
+ "name"=>"An Outline",
62
+ "line"=>3, "description"=>"",
63
+ "id"=>"test-feature;an-outline", "type"=>"scenario_outline",
64
+ "steps"=>[{"keyword"=>"Given ", "name"=>"something happend", "line"=>4},
65
+ {"keyword"=>"Then ", "name"=>"I expect something else", "line"=>5}],
66
+ "examples"=>[{"keyword"=>"Examples", "name"=>"", "line"=>6, "description"=>"", "id"=>"test-feature;an-outline;",
67
+ "rows"=>[{"cells"=>["var_a", "var_b"], "line"=>7, "id"=>"test-feature;an-outline;;1"},
68
+ {"cells"=>["1", "a"], "line"=>8, "id"=>"test-feature;an-outline;;2"},
69
+ {"cells"=>["2", "b"], "line"=>9, "id"=>"test-feature;an-outline;;3"},
70
+ {"cells"=>["3", "c"], "line"=>10, "id"=>"test-feature;an-outline;;4"},
71
+ {"cells"=>["4", "d"], "line"=>11, "id"=>"test-feature;an-outline;;5"}]}]}}
72
+
73
+ gs = CQL::Repository.new File.expand_path(File.dirname(__FILE__)) + "/../fixtures/features/scen_outlines/basic"
74
+ result = gs.query do
75
+ select all
76
+ from scenario_outlines
77
+ end
78
+ result.should == expected
79
+
80
+ result = gs.query do
81
+ select everything
82
+ from scenario_outlines
83
+ end
84
+ result.should == expected
85
+
86
+ result = gs.query do
87
+ select complete
88
+ from scenario_outlines
89
+ end
90
+ result.should == expected
91
+ end
92
+ end
93
+
94
+ describe "select all" do
95
+
96
+ end
97
+
98
+ describe "special selectors" do
99
+ it 'should get the full step line scenario outlines' do
100
+ gs = CQL::Repository.new File.expand_path(File.dirname(__FILE__)) + "/../fixtures/features/scen_outlines/basic"
101
+ result = gs.query do
102
+ select step_lines
103
+ from scenario_outlines
104
+ end
105
+ result.should == {"step_lines"=> ["Given something happend", "Then I expect something else"]}
106
+ end
107
+ end
108
+
109
+ describe "multiple values" do
110
+ it 'should get scenario outlines name and line numbers as a map' do
111
+ gs = CQL::Repository.new File.expand_path(File.dirname(__FILE__)) + "/../fixtures/features/scen_outlines/basic"
112
+ result = gs.query do
113
+ select name, line, type, step_lines, id, steps
114
+ from scenario_outlines
115
+ end
116
+ result.should == {'name'=>"An Outline",
117
+ 'line'=>3,
118
+ 'id'=>'test-feature;an-outline',
119
+ 'type'=>'scenario_outline',
120
+ "steps"=>[{"keyword"=>"Given ", "name"=>"something happend", "line"=>4}, {"keyword"=>"Then ", "name"=>"I expect something else", "line"=>5}],
121
+ "step_lines"=>["Given something happend", "Then I expect something else"]
122
+ }
123
+ end
124
+
125
+ end
126
+ end
@@ -0,0 +1,73 @@
1
+ require 'rspec'
2
+ require File.dirname(__FILE__) + "/../lib/repo"
3
+
4
+ describe "select" do
5
+
6
+ describe "single value, multiple results" do
7
+ it 'should get scenario line number' do
8
+ gr = CQL::Repository.new File.expand_path(File.dirname(__FILE__)) + "/../fixtures/features/scenario/simple2"
9
+ result = gr.query do
10
+ select line
11
+ from scenarios
12
+ end
13
+ result.should == [{"line"=> 6}, {"line"=> 11}, {"line"=> 16}, {"line"=> 21}]
14
+ end
15
+
16
+ it 'should get scenario name' do
17
+ gr = CQL::Repository.new File.expand_path(File.dirname(__FILE__)) + "/../fixtures/features/scenario/simple2"
18
+ result = gr.query do
19
+ select name
20
+ from scenarios
21
+ end
22
+ result.should == [{"name"=> "Testing the slurping"}, {"name"=> "Testing again"},
23
+ {"name"=> "Testing yet again"}, {"name"=> "Testing yet again part 2"}]
24
+ end
25
+
26
+ it 'should get scenario name from multiple feature files' do
27
+ gr = CQL::Repository.new File.expand_path(File.dirname(__FILE__)) + "/../fixtures/features/scenario/simple"
28
+ result = gr.query do
29
+ select name
30
+ from scenarios
31
+ end
32
+ result.should == [{"name"=> "Has a table"}, {"name"=> "Testing the slurping 1"},
33
+ {"name"=> "Testing the slurping not to be found"}, {"name"=> "Testing the slurping 2"},
34
+ {"name"=> "Testing the slurping 3"}, {"name"=> "Testing again"},
35
+ {"name"=> "Testing yet again"}, {"name"=> "Testing yet again part 2"}]
36
+ end
37
+ end
38
+
39
+ describe "multiple values" do
40
+ it 'should get multiple scenarios as a list of maps' do
41
+ gr = CQL::Repository.new File.expand_path(File.dirname(__FILE__)) + "/../fixtures/features/scenario/simple2"
42
+ result = gr.query do
43
+ select line, name
44
+ from scenarios
45
+ end
46
+ result.should == [{'line'=>6, 'name'=>"Testing the slurping"}, {'line'=>11, 'name'=>"Testing again"},
47
+ {'line'=>16, 'name'=>"Testing yet again"}, {'line'=>21, 'name'=>"Testing yet again part 2"}]
48
+ end
49
+
50
+ it "should select all" do
51
+ gr = CQL::Repository.new File.expand_path(File.dirname(__FILE__)) + "/../fixtures/features/scenario/table"
52
+ expected = {"all"=>{"keyword"=>"Scenario", "name"=>"Has a table", "line"=>3,
53
+ "description"=>"", "id"=>"simple;has-a-table", "type"=>"scenario",
54
+ "steps"=>[{"keyword"=>"Given ", "name"=>"Something", "line"=>4,
55
+ "rows"=>[{"cells"=>["a", "a"], "line"=>5}, {"cells"=>["s", "a"], "line"=>6},
56
+ {"cells"=>["s", "s"], "line"=>7}]},
57
+ {"keyword"=>"Then ", "name"=>"something else", "line"=>8}]}}
58
+
59
+ result = gr.query do
60
+ select all
61
+ from scenarios
62
+ end
63
+ result.should == expected
64
+
65
+ result = gr.query do
66
+ select complete
67
+ from scenarios
68
+ end
69
+ result.should == expected
70
+ end
71
+
72
+ end
73
+ end
@@ -0,0 +1,22 @@
1
+ require 'rspec'
2
+ require File.dirname(__FILE__) + "/../lib/repo"
3
+
4
+ describe "cql" do
5
+
6
+ describe "tag searcher" do
7
+ it "should be able to search for tags" do
8
+ tags_given = [{"name"=>"@one", "line"=>3}, {"name"=>"@four", "line"=>3}, {"name"=>"@six", "line"=>3}, {"name"=>"@seven", "line"=>3}]
9
+ CQL::MapReduce.has_tags(tags_given, ["@one", "@four"]).should eql true
10
+
11
+ tags_given = [{"name"=>"@two", "line"=>3}, {"name"=>"@four", "line"=>3}, {"name"=>"@six", "line"=>3}, {"name"=>"@seven", "line"=>3}]
12
+ CQL::MapReduce.has_tags(tags_given, ["@one", "@four"]).should eql false
13
+
14
+ tags_given = [{"name"=>"@two", "line"=>3}, {"name"=>"@four", "line"=>3}, {"name"=>"@six", "line"=>3}, {"name"=>"@seven", "line"=>3}]
15
+ CQL::MapReduce.has_tags(tags_given, ["@four"]).should eql true
16
+
17
+ tags_given = [{"name"=>"@two", "line"=>3}, {"name"=>"@four", "line"=>3}, {"name"=>"@six", "line"=>3}, {"name"=>"@seven", "line"=>3}]
18
+ CQL::MapReduce.has_tags(tags_given, ["@four", "@two", "@six", "@seven"]).should eql true
19
+ end
20
+ end
21
+
22
+ end
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: 0.1.0
4
+ version: 0.1.0.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -80,7 +80,17 @@ email: jdfolino@gmail.com
80
80
  executables: []
81
81
  extensions: []
82
82
  extra_rdoc_files: []
83
- files: []
83
+ files:
84
+ - lib/dsl.rb
85
+ - lib/map_reduce.rb
86
+ - lib/repo.rb
87
+ - spec/filter_feature_dsl_spec.rb
88
+ - spec/filter_sso_spec.rb
89
+ - spec/map_reduce_spec.rb
90
+ - spec/select_feature_dsl_spec.rb
91
+ - spec/select_scen_outline_dsl_spec.rb
92
+ - spec/select_scenario_dsl_spec.rb
93
+ - spec/unit_spec.rb
84
94
  homepage:
85
95
  licenses: []
86
96
  post_install_message: ! '
@@ -116,5 +126,12 @@ rubyforge_project:
116
126
  rubygems_version: 1.8.21
117
127
  signing_key:
118
128
  specification_version: 3
119
- summary: cucumber-0.1.0
120
- test_files: []
129
+ summary: cucumber-0.1.0.1
130
+ test_files:
131
+ - spec/filter_feature_dsl_spec.rb
132
+ - spec/filter_sso_spec.rb
133
+ - spec/map_reduce_spec.rb
134
+ - spec/select_feature_dsl_spec.rb
135
+ - spec/select_scen_outline_dsl_spec.rb
136
+ - spec/select_scenario_dsl_spec.rb
137
+ - spec/unit_spec.rb