rbgccxml 0.9.1 → 1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,49 +1,49 @@
1
1
  require "test_helper"
2
2
 
3
- context "Querying for functions" do
3
+ describe "Querying for functions" do
4
4
 
5
- setup do
6
- @@functions_source ||= RbGCCXML.parse(full_dir("headers/functions.h")).namespaces("functions")
5
+ before(:all) do
6
+ @functions_source = RbGCCXML.parse(full_dir("headers/functions.h")).namespaces("functions")
7
7
  end
8
8
 
9
9
  specify "should be able to find all functions" do
10
- @@functions_source.functions.length.should == 4
10
+ @functions_source.functions.length.should == 4
11
11
  end
12
12
 
13
13
  specify "can find functions by name" do
14
14
  # Short-hand finding does #find(:name => "")
15
- test1 = @@functions_source.functions("test1")
16
- test1.should.be.a.kind_of RbGCCXML::Function
15
+ test1 = @functions_source.functions("test1")
16
+ test1.should be_a_kind_of(RbGCCXML::Function)
17
17
  test1.name.should == "test1"
18
18
 
19
- bool = @@functions_source.functions.find(:name => "bool_method")
20
- bool.should.be.a.kind_of RbGCCXML::Function
19
+ bool = @functions_source.functions.find(:name => "bool_method")
20
+ bool.should be_a_kind_of(RbGCCXML::Function)
21
21
  bool.name.should == "bool_method"
22
22
  end
23
23
 
24
24
  specify "should not have a classes finder" do
25
- test1 = @@functions_source.functions("test1")
26
- should.raise RbGCCXML::NotQueryableException do
25
+ test1 = @functions_source.functions("test1")
26
+ lambda do
27
27
  test1.classes
28
- end
28
+ end.should raise_error(RbGCCXML::NotQueryableException)
29
29
  end
30
30
 
31
31
  specify "should not have a namespaces finder" do
32
- test1 = @@functions_source.functions("test1")
33
- should.raise RbGCCXML::NotQueryableException do
32
+ test1 = @functions_source.functions("test1")
33
+ lambda do
34
34
  test1.namespaces
35
- end
35
+ end.should raise_error(RbGCCXML::NotQueryableException)
36
36
  end
37
37
 
38
38
  specify "should not have a functions finder" do
39
- test1 = @@functions_source.functions("test1")
40
- should.raise RbGCCXML::NotQueryableException do
41
- test1.functions
42
- end
39
+ test1 = @functions_source.functions("test1")
40
+ lambda do
41
+ test1.functions
42
+ end.should raise_error(RbGCCXML::NotQueryableException)
43
43
  end
44
44
 
45
45
  specify "can get list of arguments" do
46
- test1 = @@functions_source.functions("test1")
47
- test1.arguments.length.should.equal 2
46
+ test1 = @functions_source.functions("test1")
47
+ test1.arguments.length.should == 2
48
48
  end
49
49
  end
data/test/methods_test.rb CHANGED
@@ -1,42 +1,43 @@
1
1
  require "test_helper"
2
2
 
3
- context "Querying for class methods" do
4
- setup do
5
- @@adder_source ||= RbGCCXML.parse(full_dir("headers/Adder.h")).namespaces("classes")
3
+ describe "Querying for class methods" do
4
+ before(:all) do
5
+ @adder_source = RbGCCXML.parse(full_dir("headers/Adder.h")).namespaces("classes")
6
6
  end
7
7
 
8
8
  specify "should be able to get the methods on a class" do
9
- adder = @@adder_source.classes.find(:name => "Adder")
9
+ adder = @adder_source.classes.find(:name => "Adder")
10
10
  methods = adder.methods
11
11
 
12
12
  methods.size.should == 4
13
- methods[0].name.should == "addIntegers"
14
- methods[1].name.should == "addFloats"
15
- methods[2].name.should == "addStrings"
16
- methods[3].name.should == "getClassName"
13
+ found = methods.sort {|a, b| a.name <=> b.name}
14
+ found[0].name.should == "addFloats"
15
+ found[1].name.should == "addIntegers"
16
+ found[2].name.should == "addStrings"
17
+ found[3].name.should == "getClassName"
17
18
  end
