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.
Files changed (64) hide show
  1. data/README.md +33 -36
  2. data/{Rakefile → Rakefile.rb} +1 -1
  3. data/lib/rapuncel.rb +1 -2
  4. data/lib/rapuncel/adapters/net_http_adapter.rb +6 -6
  5. data/lib/rapuncel/adapters/typhoeus_adapter.rb +33 -0
  6. data/lib/rapuncel/base.rb +2 -2
  7. data/lib/rapuncel/client.rb +13 -21
  8. data/lib/rapuncel/connection.rb +2 -2
  9. data/lib/rapuncel/core_ext/array.rb +16 -9
  10. data/lib/rapuncel/core_ext/big_decimal.rb +0 -7
  11. data/lib/rapuncel/core_ext/boolean.rb +13 -10
  12. data/lib/rapuncel/core_ext/float.rb +7 -4
  13. data/lib/rapuncel/core_ext/hash.rb +27 -17
  14. data/lib/rapuncel/core_ext/integer.rb +10 -2
  15. data/lib/rapuncel/core_ext/object.rb +6 -6
  16. data/lib/rapuncel/core_ext/string.rb +7 -5
  17. data/lib/rapuncel/core_ext/symbol.rb +3 -2
  18. data/lib/rapuncel/core_ext/time.rb +8 -5
  19. data/lib/rapuncel/fault.rb +10 -0
  20. data/lib/rapuncel/proxy.rb +14 -39
  21. data/lib/rapuncel/request.rb +6 -7
  22. data/lib/rapuncel/response.rb +31 -69
  23. data/rapuncel.gemspec +4 -3
  24. data/test/coverage/-Users-mariantheisen-Projects-Kayoom-rapuncel-lib-rapuncel-adapters-typhoeus_adapter_rb.html +231 -0
  25. data/test/coverage/-Users-mariantheisen-Projects-Kayoom-rapuncel-lib-rapuncel-base_rb.html +105 -0
  26. data/test/coverage/-Users-mariantheisen-Projects-Kayoom-rapuncel-lib-rapuncel-client_rb.html +321 -0
  27. data/test/coverage/-Users-mariantheisen-Projects-Kayoom-rapuncel-lib-rapuncel-connection_rb.html +513 -0
  28. data/test/coverage/-Users-mariantheisen-Projects-Kayoom-rapuncel-lib-rapuncel-core_ext-array_rb.html +303 -0
  29. data/test/coverage/-Users-mariantheisen-Projects-Kayoom-rapuncel-lib-rapuncel-core_ext-boolean_rb.html +255 -0
  30. data/test/coverage/-Users-mariantheisen-Projects-Kayoom-rapuncel-lib-rapuncel-core_ext-float_rb.html +177 -0
  31. data/test/coverage/-Users-mariantheisen-Projects-Kayoom-rapuncel-lib-rapuncel-core_ext-hash_rb.html +297 -0
  32. data/test/coverage/-Users-mariantheisen-Projects-Kayoom-rapuncel-lib-rapuncel-core_ext-integer_rb.html +177 -0
  33. data/test/coverage/-Users-mariantheisen-Projects-Kayoom-rapuncel-lib-rapuncel-core_ext-object_rb.html +297 -0
  34. data/test/coverage/-Users-mariantheisen-Projects-Kayoom-rapuncel-lib-rapuncel-core_ext-string_rb.html +159 -0
  35. data/test/coverage/-Users-mariantheisen-Projects-Kayoom-rapuncel-lib-rapuncel-core_ext-time_rb.html +165 -0
  36. data/test/coverage/-Users-mariantheisen-Projects-Kayoom-rapuncel-lib-rapuncel-fault_rb.html +93 -0
  37. data/test/coverage/-Users-mariantheisen-Projects-Kayoom-rapuncel-lib-rapuncel-proxy_rb.html +393 -0
  38. data/test/coverage/-Users-mariantheisen-Projects-Kayoom-rapuncel-lib-rapuncel-request_rb.html +351 -0
  39. data/test/coverage/-Users-mariantheisen-Projects-Kayoom-rapuncel-lib-rapuncel-response_rb.html +399 -0
  40. data/test/coverage/-Users-mariantheisen-Projects-Kayoom-rapuncel-lib-rapuncel_rb.html +201 -0
  41. data/test/coverage/functional_test_helper_rb.html +141 -0
  42. data/test/coverage/index.html +410 -0
  43. data/test/coverage/jquery-1.3.2.min.js +19 -0
  44. data/test/coverage/jquery.tablesorter.min.js +15 -0
  45. data/test/coverage/print.css +12 -0
  46. data/test/coverage/rcov.js +42 -0
  47. data/test/coverage/screen.css +270 -0
  48. data/test/coverage/test_helper_rb.html +291 -0
  49. data/test/coverage/test_server_rb.html +231 -0
  50. data/test/functional/client_test.rb +7 -38
  51. data/test/functional_test_helper.rb +2 -2
  52. data/test/test_server.rb +29 -3
  53. data/test/unit/array_test.rb +14 -14
  54. data/test/unit/boolean_test.rb +6 -6
  55. data/test/unit/float_test.rb +7 -7
  56. data/test/unit/hash_test.rb +16 -16
  57. data/test/unit/object_test.rb +29 -29
  58. data/test/unit/proxy_test.rb +9 -9
  59. data/test/unit/response_test.rb +5 -69
  60. data/test/unit/string_test.rb +7 -15
  61. metadata +56 -20
  62. data/lib/rapuncel/core_ext/nil.rb +0 -7
  63. data/rapuncel-0.0.1.preview.gem +0 -0
  64. 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 &quot;xmlrpc/server&quot;</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(&quot;num&quot;) {</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
- assert_nothing_raised Rapuncel::Response::Exception do
18
- proxy.add 20, 20, 2
19
- end
8
+ result = proxy.add 40, 2
20
9
 
21
- assert_kind_of Rapuncel::Response::Fault, proxy.add(20, 20, 2)
10
+ assert_equal 42, result
22
11
  end
23
-
12
+
24
13
  test "Fault rpc call" do
25
- client = Rapuncel::Client.new :port => 8080, :raise_on => :both
14
+ client = Rapuncel::Client.new :port => 8080
26
15
  proxy = client.proxy_for 'num'
27
16
 
28
- assert_raise Rapuncel::Response::Fault do
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
- assert_raise Rapuncel::Response::Error do
38
- proxy.foo :bar, :baz
39
- end
19
+ assert_kind_of Rapuncel::Fault, result
40
20
  end
41
21
 
42
- test "Error rpc connection without raise" do
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
@@ -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
@@ -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