soaspec 0.1.5 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +15 -15
  3. data/.gitlab-ci.yml +48 -48
  4. data/.rspec +3 -3
  5. data/.rubocop.yml +2 -2
  6. data/CODE_OF_CONDUCT.md +74 -74
  7. data/ChangeLog +404 -400
  8. data/Gemfile +6 -6
  9. data/LICENSE.txt +21 -21
  10. data/README.md +113 -113
  11. data/Rakefile +24 -24
  12. data/Todo.md +6 -6
  13. data/exe/soaspec +109 -109
  14. data/exe/soaspec-virtual-server +156 -155
  15. data/exe/xml_to_yaml_file +60 -60
  16. data/lib/soaspec.rb +103 -103
  17. data/lib/soaspec/core_ext/hash.rb +83 -83
  18. data/lib/soaspec/exchange.rb +235 -235
  19. data/lib/soaspec/exchange_handlers/exchange_handler.rb +103 -103
  20. data/lib/soaspec/exchange_handlers/handler_accessors.rb +106 -106
  21. data/lib/soaspec/exchange_handlers/rest_accessors.rb +92 -92
  22. data/lib/soaspec/exchange_handlers/rest_handler.rb +314 -314
  23. data/lib/soaspec/exchange_handlers/rest_methods.rb +44 -44
  24. data/lib/soaspec/exchange_handlers/soap_handler.rb +236 -236
  25. data/lib/soaspec/exe_helpers.rb +60 -60
  26. data/lib/soaspec/generator/.rspec.erb +5 -5
  27. data/lib/soaspec/generator/.travis.yml.erb +5 -5
  28. data/lib/soaspec/generator/Gemfile.erb +8 -8
  29. data/lib/soaspec/generator/README.md.erb +29 -29
  30. data/lib/soaspec/generator/Rakefile.erb +19 -19
  31. data/lib/soaspec/generator/config/data/default.yml.erb +1 -1
  32. data/lib/soaspec/generator/lib/blz_service.rb.erb +26 -26
  33. data/lib/soaspec/generator/lib/dynamic_class_content.rb.erb +12 -12
  34. data/lib/soaspec/generator/lib/shared_example.rb.erb +8 -8
  35. data/lib/soaspec/generator/spec/dynamic_soap_spec.rb.erb +12 -12
  36. data/lib/soaspec/generator/spec/soap_spec.rb.erb +51 -51
  37. data/lib/soaspec/generator/spec/spec_helper.rb.erb +20 -20
  38. data/lib/soaspec/generator/template/soap_template.xml +6 -6
  39. data/lib/soaspec/interpreter.rb +40 -40
  40. data/lib/soaspec/matchers.rb +65 -65
  41. data/lib/soaspec/not_found_errors.rb +13 -13
  42. data/lib/soaspec/soaspec_shared_examples.rb +24 -24
  43. data/lib/soaspec/spec_logger.rb +27 -27
  44. data/lib/soaspec/test_server/bank.wsdl +90 -90
  45. data/lib/soaspec/test_server/get_bank.rb +160 -160
  46. data/lib/soaspec/test_server/id_manager.rb +31 -31
  47. data/lib/soaspec/test_server/invoices.rb +27 -27
  48. data/lib/soaspec/test_server/namespace.xml +14 -14
  49. data/lib/soaspec/test_server/note.xml +5 -5
  50. data/lib/soaspec/test_server/puppy_service.rb +20 -20
  51. data/lib/soaspec/test_server/test_attribute.rb +13 -13
  52. data/lib/soaspec/test_server/test_namespace.rb +12 -12
  53. data/lib/soaspec/version.rb +2 -2
  54. data/lib/soaspec/wsdl_generator.rb +144 -144
  55. data/soaspec.gemspec +46 -47
  56. data/test.wsdl +116 -116
  57. data/test.xml +10 -10
  58. data/test_wsdl.rb +43 -43
  59. metadata +6 -6