18
19
 
19
20
  # The following are simplistic. functions_test tests the
20
21
  # finder options much more completely. This is just to test
21
22
  # that it works on Method objects fine
22
23
  specify "should be able to get methods by name" do
23
- adder = @@adder_source.classes("Adder")
24
+ adder = @adder_source.classes("Adder")
24
25
  adder.methods("addIntegers").name.should == "addIntegers"
25
26
  adder.methods.find(:name => "addStrings").name.should == "addStrings"
26
27
  end
27
28
 
28
29
  specify "can search methods via arguments" do
29
- adder = @@adder_source.classes("Adder")
30
+ adder = @adder_source.classes("Adder")
30
31
  adder.methods.find(:arguments => [:int, :int]).name.should == "addIntegers"
31
32
  end
32
33
 
33
34
  specify "can search methods via return type" do
34
- adder = @@adder_source.classes("Adder")
35
+ adder = @adder_source.classes("Adder")
35
36
  adder.methods.find(:returns => :float).name.should == "addFloats"
36
37
  end
37
38
 
38
39
  specify "can search via all options (AND)" do
39
- adder = @@adder_source.classes("Adder")
40
+ adder = @adder_source.classes("Adder")
40
41
  got = adder.methods.find(:returns => :int, :arguments => [nil, nil])
41
42
  got.name.should == "addIntegers"
42
43
  end
@@ -44,27 +45,27 @@ context "Querying for class methods" do
44
45
  end
45
46
 
46
47
  context "Properties on Methods" do
47
- setup do
48
- @@classes_source ||= RbGCCXML.parse(full_dir("headers/classes.h")).namespaces("classes")
48
+ before(:all) do
49
+ @classes_source = RbGCCXML.parse(full_dir("headers/classes.h")).namespaces("classes")
49
50
  end
50
51
 
51
52
  specify "should be able to tell if a given method is static or not" do
52
- test1 = @@classes_source.classes("Test1")
53
- assert test1.methods("staticMethod").static?
53
+ test1 = @classes_source.classes("Test1")
54
+ test1.methods("staticMethod").should be_static
54
55
 
55
- test2 = @@classes_source.classes.find(:name => "Test2")
56
- assert !test2.methods("func1").static?
56
+ test2 = @classes_source.classes.find(:name => "Test2")
57
+ test2.methods("func1").should_not be_static
57
58
  end
58
59
 
59
60
  specify "should be able to tell if a given method is virtual or not" do
60
- test4 = @@classes_source.classes("Test4")
61
- assert test4.methods("func1").virtual?
62
- assert !test4.methods("func1").purely_virtual?
61
+ test4 = @classes_source.classes("Test4")
62
+ test4.methods("func1").should be_virtual
63
+ test4.methods("func1").should_not be_purely_virtual
63
64
 
64
- assert test4.methods("func2").virtual?
65
- assert !test4.methods("func2").purely_virtual?
65
+ test4.methods("func2").should be_virtual
66
+ test4.methods("func2").should_not be_purely_virtual
66
67
 
67
- assert test4.methods("func3").virtual?
68
- assert test4.methods("func3").purely_virtual?
68
+ test4.methods("func3").should be_virtual
69
+ test4.methods("func3").should be_purely_virtual
69
70
  end
70
71
  end
@@ -1,25 +1,25 @@
1
1
  require "test_helper"
2
2
 
3
- context "Querying for namespaces" do
3
+ describe "Querying for namespaces" do
4
4
 
5
- setup do
5
+ before do
6
6
  @source ||= RbGCCXML.parse(full_dir("headers/namespaces.h"))
7
7
  end
8
8
 
9
9
  specify "can find a namespace" do
10
10
  upper = @source.namespaces.find(:name => "upper")
