soaspec 0.0.76 → 0.0.77

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6c81bc329ff3d5ea409f8842d6de0d4435584a7b
4
- data.tar.gz: db52504cab243e4bce49dcf3e6d594cf017eb543
3
+ metadata.gz: 67969ede0a36306652d44ece28fb979980e81e72
4
+ data.tar.gz: 6ca6c9d0887c36bcbb1683299308f349c2a70180
5
5
  SHA512:
6
- metadata.gz: 2c4344b6b2de4ff083ae273740698e1bdc4f203db777bc133183e75110a79089fee3676551a384fba82f8edfa3c92b7b6211d55857471179e440b2450ec2905a
7
- data.tar.gz: 7ab42d4c4e2e347b1856d37ca4accd6d2168949500be62a69bba0fa50c822cd208c96deb41c338ed50544f636e8531d1af647ebcabf2cb888da58b961d7cb7e0
6
+ metadata.gz: d31d9064daa746a272fb2cac0da67f5b797f86c3258b973136f7f55f2f91678fa3f23b3fbb038a6c57ab9d431c8a21643c02d6b0d12b53189b8735dcbb09b928
7
+ data.tar.gz: 54a3005df87d30182c036ca6177818dac46b0eda51856b100aa611c5c4dde276beba4f8e010545c6d74757c316990d3f7f0ae1c31c51d6cf20e591a1779d2ad3
data/ChangeLog CHANGED
@@ -1,3 +1,8 @@
1
+ Version 0.0.77
2
+ * Enhancements
3
+ * Use 'thor' for soaspec-init binary changing it to be `soaspec init`. Will update `soaspec-generate` in next version
4
+ * Put pause of 1/2 a second for each API retry. Often retry is too quick otherwise
5
+
1
6
  Version 0.0.76
2
7
  * Bug fix
3
8
  * Fixed BLZService scenario on soaspec-virtual-server
@@ -0,0 +1,46 @@
1
+ #!/usr/bin/env ruby
2
+
3
+
4
+ require 'thor'
5
+ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), *%w[.. lib])
6
+ require 'savon'
7
+ require 'soaspec'
8
+
9
+ module Soaspec
10
+ # Common executable for Soaspec
11
+ class Exe < Thor
12
+
13
+ include Soaspec::ExeHelpers
14
+
15
+ desc 'soaspec [type]', 'Initialize soaspec repository'
16
+ def init
17
+ puts 'Creating files for soaspec'
18
+
19
+ create_file(filename: 'Gemfile', content: gem_content)
20
+ create_file(filename: 'Rakefile', content: rake_virtual_content)
21
+ create_file(filename: 'README.md', content: readme_content)
22
+ create_folder 'lib'
23
+ create_file(filename: 'lib/blz_service.rb', content: weather_web_service)
24
+ create_file filename: 'lib/shared_example.rb', content: shared_examples_content
25
+ create_folder 'config'
26
+ create_folder 'config/data'
27
+ create_file(filename: 'config/data/default.yml', content: default_yaml_content)
28
+ create_folder 'spec'
29
+ create_folder 'spec/test_data'
30
+ create_folder 'spec/test_data/wsdl'
31
+ create_file(filename: 'spec/spec_helper.rb', content: spec_helper_content)
32
+ create_file(filename: 'spec/soap_spec.rb', content: soap_spec_content)
33
+ create_file(filename: 'spec/test_server.rb', content: test_server_content)
34
+ create_file(filename: 'spec/test_data/wsdl/get_bank.wsdl', content: test_wsdl_content)
35
+ create_folder 'template'
36
+ create_file(filename: 'template/soap_template.xml', content: soap_template_content)
37
+ create_folder 'logs'
38
+
39
+ puts "Run 'bundle install' to install necessary gems"
40
+ puts "Run 'rake spec' to run the tests"
41
+ puts "Note: Setup runs Sinatra for Test Service on port 4567 by default. Change Rakefile 'start_test_server' task to update this"
42
+ end
43
+ end
44
+ end
45
+
46
+ Soaspec::Exe.start(ARGV)
@@ -111,6 +111,7 @@ class Exchange
111
111
  response = exchange_handler.make_request(request_params)
