rapuncel 0.0.1.alpha → 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +33 -36
- data/{Rakefile → Rakefile.rb} +1 -1
- data/lib/rapuncel.rb +1 -2
- data/lib/rapuncel/adapters/net_http_adapter.rb +6 -6
- data/lib/rapuncel/adapters/typhoeus_adapter.rb +33 -0
- data/lib/rapuncel/base.rb +2 -2
- data/lib/rapuncel/client.rb +13 -21
- data/lib/rapuncel/connection.rb +2 -2
- data/lib/rapuncel/core_ext/array.rb +16 -9
- data/lib/rapuncel/core_ext/big_decimal.rb +0 -7
- data/lib/rapuncel/core_ext/boolean.rb +13 -10
- data/lib/rapuncel/core_ext/float.rb +7 -4
- data/lib/rapuncel/core_ext/hash.rb +27 -17
- data/lib/rapuncel/core_ext/integer.rb +10 -2
- data/lib/rapuncel/core_ext/object.rb +6 -6
- data/lib/rapuncel/core_ext/string.rb +7 -5
- data/lib/rapuncel/core_ext/symbol.rb +3 -2
- data/lib/rapuncel/core_ext/time.rb +8 -5
- data/lib/rapuncel/fault.rb +10 -0
- data/lib/rapuncel/proxy.rb +14 -39
- data/lib/rapuncel/request.rb +6 -7
- data/lib/rapuncel/response.rb +31 -69
- data/rapuncel.gemspec +4 -3
- data/test/coverage/-Users-mariantheisen-Projects-Kayoom-rapuncel-lib-rapuncel-adapters-typhoeus_adapter_rb.html +231 -0
- data/test/coverage/-Users-mariantheisen-Projects-Kayoom-rapuncel-lib-rapuncel-base_rb.html +105 -0
- data/test/coverage/-Users-mariantheisen-Projects-Kayoom-rapuncel-lib-rapuncel-client_rb.html +321 -0
- data/test/coverage/-Users-mariantheisen-Projects-Kayoom-rapuncel-lib-rapuncel-connection_rb.html +513 -0
- data/test/coverage/-Users-mariantheisen-Projects-Kayoom-rapuncel-lib-rapuncel-core_ext-array_rb.html +303 -0
- data/test/coverage/-Users-mariantheisen-Projects-Kayoom-rapuncel-lib-rapuncel-core_ext-boolean_rb.html +255 -0
- data/test/coverage/-Users-mariantheisen-Projects-Kayoom-rapuncel-lib-rapuncel-core_ext-float_rb.html +177 -0
- data/test/coverage/-Users-mariantheisen-Projects-Kayoom-rapuncel-lib-rapuncel-core_ext-hash_rb.html +297 -0
- data/test/coverage/-Users-mariantheisen-Projects-Kayoom-rapuncel-lib-rapuncel-core_ext-integer_rb.html +177 -0
- data/test/coverage/-Users-mariantheisen-Projects-Kayoom-rapuncel-lib-rapuncel-core_ext-object_rb.html +297 -0
- data/test/coverage/-Users-mariantheisen-Projects-Kayoom-rapuncel-lib-rapuncel-core_ext-string_rb.html +159 -0
- data/test/coverage/-Users-mariantheisen-Projects-Kayoom-rapuncel-lib-rapuncel-core_ext-time_rb.html +165 -0
- data/test/coverage/-Users-mariantheisen-Projects-Kayoom-rapuncel-lib-rapuncel-fault_rb.html +93 -0
- data/test/coverage/-Users-mariantheisen-Projects-Kayoom-rapuncel-lib-rapuncel-proxy_rb.html +393 -0
- data/test/coverage/-Users-mariantheisen-Projects-Kayoom-rapuncel-lib-rapuncel-request_rb.html +351 -0
- data/test/coverage/-Users-mariantheisen-Projects-Kayoom-rapuncel-lib-rapuncel-response_rb.html +399 -0
- data/test/coverage/-Users-mariantheisen-Projects-Kayoom-rapuncel-lib-rapuncel_rb.html +201 -0
- data/test/coverage/functional_test_helper_rb.html +141 -0
- data/test/coverage/index.html +410 -0
- data/test/coverage/jquery-1.3.2.min.js +19 -0
- data/test/coverage/jquery.tablesorter.min.js +15 -0
- data/test/coverage/print.css +12 -0
- data/test/coverage/rcov.js +42 -0
- data/test/coverage/screen.css +270 -0
- data/test/coverage/test_helper_rb.html +291 -0
- data/test/coverage/test_server_rb.html +231 -0
- data/test/functional/client_test.rb +7 -38
- data/test/functional_test_helper.rb +2 -2
- data/test/test_server.rb +29 -3
- data/test/unit/array_test.rb +14 -14
- data/test/unit/boolean_test.rb +6 -6
- data/test/unit/float_test.rb +7 -7
- data/test/unit/hash_test.rb +16 -16
- data/test/unit/object_test.rb +29 -29
- data/test/unit/proxy_test.rb +9 -9
- data/test/unit/response_test.rb +5 -69
- data/test/unit/string_test.rb +7 -15
- metadata +56 -20
- data/lib/rapuncel/core_ext/nil.rb +0 -7
- data/rapuncel-0.0.1.preview.gem +0 -0
- data/test/unit/nil_test.rb +0 -16
@@ -0,0 +1,231 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
2
|
+
<html lang='en' xml:lang='en' xmlns='http://www.w3.org/1999/xhtml'>
|
3
|
+
<head>
|
4
|
+
<title>test_server.rb</title>
|
5
|
+
<link href="screen.css" media="all" rel="stylesheet" type="text/css" />
|
6
|
+
<link href="print.css" media="print" rel="stylesheet" type="text/css" />
|
7
|
+
|
8
|
+
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
|
9
|
+
<script type="text/javascript" src="rcov.js"></script>
|
10
|
+
</head>
|
11
|
+
<body>
|
12
|
+
<h1>Test C0 Coverage Information - RCov</h1>
|
13
|
+
<h2>test_server.rb</h2>
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
<div class="report_table_wrapper">
|
18
|
+
<table class='report' id='report_table'>
|
19
|
+
<thead>
|
20
|
+
<tr>
|
21
|
+
<th class="left_align">Name</th>
|
22
|
+
<th class="right_align">Total Lines</th>
|
23
|
+
<th class="right_align">Lines of Code</th>
|
24
|
+
<th class="left_align">Total Coverage</th>
|
25
|
+
<th class="left_align">Code Coverage</th>
|
26
|
+
</tr>
|
27
|
+
</thead>
|
28
|
+
<tbody>
|
29
|
+
<tr>
|
30
|
+
<td class="left_align"><a href="test_server_rb.html">test_server.rb</a></td>
|
31
|
+
<td class='right_align'><tt>28</tt></td>
|
32
|
+
<td class='right_align'><tt>22</tt></td>
|
33
|
+
<td class="left_align"><div class="percent_graph_legend"><tt class=''>100.00%</tt></div>
|
34
|
+
<div class="percent_graph">
|
35
|
+
<div class="covered" style="width:100px"></div>
|
36
|
+
<div class="uncovered" style="width:0px"></div>
|
37
|
+
</div></td>
|
38
|
+
<td class="left_align"><div class="percent_graph_legend"><tt class=''>100.00%</tt></div>
|
39
|
+
<div class="percent_graph">
|
40
|
+
<div class="covered" style="width:100px"></div>
|
41
|
+
<div class="uncovered" style="width:0px"></div>
|
42
|
+
</div></td>
|
43
|
+
</tr>
|
44
|
+
</tbody>
|
45
|
+
</table>
|
46
|
+
</div>
|
47
|
+
|
48
|
+
<h3>Key</h3>
|
49
|
+
|
50
|
+
<div class="key"><pre><span class='marked'>Code reported as executed by Ruby looks like this...</span><span class='marked1'>and this: this line is also marked as covered.</span><span class='inferred'>Lines considered as run by rcov, but not reported by Ruby, look like this,</span><span class='inferred1'>and this: these lines were inferred by rcov (using simple heuristics).</span><span class='uncovered'>Finally, here's a line marked as not executed.</span></pre></div>
|
51
|
+
|
52
|
+
<h3>Coverage Details</h3>
|
53
|
+
|
54
|
+
<table class="details">
|
55
|
+
<tbody>
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
<tr class="marked">
|
60
|
+
<td><pre><a name="line1">1</a> require "xmlrpc/server"</pre></td>
|
61
|
+
</tr>
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
<tr class="inferred">
|
66
|
+
<td><pre><a name="line2">2</a> </pre></td>
|
67
|
+
</tr>
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
<tr class="marked">
|
72
|
+
<td><pre><a name="line3">3</a> class Num</pre></td>
|
73
|
+
</tr>
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
<tr class="marked">
|
78
|
+
<td><pre><a name="line4">4</a> INTERFACE = XMLRPC::interface("num") {</pre></td>
|
79
|
+
</tr>
|
80
|
+
|
81
|
+
|
82
|
+
|
83
|
+
<tr class="marked">
|
84
|
+
<td><pre><a name="line5">5</a> meth 'int add(int, int)', 'Add two numbers', 'add'</pre></td>
|
85
|
+
</tr>
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
<tr class="marked">
|
90
|
+
<td><pre><a name="line6">6</a> meth 'int div(int, int)', 'Divide two numbers'</pre></td>
|
91
|
+
</tr>
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
<tr class="inferred">
|
96
|
+
<td><pre><a name="line7">7</a> }</pre></td>
|
97
|
+
</tr>
|
98
|
+
|
99
|
+
|
100
|
+
|
101
|
+
<tr class="inferred">
|
102
|
+
<td><pre><a name="line8">8</a> </pre></td>
|
103
|
+
</tr>
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
<tr class="marked">
|
108
|
+
<td><pre><a name="line9">9</a> def add(a, b) a + b end</pre></td>
|
109
|
+
</tr>
|
110
|
+
|
111
|
+
|
112
|
+
|
113
|
+
<tr class="marked">
|
114
|
+
<td><pre><a name="line10">10</a> def div(a, b) a / b end</pre></td>
|
115
|
+
</tr>
|
116
|
+
|
117
|
+
|
118
|
+
|
119
|
+
<tr class="inferred">
|
120
|
+
<td><pre><a name="line11">11</a> end</pre></td>
|
121
|
+
</tr>
|
122
|
+
|
123
|
+
|
124
|
+
|
125
|
+
<tr class="inferred">
|
126
|
+
<td><pre><a name="line12">12</a> </pre></td>
|
127
|
+
</tr>
|
128
|
+
|
129
|
+
|
130
|
+
|
131
|
+
<tr class="inferred">
|
132
|
+
<td><pre><a name="line13">13</a> </pre></td>
|
133
|
+
</tr>
|
134
|
+
|
135
|
+
|
136
|
+
|
137
|
+
<tr class="marked">
|
138
|
+
<td><pre><a name="line14">14</a> class TestServer</pre></td>
|
139
|
+
</tr>
|
140
|
+
|
141
|
+
|
142
|
+
|
143
|
+
<tr class="marked">
|
144
|
+
<td><pre><a name="line15">15</a> def initialize</pre></td>
|
145
|
+
</tr>
|
146
|
+
|
147
|
+
|
148
|
+
|
149
|
+
<tr class="marked">
|
150
|
+
<td><pre><a name="line16">16</a> @server = XMLRPC::Server.new(8080, '127.0.0.1', 4, File.open('/dev/null','w')).tap do |s|</pre></td>
|
151
|
+
</tr>
|
152
|
+
|
153
|
+
|
154
|
+
|
155
|
+
<tr class="marked">
|
156
|
+
<td><pre><a name="line17">17</a> s.add_handler(Num::INTERFACE, Num.new)</pre></td>
|
157
|
+
</tr>
|
158
|
+
|
159
|
+
|
160
|
+
|
161
|
+
<tr class="inferred">
|
162
|
+
<td><pre><a name="line18">18</a> end</pre></td>
|
163
|
+
</tr>
|
164
|
+
|
165
|
+
|
166
|
+
|
167
|
+
<tr class="inferred">
|
168
|
+
<td><pre><a name="line19">19</a> end</pre></td>
|
169
|
+
</tr>
|
170
|
+
|
171
|
+
|
172
|
+
|
173
|
+
<tr class="inferred">
|
174
|
+
<td><pre><a name="line20">20</a> </pre></td>
|
175
|
+
</tr>
|
176
|
+
|
177
|
+
|
178
|
+
|
179
|
+
<tr class="marked">
|
180
|
+
<td><pre><a name="line21">21</a> def start</pre></td>
|
181
|
+
</tr>
|
182
|
+
|
183
|
+
|
184
|
+
|
185
|
+
<tr class="marked">
|
186
|
+
<td><pre><a name="line22">22</a> Thread.new { @server.serve }</pre></td>
|
187
|
+
</tr>
|
188
|
+
|
189
|
+
|
190
|
+
|
191
|
+
<tr class="inferred">
|
192
|
+
<td><pre><a name="line23">23</a> end</pre></td>
|
193
|
+
</tr>
|
194
|
+
|
195
|
+
|
196
|
+
|
197
|
+
<tr class="inferred">
|
198
|
+
<td><pre><a name="line24">24</a> </pre></td>
|
199
|
+
</tr>
|
200
|
+
|
201
|
+
|
202
|
+
|
203
|
+
<tr class="marked">
|
204
|
+
<td><pre><a name="line25">25</a> def stop</pre></td>
|
205
|
+
</tr>
|
206
|
+
|
207
|
+
|
208
|
+
|
209
|
+
<tr class="marked">
|
210
|
+
<td><pre><a name="line26">26</a> @server.shutdown</pre></td>
|
211
|
+
</tr>
|
212
|
+
|
213
|
+
|
214
|
+
|
215
|
+
<tr class="inferred">
|
216
|
+
<td><pre><a name="line27">27</a> end </pre></td>
|
217
|
+
</tr>
|
218
|
+
|
219
|
+
|
220
|
+
|
221
|
+
<tr class="inferred">
|
222
|
+
<td><pre><a name="line28">28</a> end</pre></td>
|
223
|
+
</tr>
|
224
|
+
|
225
|
+
</tbody>
|
226
|
+
</table>
|
227
|
+
|
228
|
+
<p>Generated on Thu Nov 25 12:29:31 +0100 2010 with <a href="http://github.com/relevance/rcov">rcov 0.9.8</a></p>
|
229
|
+
|
230
|
+
</body>
|
231
|
+
</html>
|
@@ -2,53 +2,22 @@ require 'functional_test_helper'
|
|
2
2
|
|
3
3
|
class FunctionalClientTest < FunctionalTest
|
4
4
|
test "Simple XMLRPC call" do
|
5
|
-
client = Rapuncel::Client.new :port => 8080, :raise_on => :both
|
6
|
-
proxy = client.proxy_for 'num'
|
7
|
-
|
8
|
-
result = proxy.add 40, 2
|
9
|
-
|
10
|
-
assert_equal 42, result
|
11
|
-
end
|
12
|
-
|
13
|
-
test "Fault rpc call without raise" do
|
14
5
|
client = Rapuncel::Client.new :port => 8080
|
15
6
|
proxy = client.proxy_for 'num'
|
16
7
|
|
17
|
-
|
18
|
-
proxy.add 20, 20, 2
|
19
|
-
end
|
8
|
+
result = proxy.add 40, 2
|
20
9
|
|
21
|
-
|
10
|
+
assert_equal 42, result
|
22
11
|
end
|
23
|
-
|
12
|
+
|
24
13
|
test "Fault rpc call" do
|
25
|
-
client = Rapuncel::Client.new :port => 8080
|
14
|
+
client = Rapuncel::Client.new :port => 8080
|
26
15
|
proxy = client.proxy_for 'num'
|
27
16
|
|
28
|
-
|
29
|
-
proxy.add 20, 20, 2
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
test "Error rpc connection" do
|
34
|
-
client = Rapuncel::Client.new :host => 'www.cice-online.net', :port => 80, :path => '/hullahoobahubbahooo', :raise_on => :both
|
35
|
-
proxy = client.proxy
|
17
|
+
result = proxy.add 20, 20, 2
|
36
18
|
|
37
|
-
|
38
|
-
proxy.foo :bar, :baz
|
39
|
-
end
|
19
|
+
assert_kind_of Rapuncel::Fault, result
|
40
20
|
end
|
41
21
|
|
42
|
-
|
43
|
-
client = Rapuncel::Client.new :host => 'www.google.de', :port => 80, :path => '/hullahoobahubbahooo'
|
44
|
-
proxy = client.proxy
|
45
|
-
|
46
|
-
assert_nothing_raised Rapuncel::Response::Error do
|
47
|
-
proxy.foo :bar, :baz
|
48
|
-
end
|
49
|
-
|
50
|
-
err = proxy.foo(:bar, :baz)
|
51
|
-
assert_kind_of Rapuncel::Response::Error, err
|
52
|
-
assert_equal 404, err.code
|
53
|
-
end
|
22
|
+
|
54
23
|
end
|
@@ -1,12 +1,12 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
require 'test_server'
|
3
3
|
|
4
|
-
class FunctionalTest < ActiveSupport::TestCase
|
4
|
+
class FunctionalTest < ActiveSupport::TestCase
|
5
5
|
def setup
|
6
6
|
@test_server = TestServer.new
|
7
7
|
@test_server.start
|
8
8
|
end
|
9
|
-
|
9
|
+
|
10
10
|
def teardown
|
11
11
|
@test_server.stop
|
12
12
|
end
|
data/test/test_server.rb
CHANGED
@@ -1,28 +1,54 @@
|
|
1
1
|
require "xmlrpc/server"
|
2
|
+
require 'rubygems'
|
3
|
+
require 'faker'
|
2
4
|
|
3
5
|
class Num
|
4
6
|
INTERFACE = XMLRPC::interface("num") {
|
5
7
|
meth 'int add(int, int)', 'Add two numbers', 'add'
|
6
8
|
meth 'int div(int, int)', 'Divide two numbers'
|
9
|
+
meth 'int rows', "Return a bunch of hashes"
|
7
10
|
}
|
8
11
|
|
9
12
|
def add(a, b) a + b end
|
10
13
|
def div(a, b) a / b end
|
14
|
+
|
15
|
+
def initialize
|
16
|
+
@rows = []
|
17
|
+
|
18
|
+
10000.times do |i|
|
19
|
+
@rows << {
|
20
|
+
:first_name => Faker::Name.first_name,
|
21
|
+
:last_name => Faker::Name.last_name,
|
22
|
+
:street => Faker::Address.street_name,
|
23
|
+
:zip_code => Faker::Address.zip_code,
|
24
|
+
:city => Faker::Address.city,
|
25
|
+
:us_state => Faker::Address.us_state,
|
26
|
+
:company => Faker::Company.name
|
27
|
+
}
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
|
32
|
+
def rows
|
33
|
+
@rows
|
34
|
+
end
|
11
35
|
end
|
12
36
|
|
13
37
|
|
14
38
|
class TestServer
|
39
|
+
attr_accessor :server
|
40
|
+
|
15
41
|
def initialize
|
16
42
|
@server = XMLRPC::Server.new(8080, '127.0.0.1', 4, File.open('/dev/null','w')).tap do |s|
|
17
43
|
s.add_handler(Num::INTERFACE, Num.new)
|
18
44
|
end
|
19
45
|
end
|
20
|
-
|
46
|
+
|
21
47
|
def start
|
22
48
|
Thread.new { @server.serve }
|
23
49
|
end
|
24
|
-
|
50
|
+
|
25
51
|
def stop
|
26
52
|
@server.shutdown
|
27
|
-
end
|
53
|
+
end
|
28
54
|
end
|
data/test/unit/array_test.rb
CHANGED
@@ -8,37 +8,37 @@ class ArrayTest < ActiveSupport::TestCase
|
|
8
8
|
|
9
9
|
assert_select xml, '/array/data/value', 10
|
10
10
|
end
|
11
|
-
|
11
|
+
|
12
12
|
def test_array arr
|
13
13
|
xml = arr.to_xml_rpc
|
14
|
-
|
14
|
+
|
15
15
|
xml_node = Nokogiri::XML(xml).children.first
|
16
|
-
|
16
|
+
|
17
17
|
reparsed = Array.from_xml_rpc xml_node
|
18
|
-
|
18
|
+
|
19
19
|
reparsed
|
20
20
|
end
|
21
|
-
|
22
|
-
|
21
|
+
|
22
|
+
|
23
23
|
test "An array, converted to xml and parsed back should be itself" do
|
24
24
|
arr1 = (1..10).to_a
|
25
25
|
arr2 = arr1.map &:to_s
|
26
|
-
|
26
|
+
|
27
27
|
arr3 = [arr1, arr2]
|
28
|
-
|
28
|
+
|
29
29
|
arr4 = ["hello", arr3]
|
30
|
-
|
30
|
+
|
31
31
|
reparsed1 = test_array arr1
|
32
32
|
reparsed2 = test_array arr2
|
33
33
|
reparsed3 = test_array arr3
|
34
34
|
reparsed4 = test_array arr4
|
35
|
-
|
35
|
+
|
36
36
|
[reparsed1, reparsed2, reparsed3, reparsed4].zip([arr1, arr2, arr3, arr4]).each do |b|
|
37
37
|
assert_equal *b
|
38
38
|
end
|
39
|
-
|
39
|
+
|
40
40
|
end
|
41
|
-
|
41
|
+
|
42
42
|
test "real world repsonse" do
|
43
43
|
response_body = <<-XML
|
44
44
|
<array><data>
|
@@ -86,9 +86,9 @@ class ArrayTest < ActiveSupport::TestCase
|
|
86
86
|
</struct></value>
|
87
87
|
</data></array>
|
88
88
|
XML
|
89
|
-
|
89
|
+
|
90
90
|
arr = Object.from_xml_rpc response_body
|
91
|
-
|
91
|
+
|
92
92
|
assert_kind_of Array, arr
|
93
93
|
assert_equal 3, arr.size
|
94
94
|
end
|
data/test/unit/boolean_test.rb
CHANGED
@@ -11,24 +11,24 @@ class BooleanTest < ActiveSupport::TestCase
|
|
11
11
|
assert_select false.to_xml_rpc, '/boolean', 1
|
12
12
|
assert_select false.to_xml_rpc, '/boolean', '0'
|
13
13
|
end
|
14
|
-
|
14
|
+
|
15
15
|
test "true.to_xml_rpc reparsed must be true" do
|
16
16
|
xml=true.to_xml_rpc
|
17
17
|
xml_node = Nokogiri::XML(xml).children.first
|
18
|
-
|
18
|
+
|
19
19
|
assert Rapuncel::Boolean.from_xml_rpc(xml_node) #I assume assert takes a boolean?
|
20
20
|
assert Rapuncel::Boolean.from_xml_rpc(xml_node) == true #is this different? just in case the other function gives back something non nil/false which is not necessarily true
|
21
21
|
end
|
22
|
-
|
22
|
+
|
23
23
|
test "false.to_xml_rpc reparsed must be false" do
|
24
24
|
xml=false.to_xml_rpc
|
25
25
|
xml_node = Nokogiri::XML(xml).children.first
|
26
|
-
|
26
|
+
|
27
27
|
assert !Rapuncel::Boolean.from_xml_rpc(xml_node)
|
28
28
|
end
|
29
|
-
|
29
|
+
|
30
30
|
test "anything else should evaluate to what now?" do
|
31
31
|
assert true
|
32
32
|
end
|
33
|
-
|
33
|
+
|
34
34
|
end
|