11
- upper.should.be.a.kind_of RbGCCXML::Namespace
11
+ upper.should be_a_kind_of(RbGCCXML::Namespace)
12
12
 
13
13
  inner1 = upper.namespaces("inner1")
14
- inner1.should.be.a.kind_of RbGCCXML::Namespace
14
+ inner1.should be_a_kind_of(RbGCCXML::Namespace)
15
15
  inner1.name.should == "inner1"
16
16
 
17
17
  inner2 = upper.namespaces("inner2")
18
- inner2.should.be.a.kind_of RbGCCXML::Namespace
18
+ inner2.should be_a_kind_of(RbGCCXML::Namespace)
19
19
  inner2.name.should == "inner2"
20
20
 
21
21
  nested = inner2.namespaces("nested")
22
- nested.should.be.a.kind_of RbGCCXML::Namespace
22
+ nested.should be_a_kind_of(RbGCCXML::Namespace)
23
23
  nested.name.should == "nested"
24
24
  end
25
25
  end
data/test/node_test.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  require "test_helper"
2
2
 
3
- context "Qualified name generation" do
3
+ describe "Qualified name generation" do
4
4
 
5
5
  specify "for namespaces" do
6
6
  source = RbGCCXML.parse(full_dir("headers/namespaces.h"))
@@ -41,25 +41,25 @@ context "Qualified name generation" do
41
41
 
42
42
  end
43
43
 
44
- context "Misc access methods" do
44
+ describe "Misc access methods" do
45
45
 
46
46
  specify "can tell if something is public, protected, and private" do
47
47
  source = RbGCCXML.parse(full_dir("headers/misc.h"))
48
48
  access = source.namespaces("misc").classes("AccessSettings")
49
49
 
50
- assert access.methods("privateMethod").private?
51
- assert access.methods("protectedMethod").protected?
52
- assert access.methods("publicMethod").public?
50
+ access.methods("privateMethod").should be_private
51
+ access.methods("protectedMethod").should be_protected
52
+ access.methods("publicMethod").should be_public
53
53
  end
54
54
 
55
55
  specify "can get the full file path of a node" do
56
56
  source = RbGCCXML.parse(full_dir("headers/enums.h")).namespaces("enums")
57
- source.enumerations("TestEnum").file.should =~ "enums.h"
57
+ source.enumerations("TestEnum").file.should match(%r{enums.h})
58
58
  end
59
59
 
60
60
  specify "returns nil if no file node is found" do
61
61
  source = RbGCCXML.parse(full_dir("headers/enums.h")).namespaces("enums")
62
- source.file.should.be nil
62
+ source.file.should be_nil
63
63
  end
64
64
 
65
65
  end
data/test/parser_test.rb CHANGED
@@ -1,73 +1,73 @@
1
1
  require "test_helper"
2
2
 
3
- context "Default parsing configuration" do
3
+ describe "Default parsing configuration" do
4
4
 
5
5
  specify "can parse a single header file" do
6
- should.not.raise do
6
+ lambda do
7
7
  RbGCCXML.parse(full_dir("headers/Adder.h"))
8
- end
8
+ end.should_not raise_error
9
9
  end
10
10
 
11
11
  specify "can parse a glob" do
12
- should.not.raise do
12
+ lambda do
13
13
  RbGCCXML.parse(full_dir("headers/*.hpp"))
14
- end
14
+ end.should_not raise_error
15
15
  end
16
16
 
17
17
  specify "can parse all files in a directory" do
18
- should.not.raise do
18
+ lambda do
19
19
  RbGCCXML.parse(full_dir("headers"),
20
20
  :includes => full_dir("headers/include"),
21
21
  :cxxflags => "-DMUST_BE_DEFINED")
22
- end
22
+ end.should_not raise_error
23
23
  end
24
24
 
25
25
  specify "can take an array of files" do
26
26
  files = [full_dir("headers/Adder.h"),
27
27
  full_dir("headers/Subtracter.hpp")]
28
- should.not.raise do
28
+ lambda do
29
29
  RbGCCXML.parse(files)
