cql 0.1.0 → 0.1.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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