data/test.wsdl CHANGED
@@ -1,116 +1,116 @@
1
- <wsdl:definitions
2
- xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
3
- xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
4
- xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
5
- xmlns:tns="http://Example.org"
6
- xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
7
- xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
8
- xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy"
9
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
10
- xmlns:msc="http://schemas.microsoft.com/ws/2005/12/wsdl/contract"
11
- xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"
12
- xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
13
- xmlns:wsa10="http://www.w3.org/2005/08/addressing"
14
- xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex" targetNamespace="http://Example.org"
15
- xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
16
- <wsdl:types>
17
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
18
- targetNamespace="https://www.w3schools.com"
19
- xmlns="https://www.w3schools.com"
20
- elementFormDefault="qualified">
21
-
22
- <xs:element name="note">
23
- <xs:complexType>
24
- <xs:sequence>
25
- <xs:element name="to" type="xs:string"/>
26
- <xs:element name="from" type="xs:string"/>
27
- <xs:element name="heading" type="xs:string"/>
28
- <xs:element name="body" type="xs:string"/>
29
- </xs:sequence>
30
- </xs:complexType>
31
- </xs:element>
32
-
33
- </xs:schema>
34
- <s:schema xmlns:s="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.webserviceX.NET">
35
- <s:element name="GetWeather">
36
- <s:complexType>
37
- <s:sequence>
38
- <s:element minOccurs="0" maxOccurs="1" name="CityName" type="s:string"/>
39
- <s:element minOccurs="0" maxOccurs="1" name="CountryName" type="s:string"/>
40
- </s:sequence>
41
- </s:complexType>
42
- </s:element>
43
- <s:element name="GetWeatherResponse">
44
- <s:complexType>
45
- <s:sequence>
46
- <s:element minOccurs="0" maxOccurs="1" name="GetWeatherResult" type="s:string"/>
47
- </s:sequence>
48
- </s:complexType>
49
- </s:element>
50
- <s:element name="GetCitiesByCountry">
51
- <s:complexType>
52
- <s:sequence>
53
- <s:element minOccurs="0" maxOccurs="1" name="CountryName" type="s:string"/>
54
- </s:sequence>
55
- </s:complexType>
56
- </s:element>
57
- <s:element name="GetCitiesByCountryResponse">
58
- <s:complexType>
59
- <s:sequence>
60
- <s:element minOccurs="0" maxOccurs="1" name="GetCitiesByCountryResult" type="s:string"/>
61
- </s:sequence>
62
- </s:complexType>
63
- </s:element>
64
- <s:element name="string" nillable="true" type="s:string"/>
65
- </s:schema>
66
-
67
- </wsdl:types>
68
- <wsdl:message name="ICalculator_Add_InputMessage">
69
- <wsdl:part name="parameters" element="tns:Add" />
70
- </wsdl:message>
71
- <wsdl:message name="ICalculator_Add_OutputMessage">
72
- <wsdl:part name="parameters" element="tns:AddResponse" />
73
- </wsdl:message>
74
- <wsdl:message name="ICalculator_Subtract_InputMessage">
75
- <wsdl:part name="parameters" element="tns:Subtract" />
76
- </wsdl:message>
77
- <wsdl:message name="ICalculator_Subtract_OutputMessage">
78
- <wsdl:part name="parameters" element="tns:SubtractResponse" />
79
- </wsdl:message>
80
- <wsdl:portType name="ICalculator">
81
- <wsdl:operation name="Add">
82
- <wsdl:input wsaw:Action="http://Example.org/ICalculator/Add" message="tns:ICalculator_Add_InputMessage" />
83
- <wsdl:output wsaw:Action="http://Example.org/ICalculator/AddResponse" message="tns:ICalculator_Add_OutputMessage" />
84
- </wsdl:operation>
85
- <wsdl:operation name="Subtract">
86
- <wsdl:input wsaw:Action="http://Example.org/ICalculator/Subtract" message="tns:ICalculator_Subtract_InputMessage" />
87
- <wsdl:output wsaw:Action="http://Example.org/ICalculator/SubtractResponse" message="tns:ICalculator_Subtract_OutputMessage" />
88
- </wsdl:operation>
89
- </wsdl:portType>
90
- <wsdl:binding name="DefaultBinding_ICalculator" type="tns:ICalculator">
91
- <soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
92
- <wsdl:operation name="Add">
93
- <soap:operation soapAction="http://Example.org/ICalculator/Add" style="document" />
94
- <wsdl:input>
95
- <soap:body use="literal" />
96
- </wsdl:input>
97
- <wsdl:output>
98
- <soap:body use="literal" />
99
- </wsdl:output>
100
- </wsdl:operation>
101
- <wsdl:operation name="Subtract">
102
- <soap:operation soapAction="http://Example.org/ICalculator/Subtract" style="document" />
103
- <wsdl:input>
104
- <soap:body use="literal" />
105
- </wsdl:input>
106
- <wsdl:output>
107
- <soap:body use="literal" />
108
- </wsdl:output>
109
- </wsdl:operation>
110
- </wsdl:binding>
111
- <wsdl:service name="CalculatorService">
112
- <wsdl:port name="ICalculator" binding="tns:DefaultBinding_ICalculator">
113
- <soap:address location="http://Example.org/ICalculator" />
114
- </wsdl:port>
115
- </wsdl:service>
116
- </wsdl:definitions>
1
+ <wsdl:definitions
2
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
3
+ xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
4
+ xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
5
+ xmlns:tns="http://Example.org"
6
+ xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
7
+ xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
8
+ xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy"
9
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
10
+ xmlns:msc="http://schemas.microsoft.com/ws/2005/12/wsdl/contract"
11
+ xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"
12
+ xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
13
+ xmlns:wsa10="http://www.w3.org/2005/08/addressing"
14
+ xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex" targetNamespace="http://Example.org"
15
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
16
+ <wsdl:types>
17
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
18
+ targetNamespace="https://www.w3schools.com"
19
+ xmlns="https://www.w3schools.com"
20
+ elementFormDefault="qualified">
21
+
22
+ <xs:element name="note">
23
+ <xs:complexType>
24
+ <xs:sequence>
25
+ <xs:element name="to" type="xs:string"/>
26
+ <xs:element name="from" type="xs:string"/>
27
+ <xs:element name="heading" type="xs:string"/>
28
+ <xs:element name="body" type="xs:string"/>
29
+ </xs:sequence>
30
+ </xs:complexType>
31
+ </xs:element>
32
+
33
+ </xs:schema>
34
+ <s:schema xmlns:s="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.webserviceX.NET">
35
+ <s:element name="GetWeather">
36
+ <s:complexType>
37
+ <s:sequence>
38
+ <s:element minOccurs="0" maxOccurs="1" name="CityName" type="s:string"/>
39
+ <s:element minOccurs="0" maxOccurs="1" name="CountryName" type="s:string"/>
40
+ </s:sequence>
41
+ </s:complexType>
42
+ </s:element>
43
+ <s:element name="GetWeatherResponse">
44
+ <s:complexType>
45
+ <s:sequence>
46
+ <s:element minOccurs="0" maxOccurs="1" name="GetWeatherResult" type="s:string"/>
47
+ </s:sequence>
48
+ </s:complexType>
49
+ </s:element>
50
+ <s:element name="GetCitiesByCountry">
51
+ <s:complexType>
52
+ <s:sequence>
53
+ <s:element minOccurs="0" maxOccurs="1" name="CountryName" type="s:string"/>
54
+ </s:sequence>
55
+ </s:complexType>
56
+ </s:element>
57
+ <s:element name="GetCitiesByCountryResponse">
58
+ <s:complexType>
59
+ <s:sequence>
60
+ <s:element minOccurs="0" maxOccurs="1" name="GetCitiesByCountryResult" type="s:string"/>
61
+ </s:sequence>
62
+ </s:complexType>
63
+ </s:element>
64
+ <s:element name="string" nillable="true" type="s:string"/>
65
+ </s:schema>
66
+
67
+ </wsdl:types>
68
+ <wsdl:message name="ICalculator_Add_InputMessage">
69
+ <wsdl:part name="parameters" element="tns:Add" />
70
+ </wsdl:message>
71
+ <wsdl:message name="ICalculator_Add_OutputMessage">
72
+ <wsdl:part name="parameters" element="tns:AddResponse" />
73
+ </wsdl:message>
74
+ <wsdl:message name="ICalculator_Subtract_InputMessage">
75
+ <wsdl:part name="parameters" element="tns:Subtract" />
76
+ </wsdl:message>
77
+ <wsdl:message name="ICalculator_Subtract_OutputMessage">
78
+ <wsdl:part name="parameters" element="tns:SubtractResponse" />
79
+ </wsdl:message>
80
+ <wsdl:portType name="ICalculator">
81
+ <wsdl:operation name="Add">
82
+ <wsdl:input wsaw:Action="http://Example.org/ICalculator/Add" message="tns:ICalculator_Add_InputMessage" />
83
+ <wsdl:output wsaw:Action="http://Example.org/ICalculator/AddResponse" message="tns:ICalculator_Add_OutputMessage" />
84
+ </wsdl:operation>
85
+ <wsdl:operation name="Subtract">
86
+ <wsdl:input wsaw:Action="http://Example.org/ICalculator/Subtract" message="tns:ICalculator_Subtract_InputMessage" />
87
+ <wsdl:output wsaw:Action="http://Example.org/ICalculator/SubtractResponse" message="tns:ICalculator_Subtract_OutputMessage" />
88
+ </wsdl:operation>
89
+ </wsdl:portType>
90
+ <wsdl:binding name="DefaultBinding_ICalculator" type="tns:ICalculator">
91
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
92
+ <wsdl:operation name="Add">
93
+ <soap:operation soapAction="http://Example.org/ICalculator/Add" style="document" />
94
+ <wsdl:input>
95
+ <soap:body use="literal" />
96
+ </wsdl:input>
97
+ <wsdl:output>
98
+ <soap:body use="literal" />
99
+ </wsdl:output>
100
+ </wsdl:operation>
101
+ <wsdl:operation name="Subtract">
102
+ <soap:operation soapAction="http://Example.org/ICalculator/Subtract" style="document" />
103
+ <wsdl:input>
104
+ <soap:body use="literal" />
105
+ </wsdl:input>
106
+ <wsdl:output>
107
+ <soap:body use="literal" />
108
+ </wsdl:output>
109
+ </wsdl:operation>
110
+ </wsdl:binding>
111
+ <wsdl:service name="CalculatorService">
112
+ <wsdl:port name="ICalculator" binding="tns:DefaultBinding_ICalculator">
113
+ <soap:address location="http://Example.org/ICalculator" />
114
+ </wsdl:port>
115
+ </wsdl:service>
116
+ </wsdl:definitions>
data/test.xml CHANGED
@@ -1,11 +1,11 @@
1
- <?xml version="1.0"?>
2
-
3
- <note
4
- xmlns="https://www.w3schools.com"
5
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
6
- xsi:schemaLocation="https://www.w3schools.com/xml/note.xsd">
7
- <to>Tove</to>
8
- <from>123.2</from>
9
- <heading>Reminder</heading>
10
- <body>Don't forget me this weekend!</body>
1
+ <?xml version="1.0"?>
2
+
3
+ <note
4
+ xmlns="https://www.w3schools.com"
5
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
6
+ xsi:schemaLocation="https://www.w3schools.com/xml/note.xsd">
7
+ <to>Tove</to>
8
+ <from>123.2</from>
9
+ <heading>Reminder</heading>
10
+ <body>Don't forget me this weekend!</body>
11
11
  </note>