30
- end
30
+ end.should_not raise_error
31
31
  end
32
32
 
33
33
  specify "can take an array of globs" do
34
34
  files = [full_dir("headers/*.h"),
35
35
  full_dir("headers/*.hpp")]
36
- should.not.raise do
36
+ lambda do
37
37
  RbGCCXML.parse(files, :includes => full_dir("headers/include"))
38
- end
38
+ end.should_not raise_error
39
39
  end
40
40
 
41
41
  specify "should throw an error if files aren't found" do
42
- should.raise RbGCCXML::SourceNotFoundError do
42
+ lambda do
43
43
  RbGCCXML.parse(full_dir("headers/Broken.hcc"))
44
- end
44
+ end.should raise_error(RbGCCXML::SourceNotFoundError)
45
45
 
46
- should.raise RbGCCXML::SourceNotFoundError do
46
+ lambda do
47
47
  RbGCCXML.parse(full_dir("hockers"))
48
- end
48
+ end.should raise_error(RbGCCXML::SourceNotFoundError)
49
49
 
50
- should.raise RbGCCXML::SourceNotFoundError do
50
+ lambda do
51
51
  RbGCCXML.parse(full_dir("something/*"))
52
- end
52
+ end.should raise_error(RbGCCXML::SourceNotFoundError)
53
53
 
54
- should.raise RbGCCXML::SourceNotFoundError do
54
+ lambda do
55
55
  RbGCCXML.parse([full_dir("something/*"), full_dir("anotherthing/*")])
56
- end
56
+ end.should raise_error(RbGCCXML::SourceNotFoundError)
57
57
  end
58
58
  end
59
59
 
60
- context "Configurable parsing configuration" do
60
+ describe "Configurable parsing configuration" do
61
61
  specify "can give extra include directories for parsing" do
62
62
  found = RbGCCXML.parse full_dir("headers/with_includes.h"),
63
63
  :includes => full_dir("headers/include")
64
- found.namespaces("code").should.not.be.nil
64
+ found.namespaces("code").should_not be_nil
65
65
  end
66
66
 
67
67
  specify "can be given extra cxxflags for parsing" do
68
- should.not.raise do
68
+ lambda do
69
69
  RbGCCXML.parse full_dir("headers/requires_define.hxx"),
70
70
  :cxxflags => "-DMUST_BE_DEFINED"
71
- end
71
+ end.should_not raise_error
72
72
  end
73
73
  end
@@ -1,6 +1,6 @@
1
1
  require "test_helper"
2
2
 
3
- context "Managing Query results" do
3
+ describe "Managing Query results" do
4
4
 
5
5
  class MyObj
6
6
  attr_accessor :call_me_called, :other_thingy_called
@@ -21,161 +21,164 @@ context "Managing Query results" do
21
21
  q = RbGCCXML::QueryResult.new
22
22
  q << obj1 << obj2
23
23
 
24
- should.not.raise NoMethodError do
24
+ lambda do
25
25
  q.call_me
26
26
  q.other_thingy
27
- end
27
+ end.should_not raise_error(NoMethodError)
28
28
 
29
- assert obj1.call_me_called
30
- assert obj1.other_thingy_called
29
+ obj1.call_me_called.should_not be_nil
30
+ obj1.other_thingy_called.should_not be_nil
31
31
 
32
- assert obj2.call_me_called
33
- assert obj2.other_thingy_called
32
+ obj2.call_me_called.should_not be_nil
33
+ obj2.other_thingy_called.should_not be_nil
34
34
 
35
- should.raise NoMethodError do
35
+ lambda do
36
36
  q.not_here
37
- end
37
+ end.should raise_error(NoMethodError)
38
38
  end
39
39
 
40
40
  specify "should throw appropriately with an empty result set" do
41
- should.raise NoMethodError do
41
+ lambda do
42
42
  RbGCCXML::QueryResult.new.some_method
43
- end
43
+ end.should raise_error(NoMethodError)
44
44
  end
45
45
 
46
46
  specify "should error out with unknown keys" do