112
112
  return response unless retry_for_success?
113
113
  return response if (200..299).cover? @exchange_handler.status_code_for(response)
114
+ sleep 0.5
114
115
  break response if count == retry_count
115
116
  end
116
117
  end
@@ -255,6 +255,226 @@ Caused by: org.apache.axis2.databinding.ADBException: Unexpected subelement getB
255
255
  FILEEOF
256
256
  end
257
257
 
258
+ def weather_web_service
259
+ <<-WEATH_WEB
260
+ require 'soaspec'
261
+
262
+ # This class is not part of the gem. It's an example of a class you can make
263
+ # to describe your APIs. Usually this would exist in the 'lib' directory
264
+ # Common configuration for the Savon client should go here
265
+ class BLZService < Soaspec::SoapHandler
266
+ # Add to or override default Savon client options
267
+ def savon_options
268
+ {
269
+ # wsdl: 'http://www.thomas-bayer.com/axis2/services/BLZService?wsdl' # External
270
+ wsdl: File.join('spec', 'test_data', 'wsdl', 'get_bank.wsdl')
271
+ }
272
+ end
273
+
274
+ # # Specifying that get_weather_result must be present in the SOAP response
275
+ mandatory_elements [:plz]
276
+
277
+ # Example of xpath value that must be true for all success scenarios
278
+ mandatory_xpath_values 'ns1:bezeichnung' => 'Deutsche Bank'
279
+
280
+ # Example of setting an attribute on the root XML element
281
+ root_attributes 'Version' => '1' # TODO: Create test on request for this
282
+
283
+ end
284
+
285
+ WEATH_WEB
286
+ end
287
+
288
+ def soap_spec_content
289
+ <<-SOAP_SPEC
290
+
291
+ require 'spec_helper'
292
+
293
+ Soaspec.strip_namespaces = true # This allows namespace not to be used. Be careful with this
294
+
295
+ id = '70070010'
296
+ # BLZService.new(template_name: 'soap_template') Use this instead of default_hash to use template approach
297
+
298
+ context 'Test Examples' do
299
+ context BLZService.new('Get Bank', operation: :get_bank, default_hash: { blz: id }) do
300
+
301
+ describe Exchange.new(:default) do
302
+ it { is_expected.to contain_value id }
303
+ it { is_expected.to include_in_body id }
304
+ it_behaves_like 'success scenario'
305
+ after(:all) { described_class.store(:title, 'bezeichnung') }
306
+ end
307
+
308
+ describe Exchange.new(:xpath_eg, blz: 100000) do
309
+ its(['plz']) { is_expected.to eq '100000' }
310
+ it { is_expected.to have_xpath_value '//ns1:bezeichnung' => 'Deutsche Bank' }
311
+ context 'Handle retrieving stored value' do
312
+ it { is_expected.to have_xpath_value 'bezeichnung' => described_class.retrieve(:title) }
313
+ end
314
+ end
315
+
316
+ describe Exchange.new(:yaml_eg, data_for(:small_id)) do
317
+ it_behaves_like 'success scenario'
318
+ end
319
+
320
+ # Retry for success more for web services that intermittently fail
321
+ describe Exchange.new(:short_hand_xpath).retry_for_success do
322
+ # Be careful. If you call a method that does not use namespaces, calling one that does may not find the element
323
+ its(['ns1:bezeichnung']) { is_expected.to eq 'Deutsche Bank' } # '//' is not required at the beginning
324
+ end
325
+ describe Exchange.new('Check existence of elements') do
326
+ it { is_expected.to have_element_at_xpath '//ns1:bezeichnung' }
327
+ it { is_expected.not_to have_element_at_xpath '//ns1:bezeichnung_pretend' }
328
+ end
329
+
330
+ end
331
+ end
332
+
333
+ error_example = BLZService.new('Error example')
334
+ error_example.operation = :get_bank
335
+ error_example.default_hash = {}
336
+
337
+ context 'Error Examples' do
338
+ context error_example do
339
+ describe Exchange.new(:no_blz_error) do
340
+ it_behaves_like 'error scenario'
341
+ end
342
+ end
343
+ end
344
+
345
+
346
+ SOAP_SPEC
347
+ end
348
+
349
+ def shared_examples_content
350
+ <<-SHARE_EG
351
+
352
+ require 'rspec'
353
+
354
+ shared_examples_for 'error scenario' do
355
+ it 'does not have status code of 200' do
356
+ expect(described_class.status_code).not_to eq 200
357
+ end
358
+ end
359
+
360
+ SHARE_EG
361
+ end
362
+
363
+ def soap_template_content
364
+ <<-SOAP_TEMP
365
+ <env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://thomas-bayer.com/blz/" xmlns:env="http://www.w3.org/2003/05/soap-envelope">
366
+ <env:Body>
367
+ <tns:getBank>
368
+ <tns:blz><%= test_values[:blz] || '70070010' %></tns:blz>
369
+ </tns:getBank>
370
+ </env:Body>
371
+ </env:Envelope>
372
+ SOAP_TEMP
373
+ end
374
+
375
+ def default_yaml_content
376
+ <<-DEF_YAML
377
+ small_id:
378
+ blz: 100
379
+
380
+ DEF_YAML
381
+ end
382
+
383
+ def test_wsdl_content
384
+ <<TEST_WSDL
385
+ <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:tns="http://thomas-bayer.com/blz/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" targetNamespace="http://thomas-bayer.com/blz/">
386
+ <wsdl:documentation>BLZService</wsdl:documentation>
387
+ <wsdl:types>
388
+ <xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://thomas-bayer.com/blz/">
389
+ <xsd:element name="getBank" type="tns:getBankType"/>
390
+ <xsd:element name="getBankResponse" type="tns:getBankResponseType"/>
391
+ <xsd:complexType name="getBankType">
392
+ <xsd:sequence>
393
+ <xsd:element name="blz" type="xsd:string"/>
394
+ </xsd:sequence>
395
+ </xsd:complexType>
396
+ <xsd:complexType name="getBankResponseType">
397
+ <xsd:sequence>
398
+ <xsd:element name="details" type="tns:detailsType"/>
399
+ </xsd:sequence>
400
+ </xsd:complexType>
401
+ <xsd:complexType name="detailsType">
402
+ <xsd:sequence>
403
+ <xsd:element minOccurs="0" name="bezeichnung" type="xsd:string"/>
404
+ <xsd:element minOccurs="0" name="bic" type="xsd:string"/>
405
+ <xsd:element minOccurs="0" name="ort" type="xsd:string"/>
406
+ <xsd:element minOccurs="0" name="plz" type="xsd:string"/>
407
+ </xsd:sequence>
408
+ </xsd:complexType>
409
+ </xsd:schema>
410
+ </wsdl:types>
411
+ <wsdl:message name="getBank">
412
+ <wsdl:part name="parameters" element="tns:getBank"/>
413
+ </wsdl:message>
414
+ <wsdl:message name="getBankResponse">
415
+ <wsdl:part name="parameters" element="tns:getBankResponse"/>
416
+ </wsdl:message>
417
+ <wsdl:portType name="BLZServicePortType">
418
+ <wsdl:operation name="getBank">
419
+ <wsdl:input message="tns:getBank"/>
420
+ <!--<wsdl:output message="tns:getBankResponse" wsaw:Action="http://thomas-bayer.com/blz/BLZService/getBankResponse"/>-->
421
+ <wsdl:output message="tns:getBankResponse" wsaw:Action="http://localhost:4567/BLZService/getBankResponse"/>
422
+ </wsdl:operation>
423
+ </wsdl:portType>
424
+ <wsdl:binding name="BLZServiceSOAP11Binding" type="tns:BLZServicePortType">
425
+ <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
426
+ <wsdl:operation name="getBank">
427
+ <soap:operation style="document" soapAction=""/>
428
+ <wsdl:input>
429
+ <soap:body use="literal"/>
430
+ </wsdl:input>
431
+ <wsdl:output>
432
+ <soap:body use="literal"/>
433
+ </wsdl:output>
434
+ </wsdl:operation>
435
+ </wsdl:binding>
436
+ <wsdl:binding name="BLZServiceSOAP12Binding" type="tns:BLZServicePortType">
437
+ <soap12:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
438
+ <wsdl:operation name="getBank">
439
+ <soap12:operation style="document" soapAction=""/>
440
+ <wsdl:input>
441
+ <soap12:body use="literal"/>
442
+ </wsdl:input>
443
+ <wsdl:output>
444
+ <soap12:body use="literal"/>
445
+ </wsdl:output>
446
+ </wsdl:operation>
447
+ </wsdl:binding>
448
+ <wsdl:binding name="BLZServiceHttpBinding" type="tns:BLZServicePortType">
449
+ <http:binding verb="POST"/>
450
+ <wsdl:operation name="getBank">
451
+ <http:operation location="BLZService/getBank"/>
452
+ <wsdl:input>
453
+ <mime:content part="getBank" type="text/xml"/>
454
+ </wsdl:input>
455
+ <wsdl:output>
456
+ <mime:content part="getBank" type="text/xml"/>
457
+ </wsdl:output>
458
+ </wsdl:operation>
459
+ </wsdl:binding>
460
+ <wsdl:service name="BLZService">
461
+ <wsdl:port name="BLZServiceSOAP11port_http" binding="tns:BLZServiceSOAP11Binding">
462
+ <!-- <soap:address location="http://www.thomas-bayer.com/axis2/services/BLZService"/> -->
463
+ <soap:address location="http://localhost:4567/BLZService"/>
464
+ </wsdl:port>
465
+ <wsdl:port name="BLZServiceSOAP12port_http" binding="tns:BLZServiceSOAP12Binding">
466
+ <!--<soap12:address location="http://www.thomas-bayer.com/axis2/services/BLZService"/>-->
467
+ <soap12:address location="http://localhost:4567/BLZService"/>
468
+ </wsdl:port>
469
+ <wsdl:port name="BLZServiceHttpport" binding="tns:BLZServiceHttpBinding">
470
+ <!--<http:address location="http://www.thomas-bayer.com/axis2/services/BLZService"/>-->
471
+ <soap:address location="http://localhost:4567/BLZService"/>
472
+ </wsdl:port>
473
+ </wsdl:service>
474
+ </wsdl:definitions>
475
+
476
+ TEST_WSDL
477
+ end
258
478
 