@@ -1,44 +1,44 @@
1
-
2
- require 'wasabi'
3
- require 'savon'
4
-
5
-
6
- #document = Savon.client(wsdl: 'test.wsdl').wsdl
7
- #document = Savon.client(wsdl: 'http://www.webservicex.com/globalweather.asmx?wsdl').wsdl
8
- #document = Wasabi.document File.read('test.wsdl')
9
- document = Wasabi.document 'http://www.webservicex.net/ConvertTemperature.asmx?WSDL'
10
- parser = document.parser
11
-
12
-
13
- # TEST SCHEMA
14
- #
15
- # parser.schemas.each do |schema|
16
- # puts 'SCHEMA * '
17
- # puts schema
18
- #
19
- # xsd = Nokogiri::XML::Schema(schema.to_s)
20
- #
21
- # doc = Nokogiri::XML(File.read('test.xml'))
22
- #
23
- # xsd.validate(doc).each do |error|
24
- # puts error.message
25
- # end
26
- # end
27
- #
28
-
29
- schemes = parser.schemas
30
- puts schemes
31
- custom_type = schemes.xpath("//*[@name='TemperatureUnit']")
32
- if custom_type.first
33
- puts 'CUST' + custom_type.to_s
34
- prefix = custom_type.first.namespace.prefix
35
- puts prefix
36
-
37
- enumerations = custom_type.xpath("//#{prefix}:enumeration")
38
-
39
- puts 'ENUM' + enumerations.to_s
40
-
41
- enumerations.each do |enum_value|
42
- puts enum_value['value']
43
- end
1
+
2
+ require 'wasabi'
3
+ require 'savon'
4
+
5
+
6
+ #document = Savon.client(wsdl: 'test.wsdl').wsdl
7
+ #document = Savon.client(wsdl: 'http://www.webservicex.com/globalweather.asmx?wsdl').wsdl
8
+ #document = Wasabi.document File.read('test.wsdl')
9
+ document = Wasabi.document 'http://www.webservicex.net/ConvertTemperature.asmx?WSDL'
10
+ parser = document.parser
11
+
12
+
13
+ # TEST SCHEMA
14
+ #
15
+ # parser.schemas.each do |schema|
16
+ # puts 'SCHEMA * '
17
+ # puts schema
18
+ #
19
+ # xsd = Nokogiri::XML::Schema(schema.to_s)
20
+ #
21
+ # doc = Nokogiri::XML(File.read('test.xml'))
22
+ #
23
+ # xsd.validate(doc).each do |error|
24
+ # puts error.message
25
+ # end
26
+ # end
27
+ #
28
+
29
+ schemes = parser.schemas
30
+ puts schemes
31
+ custom_type = schemes.xpath("//*[@name='TemperatureUnit']")
32
+ if custom_type.first
33
+ puts 'CUST' + custom_type.to_s
34
+ prefix = custom_type.first.namespace.prefix
35
+ puts prefix
36
+
37
+ enumerations = custom_type.xpath("//#{prefix}:enumeration")
38
+
39
+ puts 'ENUM' + enumerations.to_s
40
+
41
+ enumerations.each do |enum_value|
42
+ puts enum_value['value']
43
+ end
44
44
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: soaspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - SamuelGarrattIQA
@@ -84,16 +84,16 @@ dependencies:
84
84
  name: require_all
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - '='
88
88
  - !ruby/object:Gem::Version
89
- version: '0'
89
+ version: 1.5.0
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ">="
94
+ - - '='
95
95
  - !ruby/object:Gem::Version
96
- version: '0'
96
+ version: 1.5.0
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: rspec
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -392,7 +392,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
392
392
  version: '0'
393
393
  requirements: []
394
394
  rubyforge_project:
395
- rubygems_version: 2.6.14
395
+ rubygems_version: 2.7.6
396
396
  signing_key:
397
397
  specification_version: 4
398
398
  summary: Helps to create RSpec specs for 'SOAP' or 'REST' apis