47
- should.raise do
47
+ lambda do
48
48
  RbGCCXML::QueryResult.new.find(:key_bad => :hi_mom)
49
- end
49
+ end.should raise_error
50
50
  end
51
51
 
52
52
  end
53
53
 
54
- context "QueryResult#find :name" do
54
+ describe "QueryResult#find :name" do
55
55
 
56
- setup do
57
- @@query_source ||= RbGCCXML.parse(full_dir("headers/queryable.h")).namespaces("query")
56
+ before(:all) do
57
+ @query_source = RbGCCXML.parse(full_dir("headers/queryable.h")).namespaces("query")
58
58
  end
59
59
 
60
60
  specify "can find by regular name" do
61
- func = @@query_source.functions.find(:name => "test4")
62
- func.should.be.a.kind_of RbGCCXML::Function
61
+ func = @query_source.functions.find(:name => "test4")
62
+ func.should be_a_kind_of(RbGCCXML::Function)
63
63
  func.name.should == "test4"
64
64
  end
65
65
 
66
66
  specify "can find names by regex" do
67
- bool = @@query_source.functions.find(:name => /bool/)
68
- bool.should.be.a.kind_of RbGCCXML::Function
67
+ bool = @query_source.functions.find(:name => /bool/)
68
+ bool.should be_a_kind_of(RbGCCXML::Function)
69
69
  bool.name.should == "bool_method"
70
70
  end
71
71
 
72
72
  end
73
73
 
74
- context "QueryResult#find :arguments" do
74
+ describe "QueryResult#find :arguments" do
75
75
 
76
- setup do
77
- @@query_source ||= RbGCCXML.parse(full_dir("headers/queryable.h")).namespaces("query")
76
+ before(:all) do
77
+ @query_source = RbGCCXML.parse(full_dir("headers/queryable.h")).namespaces("query")
78
78
  end
79
79
 
80
80
  specify "no arguments" do
81
- funcs = @@query_source.functions.find(:arguments => [])
82
- assert funcs.detect {|f| f.name == "test1" }
83
- assert funcs.detect {|f| f.name == "bool_method" }
81
+ funcs = @query_source.functions.find(:arguments => [])
82
+ funcs.detect {|f| f.name == "test1" }.should_not be_nil
83
+ funcs.detect {|f| f.name == "bool_method" }.should_not be_nil
84
84
  end
85
85
 
86
86
  specify "multiple arguments" do
87
87
  # If we find just one result, we get it back
88
- func = @@query_source.functions.find(:arguments => [:int])
89
- assert func.is_a?(RbGCCXML::Function)
88
+ func = @query_source.functions.find(:arguments => [:int])
89
+ func.should be_a_kind_of(RbGCCXML::Function)
90
90
  func.name.should == "test2"
91
91
 
92
- func = @@query_source.functions.find(:arguments => [:int, :float])
93
- assert func.is_a?(RbGCCXML::Function)
92
+ func = @query_source.functions.find(:arguments => [:int, :float])
93
+ func.should be_a_kind_of(RbGCCXML::Function)
94
94
  func.name.should == "test3"
95
95
  end
96
96
 
97
97
  specify "when searching arguments, can xspecify catch-all" do
98
- funcs = @@query_source.functions.find(:arguments => [:int, nil])
98
+ funcs = @query_source.functions.find(:arguments => [:int, nil])
99
99
  funcs.size.should == 2
100
- assert funcs.detect {|f| f.name == "test3" }
101
- assert funcs.detect {|f| f.name == "test4" }
100
+ funcs.detect {|f| f.name == "test3" }.should_not be_nil
101
+ funcs.detect {|f| f.name == "test4" }.should_not be_nil
102
102
  end
103
103
 
104
104
  specify "works when using custom defined types" do
105
- func = @@query_source.functions.find(:arguments => ["MyType"])
106
- func.name.should.equal "testMyTypeArgs"
105
+ func = @query_source.functions.find(:arguments => ["MyType"])
106
+ func.name.should == "testMyTypeArgs"
107
107
  end
