savon 0.8.0.beta.4 → 0.8.0
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/CHANGELOG.md +95 -80
- data/lib/savon/core_ext/hash.rb +0 -87
- data/lib/savon/core_ext/object.rb +0 -10
- data/lib/savon/core_ext/string.rb +0 -17
- data/lib/savon/soap/xml.rb +28 -8
- data/lib/savon/version.rb +1 -1
- data/savon.gemspec +3 -1
- data/spec/fixtures/response/{xml/another_soap_fault.xml → another_soap_fault.xml} +0 -0
- data/spec/fixtures/response/{xml/authentication.xml → authentication.xml} +0 -0
- data/spec/fixtures/response/{xml/list.xml → list.xml} +0 -0
- data/spec/fixtures/response/{xml/multi_ref.xml → multi_ref.xml} +0 -0
- data/spec/fixtures/response/{xml/soap_fault.xml → soap_fault.xml} +0 -0
- data/spec/fixtures/response/{xml/soap_fault12.xml → soap_fault12.xml} +0 -0
- data/spec/fixtures/wsdl/{xml/authentication.xml → authentication.xml} +0 -0
- data/spec/fixtures/wsdl/{xml/geotrust.xml → geotrust.xml} +0 -0
- data/spec/fixtures/wsdl/{xml/namespaced_actions.xml → namespaced_actions.xml} +0 -0
- data/spec/fixtures/wsdl/{xml/no_namespace.xml → no_namespace.xml} +0 -0
- data/spec/savon/client_spec.rb +8 -8
- data/spec/savon/core_ext/hash_spec.rb +0 -126
- data/spec/savon/core_ext/object_spec.rb +0 -15
- data/spec/savon/core_ext/string_spec.rb +0 -22
- data/spec/savon/http/error_spec.rb +1 -1
- data/spec/savon/soap/fault_spec.rb +4 -4
- data/spec/savon/soap/request_spec.rb +1 -1
- data/spec/savon/soap/response_spec.rb +6 -5
- data/spec/savon/soap/xml_spec.rb +33 -5
- data/spec/savon/wsdl/document_spec.rb +3 -3
- data/spec/savon/wsdl/parser_spec.rb +1 -1
- data/spec/savon/wsdl/request_spec.rb +1 -1
- data/spec/spec_helper.rb +3 -9
- data/spec/support/fixture.rb +37 -0
- metadata +56 -39
- data/lib/savon/core_ext/array.rb +0 -45
- data/lib/savon/core_ext/datetime.rb +0 -19
- data/lib/savon/core_ext/symbol.rb +0 -16
- data/spec/fixtures/gzip/gzip_response_fixture.rb +0 -7
- data/spec/fixtures/response/response_fixture.rb +0 -40
- data/spec/fixtures/wsdl/wsdl_fixture.rb +0 -43
- data/spec/fixtures/wsdl/wsdl_fixture.yml +0 -42
- data/spec/savon/core_ext/array_spec.rb +0 -49
- data/spec/savon/core_ext/datetime_spec.rb +0 -21
- data/spec/savon/core_ext/symbol_spec.rb +0 -12
@@ -1,19 +0,0 @@
|
|
1
|
-
require "date"
|
2
|
-
require "savon/soap"
|
3
|
-
|
4
|
-
module Savon
|
5
|
-
module CoreExt
|
6
|
-
module DateTime
|
7
|
-
|
8
|
-
# Returns the DateTime as an xs:dateTime formatted String.
|
9
|
-
def to_soap_value
|
10
|
-
strftime Savon::SOAP::DateTimeFormat
|
11
|
-
end
|
12
|
-
|
13
|
-
alias_method :to_soap_value!, :to_soap_value
|
14
|
-
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
DateTime.send :include, Savon::CoreExt::DateTime
|
@@ -1,16 +0,0 @@
|
|
1
|
-
require "savon/core_ext/string"
|
2
|
-
|
3
|
-
module Savon
|
4
|
-
module CoreExt
|
5
|
-
module Symbol
|
6
|
-
|
7
|
-
# Returns the Symbol as a lowerCamelCase String.
|
8
|
-
def to_soap_key
|
9
|
-
to_s.to_soap_key.lower_camelcase
|
10
|
-
end
|
11
|
-
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
Symbol.send :include, Savon::CoreExt::Symbol
|
@@ -1,40 +0,0 @@
|
|
1
|
-
class ResponseFixture
|
2
|
-
class << self
|
3
|
-
|
4
|
-
def authentication(value = nil)
|
5
|
-
@authentication ||= load_fixture :authentication
|
6
|
-
|
7
|
-
case value
|
8
|
-
when :to_hash then Savon::SOAP::XML.to_hash(@authentication)[:authenticate_response][:return]
|
9
|
-
else @authentication
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
def soap_fault
|
14
|
-
@soap_fault ||= load_fixture :soap_fault
|
15
|
-
end
|
16
|
-
|
17
|
-
def soap_fault12
|
18
|
-
@soap_fault12 ||= load_fixture :soap_fault12
|
19
|
-
end
|
20
|
-
|
21
|
-
def another_soap_fault
|
22
|
-
@another_soap_fault ||= load_fixture :another_soap_fault
|
23
|
-
end
|
24
|
-
|
25
|
-
def multi_ref
|
26
|
-
@multi_ref ||= load_fixture :multi_ref
|
27
|
-
end
|
28
|
-
|
29
|
-
def list
|
30
|
-
@list ||= load_fixture :list
|
31
|
-
end
|
32
|
-
|
33
|
-
private
|
34
|
-
|
35
|
-
def load_fixture(fixture)
|
36
|
-
File.read File.dirname(__FILE__) + "/xml/#{fixture}.xml"
|
37
|
-
end
|
38
|
-
|
39
|
-
end
|
40
|
-
end
|
@@ -1,43 +0,0 @@
|
|
1
|
-
require "yaml"
|
2
|
-
require "erb"
|
3
|
-
|
4
|
-
class WSDLFixture
|
5
|
-
|
6
|
-
# Returns a given +fixture+. Defaults to :authentication.
|
7
|
-
def self.load(fixture = nil)
|
8
|
-
fixture ||= :authentication
|
9
|
-
method_missing fixture
|
10
|
-
end
|
11
|
-
|
12
|
-
# Returns a WSDL document matching a given +method+ name when called without
|
13
|
-
# arguments. Otherwise returns the expected value for a given +method+ name
|
14
|
-
# matching a fixture.
|
15
|
-
def self.method_missing(method, *args)
|
16
|
-
return wsdl(method) unless args.first
|
17
|
-
expectations[method][args.first]
|
18
|
-
end
|
19
|
-
|
20
|
-
private
|
21
|
-
|
22
|
-
@@expectations = nil
|
23
|
-
|
24
|
-
# Returns a Hash of expected namespace URI's and SOAP operations loaded
|
25
|
-
# from wsdl_fixture.yml.
|
26
|
-
def self.expectations
|
27
|
-
return @@expectations if @@expectations
|
28
|
-
|
29
|
-
file = File.read File.dirname(__FILE__) + "/wsdl_fixture.yml"
|
30
|
-
@@expectations = YAML.load ERB.new(file).result
|
31
|
-
end
|
32
|
-
|
33
|
-
@@wsdl = {}
|
34
|
-
|
35
|
-
# Returns the WSDL document by a given file name.
|
36
|
-
def self.wsdl(wsdl)
|
37
|
-
return @@wsdl[wsdl] if @@wsdl[wsdl]
|
38
|
-
|
39
|
-
file = File.read File.dirname(__FILE__) + "/xml/#{wsdl}.xml"
|
40
|
-
@@wsdl[wsdl] = file
|
41
|
-
end
|
42
|
-
|
43
|
-
end
|
@@ -1,42 +0,0 @@
|
|
1
|
-
:authentication:
|
2
|
-
:namespace: "http://v1_0.ws.auth.order.example.com/"
|
3
|
-
:operations:
|
4
|
-
:authenticate:
|
5
|
-
:action: "authenticate"
|
6
|
-
:input: "authenticate"
|
7
|
-
|
8
|
-
:no_namespace:
|
9
|
-
:namespace: "urn:ActionWebService"
|
10
|
-
:operations:
|
11
|
-
:get_all_contacts:
|
12
|
-
:action: "/api/api/GetAllContacts"
|
13
|
-
:input: "GetAllContacts"
|
14
|
-
:search_user:
|
15
|
-
:action: "/api/api/SearchUser"
|
16
|
-
:input: "SearchUser"
|
17
|
-
:get_user_login_by_id:
|
18
|
-
:action: "/api/api/GetUserLoginById"
|
19
|
-
:input: "GetUserLoginById"
|
20
|
-
|
21
|
-
:namespaced_actions:
|
22
|
-
:namespace: "http://api.example.com/api/"
|
23
|
-
:operations:
|
24
|
-
:get_api_key:
|
25
|
-
:input: "GetApiKey"
|
26
|
-
:action: "http://api.example.com/api/User.GetApiKey"
|
27
|
-
:delete_client:
|
28
|
-
:input: "DeleteClient"
|
29
|
-
:action: "http://api.example.com/api/Client.Delete"
|
30
|
-
:get_clients:
|
31
|
-
:input: "GetClients"
|
32
|
-
:action: "http://api.example.com/api/User.GetClients"
|
33
|
-
|
34
|
-
:geotrust:
|
35
|
-
:namespace: "http://api.geotrust.com/webtrust/query"
|
36
|
-
:operations:
|
37
|
-
:get_quick_approver_list:
|
38
|
-
:action: "GetQuickApproverList"
|
39
|
-
:input: "GetQuickApproverList"
|
40
|
-
:hello:
|
41
|
-
:input: "hello"
|
42
|
-
:action: "hello"
|
@@ -1,49 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
describe Array do
|
4
|
-
|
5
|
-
describe "to_soap_xml" do
|
6
|
-
it "should return the XML for an Array of Hashes" do
|
7
|
-
array = [{ :name => "adam" }, { :name => "eve" }]
|
8
|
-
result = "<user><name>adam</name></user><user><name>eve</name></user>"
|
9
|
-
|
10
|
-
array.to_soap_xml("user").should == result
|
11
|
-
end
|
12
|
-
|
13
|
-
it "should return the XML for an Array of different Objects" do
|
14
|
-
array = [:symbol, "string", 123]
|
15
|
-
result = "<value>symbol</value><value>string</value><value>123</value>"
|
16
|
-
|
17
|
-
array.to_soap_xml("value").should == result
|
18
|
-
end
|
19
|
-
|
20
|
-
it "should default to escape special characters" do
|
21
|
-
array = ["<tag />", "adam & eve"]
|
22
|
-
result = "<value><tag /></value><value>adam & eve</value>"
|
23
|
-
|
24
|
-
array.to_soap_xml("value").should == result
|
25
|
-
end
|
26
|
-
|
27
|
-
it "should not escape special characters when told to" do
|
28
|
-
array = ["<tag />", "adam & eve"]
|
29
|
-
result = "<value><tag /></value><value>adam & eve</value>"
|
30
|
-
|
31
|
-
array.to_soap_xml("value", false).should == result
|
32
|
-
end
|
33
|
-
|
34
|
-
it "should add attributes to a given tag" do
|
35
|
-
array = ["adam", "eve"]
|
36
|
-
result = '<value active="true">adam</value><value active="true">eve</value>'
|
37
|
-
|
38
|
-
array.to_soap_xml("value", :escape_xml, :active => true).should == result
|
39
|
-
end
|
40
|
-
|
41
|
-
it "should add attributes to duplicate tags" do
|
42
|
-
array = ["adam", "eve"]
|
43
|
-
result = '<value id="1">adam</value><value id="2">eve</value>'
|
44
|
-
|
45
|
-
array.to_soap_xml("value", :escape_xml, :id => [1, 2]).should == result
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
describe DateTime do
|
4
|
-
before do
|
5
|
-
@datetime = DateTime.new 2012, 03, 22, 16, 22, 33
|
6
|
-
@datetime_string = "2012-03-22T16:22:33+00:00"
|
7
|
-
end
|
8
|
-
|
9
|
-
describe "to_soap_value" do
|
10
|
-
it "should return an xs:dateTime compliant String" do
|
11
|
-
@datetime.to_soap_value.should == @datetime_string
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
describe "to_soap_value!" do
|
16
|
-
it "should act like :to_soap_value" do
|
17
|
-
@datetime.to_soap_value.should == @datetime_string
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
end
|
@@ -1,12 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
describe Symbol do
|
4
|
-
|
5
|
-
describe "to_soap_key" do
|
6
|
-
it "converts the Symbol from snake_case to a lowerCamelCase String" do
|
7
|
-
:lower_camel_case.to_soap_key.should == "lowerCamelCase"
|
8
|
-
:lower_camel_case!.to_soap_key.should == "lowerCamelCase"
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
end
|