rally_rest_api 0.6.0 → 0.6.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.
- data/Rakefile +3 -2
- data/lib/rally_rest_api/query.rb +1 -0
- data/lib/rally_rest_api/query_result.rb +1 -0
- data/lib/rally_rest_api/rest_object.rb +2 -0
- data/lib/rally_rest_api/version.rb +1 -1
- data/test/query_result_spec.rb +73 -0
- data/test/tc_query_result.rb +6 -0
- data/test/tc_rest_object.rb +19 -0
- metadata +3 -2
data/Rakefile
CHANGED
@@ -41,11 +41,12 @@ hoe = Hoe.new(GEM_NAME, VERS) do |p|
|
|
41
41
|
p.rubyforge_name = RUBYFORGE_PROJECT if RUBYFORGE_PROJECT
|
42
42
|
p.test_globs = ["test/*.rb"]
|
43
43
|
p.clean_globs = CLEAN #An array of file patterns to delete on clean.
|
44
|
-
|
44
|
+
|
45
|
+
p.extra_deps = []
|
46
|
+
p.extra_deps << ["builder"]
|
45
47
|
|
46
48
|
# == Optional
|
47
49
|
#p.changes - A description of the release's latest changes.
|
48
|
-
|
49
50
|
#p.spec_extras - A hash of extra values to set in the gemspec.
|
50
51
|
end
|
51
52
|
|
data/lib/rally_rest_api/query.rb
CHANGED
@@ -79,6 +79,7 @@ class RestQuery
|
|
79
79
|
def initialize(type, args = {}, &block)
|
80
80
|
@type = type
|
81
81
|
@query_string = "query=" << URI.escape(QueryBuilder.new("and", &block).to_q) if block_given?
|
82
|
+
@query_string.gsub!("&", "%26")
|
82
83
|
@args_for_paging = {}
|
83
84
|
[:workspace, :project, :project_scope_down, :project_scope_up].each { |k| @args_for_paging[k] = args[k] if args.key?(k) }
|
84
85
|
@query_params = process_args(args)
|
@@ -0,0 +1,73 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'spec'
|
3
|
+
require 'builder'
|
4
|
+
|
5
|
+
require File.dirname(__FILE__) + '/../lib/rally_rest_api/query_result'
|
6
|
+
|
7
|
+
context "A QueryResult" do
|
8
|
+
|
9
|
+
setup do
|
10
|
+
@api = mock("RallyRestAPI")
|
11
|
+
@api.stub! :username
|
12
|
+
@api.stub! :password
|
13
|
+
end
|
14
|
+
|
15
|
+
def make_result(total, page_size, start_index)
|
16
|
+
result_count = total > page_size ? page_size : total
|
17
|
+
|
18
|
+
b = Builder::XmlMarkup.new(:indent => 2)
|
19
|
+
xml = b.QueryResult {
|
20
|
+
b.TotalResultCount total
|
21
|
+
b.PageSize page_size
|
22
|
+
b.StartIndex start_index
|
23
|
+
|
24
|
+
if (result_count > 0)
|
25
|
+
b.Results {
|
26
|
+
result_count.times { |i| b.RefElement(:ref => "http", :refObjectName => "name#{i}") }
|
27
|
+
}
|
28
|
+
else
|
29
|
+
b.Results
|
30
|
+
end
|
31
|
+
}
|
32
|
+
|
33
|
+
QueryResult.new(nil, @api, xml)
|
34
|
+
end
|
35
|
+
|
36
|
+
specify "should have the total result count" do
|
37
|
+
make_result(20, 20, 1).total_result_count.should_be 20
|
38
|
+
end
|
39
|
+
|
40
|
+
specify "should have the page size" do
|
41
|
+
make_result(20, 20, 1).page_size.should_be 20
|
42
|
+
end
|
43
|
+
|
44
|
+
specify "should have the start_index" do
|
45
|
+
make_result(20, 20, 1).start_index.should_be 1
|
46
|
+
end
|
47
|
+
|
48
|
+
specify "should have no more pages when no results are returned" do
|
49
|
+
make_result(0, 20, 0).more_pages?.should_be false
|
50
|
+
end
|
51
|
+
|
52
|
+
specify "should have not more pages when the total result count is less then the page size" do
|
53
|
+
make_result(1, 20, 1).more_pages?.should_be false
|
54
|
+
make_result(19, 20, 1).more_pages?.should_be false
|
55
|
+
make_result(20, 20, 1).more_pages?.should_be false
|
56
|
+
end
|
57
|
+
|
58
|
+
specify "should have more pages when total result count is more then the page size" do
|
59
|
+
make_result(21, 20, 1).more_pages?.should_be true
|
60
|
+
make_result(39, 20, 1).more_pages?.should_be true
|
61
|
+
end
|
62
|
+
|
63
|
+
specify "an empty query should not iteratate on each" do
|
64
|
+
start = 0
|
65
|
+
make_result(0, 20, 0).each { start += 1 }
|
66
|
+
start.should_be 0
|
67
|
+
end
|
68
|
+
|
69
|
+
end
|
70
|
+
|
71
|
+
context "A QueryResult with 2 pages" do
|
72
|
+
|
73
|
+
end
|
data/test/tc_query_result.rb
CHANGED
@@ -27,6 +27,12 @@ class QueryResultTestCase < Test::Unit::TestCase
|
|
27
27
|
assert_equal(20, result.page_length)
|
28
28
|
end
|
29
29
|
|
30
|
+
def test_more_pages_when_enpty
|
31
|
+
query_result_xml = make_result(0, 0, 0)
|
32
|
+
result = QueryResult.new(nil, @api, query_result_xml)
|
33
|
+
assert(! result.more_pages?, "No more pages when results empty")
|
34
|
+
end
|
35
|
+
|
30
36
|
def test_more_pages_when_no_pages
|
31
37
|
query_result_xml = make_result(20, 20, 1)
|
32
38
|
result = QueryResult.new(nil, @api, query_result_xml)
|
data/test/tc_rest_object.rb
CHANGED
@@ -66,6 +66,25 @@ class RestObjectTestCase < Test::Unit::TestCase
|
|
66
66
|
MyRestBuilder.test = self
|
67
67
|
o
|
68
68
|
end
|
69
|
+
|
70
|
+
def test_equal_same_instance
|
71
|
+
xml = %Q(<Object><TextNode>text</TextNode></Object>)
|
72
|
+
r1 = r2 = rest_object(xml)
|
73
|
+
assert(r1 == r2)
|
74
|
+
end
|
75
|
+
|
76
|
+
def test_equal_with_nil
|
77
|
+
xml = %Q(<Object><TextNode>text</TextNode></Object>)
|
78
|
+
r1 = rest_object(xml)
|
79
|
+
assert(r1 != nil)
|
80
|
+
end
|
81
|
+
|
82
|
+
def test_equal_refs
|
83
|
+
r1 = rest_object(%Q(<Object ref="bla"><TextNode>text</TextNode></Object>))
|
84
|
+
r2 = rest_object(%Q(<Object ref="bla"><TextNode>not text</TextNode></Object>))
|
85
|
+
assert_equal(r1, r2)
|
86
|
+
end
|
87
|
+
|
69
88
|
|
70
89
|
def test_basic_text_node
|
71
90
|
xml = %Q(<Object><TextNode>text</TextNode></Object>)
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.0
|
|
3
3
|
specification_version: 1
|
4
4
|
name: rally_rest_api
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.6.
|
7
|
-
date: 2006-12-
|
6
|
+
version: 0.6.1
|
7
|
+
date: 2006-12-18 00:00:00 -07:00
|
8
8
|
summary: A ruby-ized interface to Rally's REST webservices API
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -51,6 +51,7 @@ files:
|
|
51
51
|
test_files:
|
52
52
|
- test/tc_rest_api.rb
|
53
53
|
- test/tc_rest_object.rb
|
54
|
+
- test/query_result_spec.rb
|
54
55
|
- test/tc_rest_query.rb
|
55
56
|
- test/test_helper.rb
|
56
57
|
- test/tc_query_result.rb
|