108
108
 
109
109
  specify "works with pointers and references" do
110
- func = @@query_source.functions.find(:arguments => ["MyType*"])
111
- func.length.should.equal 2
110
+ func = @query_source.functions.find(:arguments => ["MyType*"])
111
+ func.length.should == 2
112
112
 
113
- func = @@query_source.functions.find(:arguments => ["MyType&"])
113
+ func = @query_source.functions.find(:arguments => ["MyType&"])
114
114
  func.name.should == "testMyTypeArgsRef"
115
115
  end
116
116
 
117
117
  specify "works with qualified names" do
118
- func = @@query_source.functions.find(:arguments => ["query::MyType"])
119
- func.name.should.equal "testMyTypeArgs"
118
+ func = @query_source.functions.find(:arguments => ["query::MyType"])
119
+ func.name.should == "testMyTypeArgs"
120
120
 
121
- func = @@query_source.functions.find(:arguments => ["::query::MyType"])
122
- func.name.should.equal "testMyTypeArgs"
121
+ func = @query_source.functions.find(:arguments => ["::query::MyType"])
122
+ func.name.should == "testMyTypeArgs"
123
123
  end
124
124
 
125
125
  specify "works with qualifiers like const" do
126
- func = @@query_source.functions.find(:arguments => ["const MyType*"])
126
+ func = @query_source.functions.find(:arguments => ["const MyType* const"])
127
+ func.name.should == "testConstMyTypeArgsConstPtr"
128
+
129
+ func = @query_source.functions.find(:arguments => ["MyType* const"])
130
+ func.name.should == "testConstMyTypeArgsConstPtr"
131
+
132
+ func = @query_source.functions.find(:arguments => ["const MyType*"])
127
133
  func.name.should == "testMyTypeArgsConstPtr"
128
134
  end
129
135
  end
130
136
 
131
- context "QueryResult#find :returns" do
137
+ describe "QueryResult#find :returns" do
132
138
 
133
- setup do
134
- @@query_source ||= RbGCCXML.parse(full_dir("headers/queryable.h")).namespaces("query")
139
+ before(:all) do
140
+ @query_source = RbGCCXML.parse(full_dir("headers/queryable.h")).namespaces("query")
135
141
  end
136
142
 
137
143
  specify "by return type" do
138
- funcs = @@query_source.functions.find(:returns => :void)
139
- assert funcs.detect {|f| f.name == "test1" }
140
- assert funcs.detect {|f| f.name == "test2" }
141
- assert funcs.detect {|f| f.name == "test3" }
144
+ funcs = @query_source.functions.find(:returns => :void)
145
+ funcs.detect {|f| f.name == "test1" }.should_not be_nil
146
+ funcs.detect {|f| f.name == "test2" }.should_not be_nil
147
+ funcs.detect {|f| f.name == "test3" }.should_not be_nil
142
148
  end
143
149
 
144
150
  specify "works with custom defined types" do
145
- func = @@query_source.functions.find(:returns => "MyType")
146
- func.length.should.equal 2
151
+ func = @query_source.functions.find(:returns => "MyType")
152
+ func.length.should == 2
147
153
  end
148
154
 
149
155
  specify "work with qualified names" do
150
- func = @@query_source.functions.find(:returns => "query::MyType")
151
- func.length.should.equal 2
156
+ func = @query_source.functions.find(:returns => "query::MyType")
157
+ func.length.should == 2
152
158
 
153
- func = @@query_source.functions.find(:returns => "::query::MyType")
154
- func.length.should.equal 2
159
+ func = @query_source.functions.find(:returns => "::query::MyType")
160
+ func.length.should == 2
155
161
  end
156
162
 
157
163
  specify "works with pointers and references" do
158
- func = @@query_source.functions.find(:returns => "MyType*")
164
+ func = @query_source.functions.find(:returns => "MyType*")
159
165
  func.name.should == "testMyTypePtr"
160
166
 