259
479
  end
260
480
  end
@@ -1,3 +1,3 @@
1
1
  module Soaspec
2
- VERSION = '0.0.76'.freeze
2
+ VERSION = '0.0.77'.freeze
3
3
  end
@@ -39,6 +39,7 @@ the same configuration "
39
39
  spec.add_dependency 'savon', '>= 2' # SOAP
40
40
  spec.add_dependency 'sinatra'
41
41
  spec.add_dependency 'sinatra-basic-auth'
42
+ spec.add_dependency 'thor'
42
43
  spec.add_dependency 'xml-simple', '>= 1.1.5'
43
44
 
44
45
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: soaspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.76
4
+ version: 0.0.77
5
5
  platform: ruby
6
6
  authors:
7
7
  - SamuelGarrattIQA
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-06-12 00:00:00.000000000 Z
11
+ date: 2018-06-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -248,6 +248,20 @@ dependencies:
248
248
  - - ">="
249
249
  - !ruby/object:Gem::Version
250
250
  version: '0'
251
+ - !ruby/object:Gem::Dependency
252
+ name: thor
253
+ requirement: !ruby/object:Gem::Requirement
254
+ requirements:
255
+ - - ">="
256
+ - !ruby/object:Gem::Version
257
+ version: '0'
258
+ type: :runtime
259
+ prerelease: false
260
+ version_requirements: !ruby/object:Gem::Requirement
261
+ requirements:
262
+ - - ">="
263
+ - !ruby/object:Gem::Version
264
+ version: '0'
251
265
  - !ruby/object:Gem::Dependency