161
- func = @@query_source.functions.find(:returns => "MyType&")
167
+ func = @query_source.functions.find(:returns => "MyType&")
162
168
  func.name.should == "testMyTypeRef"
163
169
  end
164
170
 
165
171
  specify "works with type modifiers (const)" do
166
- func = @@query_source.functions.find(:returns => "const MyType")
172
+ func = @query_source.functions.find(:returns => "const MyType")
167
173
  func.name.should == "testMyTypeConst"
168
174
  end
169
175
  end
170
176
 
171
- context "QueryResult#find access type" do
172
-
173
- setup do
174
- @@query_source ||= RbGCCXML.parse(full_dir("headers/queryable.h")).namespaces("query")
175
- end
177
+ describe "QueryResult#find access type" do
176
178
 
177
179
  specify "can find according to public / private / protected" do
178
- klass = @@query_source.classes("AccessTester")
180
+ @query_source = RbGCCXML.parse(full_dir("headers/queryable.h")).namespaces("query")
181
+ klass = @query_source.classes("AccessTester")
179
182
  m = klass.methods.find(:access => :public)
180
183
  m.name.should == "publicMethod"
181
184
 
@@ -188,42 +191,39 @@ context "QueryResult#find access type" do
188
191
 
189
192
  end
190
193
 
191
- context "QueryResult#find multiple options" do
192
-
193
- setup do
194
- @@query_source ||= RbGCCXML.parse(full_dir("headers/queryable.h")).namespaces("query")
195
- end
194
+ describe "QueryResult#find multiple options" do
196
195
 
197
196
  specify "by both return type and arguments (AND form, not OR)" do
198
- func = @@query_source.functions.find(:returns => :int, :arguments => [nil, nil])
199
- assert func.is_a?(RbGCCXML::Function)
197
+ @query_source = RbGCCXML.parse(full_dir("headers/queryable.h")).namespaces("query")
198
+ func = @query_source.functions.find(:returns => :int, :arguments => [nil, nil])
199
+ func.should be_a_kind_of(RbGCCXML::Function)
200
200
  func.name.should == "test4"
201
201
  end
202
202
 
203
203
  end
204
204
 
205
- context "QueryResult#find :all - Flag full source search" do
205
+ describe "QueryResult#find :all - Flag full source search" do
206
206
 
207
- setup do
208
- @@query_source ||= RbGCCXML.parse(full_dir("headers/queryable.h")).namespaces("query")
207
+ before(:all) do
208
+ @query_source = RbGCCXML.parse(full_dir("headers/queryable.h")).namespaces("query")
209
209
  end
210
210
 
211
211
  specify "can find all :names regardless of nesting" do
212
- func = @@query_source.functions.find(:all, :name => "nestedFunction")
212
+ func = @query_source.functions.find(:all, :name => "nestedFunction")
213
213
  func.name.should == "nestedFunction"
214
214
  end
215
215
 
216
216
  specify "can find according to :arguments" do
217
- func = @@query_source.functions.find(:all, :arguments => ["MyType", "MyType"])
217
+ func = @query_source.functions.find(:all, :arguments => ["MyType", "MyType"])
218
218
  func.name.should == "nestedMyTypeArg"
219
219
  end
220
220
 
221
221
  specify "can find according to :returns " do
222
- funcs = @@query_source.functions.find(:all, :returns => "MyType")
222
+ funcs = @query_source.functions.find(:all, :returns => "MyType")
223
223
  funcs.size.should == 3
224
- assert funcs.detect {|f| f.name == "nestedMyTypeReturns"}
225
- assert funcs.detect {|f| f.name == "testMyType"}
226
- assert funcs.detect {|f| f.name == "testMyTypeConst"}
224
+ funcs.detect {|f| f.name == "nestedMyTypeReturns"}.should_not be_nil
225
+ funcs.detect {|f| f.name == "testMyType"}.should_not be_nil
226
+ funcs.detect {|f| f.name == "testMyTypeConst"}.should_not be_nil
227
227
  end
228
228
 
229
229
  end