252
266
  name: xml-simple
253
267
  requirement: !ruby/object:Gem::Requirement
@@ -267,8 +281,8 @@ description: "Helps to create RSpec specs for 'SOAP' or 'REST' apis. Easily repr
267
281
  email:
268
282
  - samuel.garratt@integrationqa.com
269
283
  executables:
284
+ - soaspec
270
285
  - soaspec-generate
271
- - soaspec-init
272
286
  - soaspec-virtual-server
273
287
  - xml_to_yaml_file
274
288
  extensions: []
@@ -286,8 +300,8 @@ files:
286
300
  - README.md
287
301
  - Rakefile
288
302
  - Todo.md
303
+ - exe/soaspec
289
304
  - exe/soaspec-generate
290
- - exe/soaspec-init
291
305
  - exe/soaspec-virtual-server
292
306
  - exe/xml_to_yaml_file
293
307
  - lib/soaspec.rb
@@ -1,243 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- $LOAD_PATH.unshift File.join(File.dirname(__FILE__), *%w[.. lib])
4
-
5
- require 'savon'
6
- require 'soaspec'
7
-
8
- include Soaspec::ExeHelpers
9
-
10
- puts 'Creating files for soaspec'
11
-
12
- weather_web_service = <<-EOF
13
-
14
- require 'soaspec'
15
-
16
- # This class is not part of the gem. It's an example of a class you can make
17
- # to describe your APIs. Usually this would exist in the 'lib' directory
18
- # Common configuration for the Savon client should go here
19
- class BLZService < Soaspec::SoapHandler
20
- # Add to or override default Savon client options
21
- def savon_options
22
- {
23
- # wsdl: 'http://www.thomas-bayer.com/axis2/services/BLZService?wsdl' # External
24
- wsdl: File.join('spec', 'test_data', 'wsdl', 'get_bank.wsdl')
25
- }
26
- end
27
-
28
- # # Specifying that get_weather_result must be present in the SOAP response
29
- mandatory_elements [:plz]
30
-
31
- # Example of xpath value that must be true for all success scenarios
32
- mandatory_xpath_values 'ns1:bezeichnung' => 'Deutsche Bank'
33
-
34
- # Example of setting an attribute on the root XML element
35
- root_attributes 'Version' => '1' # TODO: Create test on request for this
36
-
37
- end
38
-
39
- EOF
40
-
41
- soap_spec_content = <<-EOF
42
-
43
- require 'spec_helper'
44
-
45
- Soaspec.strip_namespaces = true # This allows namespace not to be used. Be careful with this
46
-
47
- id = '70070010'
48
- # BLZService.new(template_name: 'soap_template') Use this instead of default_hash to use template approach
49
-
50
- context 'Test Examples' do
51
- context BLZService.new('Get Bank', operation: :get_bank, default_hash: { blz: id }) do
52
-
53
- describe Exchange.new(:default) do
54
- it { is_expected.to contain_value id }
55
- it { is_expected.to include_in_body id }
56
- it_behaves_like 'success scenario'
57
- after(:all) { described_class.store(:title, 'bezeichnung') }
58
- end
59
-
60
- describe Exchange.new(:xpath_eg, blz: 100000) do
61
- its(['plz']) { is_expected.to eq '100000' }
62
- it { is_expected.to have_xpath_value '//ns1:bezeichnung' => 'Deutsche Bank' }
63
- context 'Handle retrieving stored value' do
64
- it { is_expected.to have_xpath_value 'bezeichnung' => described_class.retrieve(:title) }
65
- end
66
- end
67
-
68
- describe Exchange.new(:yaml_eg, data_for(:small_id)) do
69
- it_behaves_like 'success scenario'
70
- end
71
-
72
- # Retry for success more for web services that intermittently fail
73
- describe Exchange.new(:short_hand_xpath).retry_for_success do
74
- # Be careful. If you call a method that does not use namespaces, calling one that does may not find the element
75
- its(['ns1:bezeichnung']) { is_expected.to eq 'Deutsche Bank' } # '//' is not required at the beginning
76
- end
77
- describe Exchange.new('Check existence of elements') do
78
- it { is_expected.to have_element_at_xpath '//ns1:bezeichnung' }
79
- it { is_expected.not_to have_element_at_xpath '//ns1:bezeichnung_pretend' }
80
- end
81
-
82
- end
83
- end
84
-
85
- error_example = BLZService.new('Error example')
86
- error_example.operation = :get_bank
87
- error_example.default_hash = {}
88
-
89
- context 'Error Examples' do
90
- context error_example do
91
- describe Exchange.new(:no_blz_error) do
92
- it_behaves_like 'error scenario'
93
- end
94
- end
95
- end
96
-
97
-
98
- EOF
99
-
100
- shared_examples_content = <<-EOF
101
-
102
- require 'rspec'
103
-
104
- shared_examples_for 'error scenario' do
105
- it 'does not have status code of 200' do
106
- expect(described_class.status_code).not_to eq 200
107
- end
108
- end
109
-
110
- EOF
111
-
112
- soap_template_content = <<-EOF
113
- <env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://thomas-bayer.com/blz/" xmlns:env="http://www.w3.org/2003/05/soap-envelope">
114
- <env:Body>
115
- <tns:getBank>
116
- <tns:blz><%= test_values[:blz] || '70070010' %></tns:blz>
117
- </tns:getBank>
118
- </env:Body>
119
- </env:Envelope>
120
- EOF
121
-
122
- default_yaml_content = <<-EOF
123
- small_id:
124
- blz: 100
125
-
126
- EOF
127
-
128
- test_wsdl_content = <<EOF
129
- <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:tns="http://thomas-bayer.com/blz/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" targetNamespace="http://thomas-bayer.com/blz/">
130
- <wsdl:documentation>BLZService</wsdl:documentation>
131
- <wsdl:types>
132
- <xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://thomas-bayer.com/blz/">
133
- <xsd:element name="getBank" type="tns:getBankType"/>
134
- <xsd:element name="getBankResponse" type="tns:getBankResponseType"/>
135
- <xsd:complexType name="getBankType">
136
- <xsd:sequence>
137
- <xsd:element name="blz" type="xsd:string"/>
138
- </xsd:sequence>
139
- </xsd:complexType>
140
- <xsd:complexType name="getBankResponseType">
141
- <xsd:sequence>
142
- <xsd:element name="details" type="tns:detailsType"/>
143
- </xsd:sequence>
144
- </xsd:complexType>
145
- <xsd:complexType name="detailsType">
146
- <xsd:sequence>
147
- <xsd:element minOccurs="0" name="bezeichnung" type="xsd:string"/>
148
- <xsd:element minOccurs="0" name="bic" type="xsd:string"/>
149
- <xsd:element minOccurs="0" name="ort" type="xsd:string"/>
150
- <xsd:element minOccurs="0" name="plz" type="xsd:string"/>
151
- </xsd:sequence>
152
- </xsd:complexType>
153
- </xsd:schema>
154
- </wsdl:types>
155
- <wsdl:message name="getBank">
156
- <wsdl:part name="parameters" element="tns:getBank"/>
157
- </wsdl:message>
158
- <wsdl:message name="getBankResponse">
159
- <wsdl:part name="parameters" element="tns:getBankResponse"/>
160
- </wsdl:message>
161
- <wsdl:portType name="BLZServicePortType">
162
- <wsdl:operation name="getBank">
163
- <wsdl:input message="tns:getBank"/>
164
- <!--<wsdl:output message="tns:getBankResponse" wsaw:Action="http://thomas-bayer.com/blz/BLZService/getBankResponse"/>-->
165
- <wsdl:output message="tns:getBankResponse" wsaw:Action="http://localhost:4567/BLZService/getBankResponse"/>
166
- </wsdl:operation>
167
- </wsdl:portType>
168
- <wsdl:binding name="BLZServiceSOAP11Binding" type="tns:BLZServicePortType">
169
- <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
170
- <wsdl:operation name="getBank">
171
- <soap:operation style="document" soapAction=""/>
172
- <wsdl:input>
173
- <soap:body use="literal"/>
174
- </wsdl:input>
175
- <wsdl:output>
176
- <soap:body use="literal"/>
177
- </wsdl:output>
178
- </wsdl:operation>
179
- </wsdl:binding>
180
- <wsdl:binding name="BLZServiceSOAP12Binding" type="tns:BLZServicePortType">
181
- <soap12:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
182
- <wsdl:operation name="getBank">
183
- <soap12:operation style="document" soapAction=""/>
184
- <wsdl:input>
185
- <soap12:body use="literal"/>
186
- </wsdl:input>
187
- <wsdl:output>
188
- <soap12:body use="literal"/>
189
- </wsdl:output>
190
- </wsdl:operation>
191
- </wsdl:binding>
192
- <wsdl:binding name="BLZServiceHttpBinding" type="tns:BLZServicePortType">
193
- <http:binding verb="POST"/>
194
- <wsdl:operation name="getBank">
195
- <http:operation location="BLZService/getBank"/>
196
- <wsdl:input>
197
- <mime:content part="getBank" type="text/xml"/>
198
- </wsdl:input>
199
- <wsdl:output>
200
- <mime:content part="getBank" type="text/xml"/>
201
- </wsdl:output>
202
- </wsdl:operation>
203
- </wsdl:binding>
204
- <wsdl:service name="BLZService">
205
- <wsdl:port name="BLZServiceSOAP11port_http" binding="tns:BLZServiceSOAP11Binding">
206
- <!-- <soap:address location="http://www.thomas-bayer.com/axis2/services/BLZService"/> -->
207
- <soap:address location="http://localhost:4567/BLZService"/>
208
- </wsdl:port>
209
- <wsdl:port name="BLZServiceSOAP12port_http" binding="tns:BLZServiceSOAP12Binding">
210
- <!--<soap12:address location="http://www.thomas-bayer.com/axis2/services/BLZService"/>-->
211
- <soap12:address location="http://localhost:4567/BLZService"/>
212
- </wsdl:port>
213
- <wsdl:port name="BLZServiceHttpport" binding="tns:BLZServiceHttpBinding">
214
- <!--<http:address location="http://www.thomas-bayer.com/axis2/services/BLZService"/>-->
215
- <soap:address location="http://localhost:4567/BLZService"/>
216
- </wsdl:port>
217
- </wsdl:service>
218
- </wsdl:definitions>
219
- EOF
220
-
221
- create_file(filename: 'Gemfile', content: gem_content)
222
- create_file(filename: 'Rakefile', content: rake_virtual_content)
223
- create_file(filename: 'README.md', content: readme_content)
224
- create_folder 'lib'
225
- create_file(filename: 'lib/blz_service.rb', content: weather_web_service)
226
- create_file filename: 'lib/shared_example.rb', content: shared_examples_content
227
- create_folder 'config'
228
- create_folder 'config/data'
229
- create_file(filename: 'config/data/default.yml', content: default_yaml_content)
230
- create_folder 'spec'
231
- create_folder 'spec/test_data'
232
- create_folder 'spec/test_data/wsdl'
233
- create_file(filename: 'spec/spec_helper.rb', content: spec_helper_content)
234
- create_file(filename: 'spec/soap_spec.rb', content: soap_spec_content)
235
- create_file(filename: 'spec/test_server.rb', content: test_server_content)
236
- create_file(filename: 'spec/test_data/wsdl/get_bank.wsdl', content: test_wsdl_content)
237
- create_folder 'template'
238
- create_file(filename: 'template/soap_template.xml', content: soap_template_content)
239
- create_folder 'logs'
240
-
241
- puts "Run 'bundle install' to install necessary gems"
242
- puts "Run 'rake spec' to run the tests"
243
- puts "Note: Setup runs Sinatra for Test Service on port 4567 by default. Change Rakefile 'start_test_server' task to update this"