soaspec 0.1.5 → 0.1.6

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.
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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 4a5dcd5cdd343b6810ee2db2355f21e54f656d0c
4
- data.tar.gz: 34e57ec477e54a15732b2c2b790450f2c27fc758
2
+ SHA256:
3
+ metadata.gz: 1e6f5ddf18a44208e620f9c1e4c11721260af6e065dadc234cced8975c07d39e
4
+ data.tar.gz: 521bc07ba5261761a53cd5d9e701af4a16768f3bcb0f0dbe4de039c7ba7e92f5
5
5
  SHA512:
6
- metadata.gz: a42cbc94cebdb981b04414e77ea422860776fbe78c85068e2168500164a2bb64609bec8a88e070e41a049148cad0faa78d94a323a892cc15e989617112441196
7
- data.tar.gz: 6e90d5d6d7ef41900b2c1a1361ae6790a253521a0f3b298f8b4c35109a745410de4ac8fef3c48d25e6ec81b0325d543cd85ab1544bc07bb82600d5c1d9b2a6d8
6
+ metadata.gz: 27e4cbfd225fb28720df84062cc232443bcd4cae64e45d361cd5104c24083f40452272f1d558bf71a11ff4ac39a6efcb356a4138c7ad92a93e4af8d58c665f15
7
+ data.tar.gz: 606453ce3a72c8c8e3e7d8cd84bb88b75b6c7ce4f537ebb47fd5f82e6dd0187f0f31a0cb0b6b4936ef0e7587c3b292779072efdf52b31442db6bcb1665e0cbc5
data/.gitignore CHANGED
@@ -1,15 +1,15 @@
1
- /.bundle/
2
- /.yardoc
3
- /_yardoc/
4
- /coverage/
5
- /doc/
6
- /logs/
7
- /pkg/
8
- /spec/reports/
9
- /tmp/
10
- /.idea/
11
- Gemfile.lock
12
- coverage
13
-
14
- # rspec failure tracking
15
- .rspec_status
1
+ /.bundle/
2
+ /.yardoc
3
+ /_yardoc/
4
+ /coverage/
5
+ /doc/
6
+ /logs/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+ /.idea/
11
+ Gemfile.lock
12
+ coverage
13
+
14
+ # rspec failure tracking
15
+ .rspec_status
@@ -1,49 +1,49 @@
1
- before_script:
2
- - apt-get update -qq && apt-get install -y -qq sqlite3 libsqlite3-dev nodejs
3
- - ruby -v
4
- - which ruby
5
- - gem install bundler rake --no-ri --no-rdoc
6
- - bundle install --jobs $(nproc) "${FLAGS[@]}"
7
-
8
- rspec:
9
- stage: test
10
- script:
11
- - bundle exec rake spec
12
- artifacts:
13
- paths:
14
- - coverage/
15
-
16
- cucumber:
17
- stage: test
18
- script:
19
- - bundle exec cucumber
20
-
21
- code_quality:
22
- image: docker:stable
23
- variables:
24
- DOCKER_DRIVER: overlay2
25
- allow_failure: true
26
- services:
27
- - docker:stable-dind
28
- script:
29
- - export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
30
- - docker run
31
- --env SOURCE_CODE="$PWD"
32
- --volume "$PWD":/code
33
- --volume /var/run/docker.sock:/var/run/docker.sock
34
- "registry.gitlab.com/gitlab-org/security-products/codequality:$SP_VERSION" /code
35
- artifacts:
36
- paths: [gl-code-quality-report.json]
37
-
38
- pages:
39
- stage: deploy
40
- dependencies:
41
- - rspec
42
- script:
43
- - mv coverage/ public/
44
- artifacts:
45
- paths:
46
- - public
47
- expire_in: 30 days
48
- only:
1
+ before_script:
2
+ - apt-get update -qq && apt-get install -y -qq sqlite3 libsqlite3-dev nodejs
3
+ - ruby -v
4
+ - which ruby
5
+ - gem install bundler rake --no-ri --no-rdoc
6
+ - bundle install --jobs $(nproc) "${FLAGS[@]}"
7
+
8
+ rspec:
9
+ stage: test
10
+ script:
11
+ - bundle exec rake spec
12
+ artifacts:
13
+ paths:
14
+ - coverage/
15
+
16
+ cucumber:
17
+ stage: test
18
+ script:
19
+ - bundle exec cucumber
20
+
21
+ code_quality:
22
+ image: docker:stable
23
+ variables:
24
+ DOCKER_DRIVER: overlay2
25
+ allow_failure: true
26
+ services:
27
+ - docker:stable-dind
28
+ script:
29
+ - export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
30
+ - docker run
31
+ --env SOURCE_CODE="$PWD"
32
+ --volume "$PWD":/code
33
+ --volume /var/run/docker.sock:/var/run/docker.sock
34
+ "registry.gitlab.com/gitlab-org/security-products/codequality:$SP_VERSION" /code
35
+ artifacts:
36
+ paths: [gl-code-quality-report.json]
37
+
38
+ pages:
39
+ stage: deploy
40
+ dependencies:
41
+ - rspec
42
+ script:
43
+ - mv coverage/ public/
44
+ artifacts:
45
+ paths:
46
+ - public
47
+ expire_in: 30 days
48
+ only:
49
49
  - master
data/.rspec CHANGED
@@ -1,3 +1,3 @@
1
- --require spec_helper
2
- --format documentation
3
- --color
1
+ --require spec_helper
2
+ --format documentation
3
+ --color
@@ -1,2 +1,2 @@
1
- Metrics/LineLength:
2
- Max: 154
1
+ Metrics/LineLength:
2
+ Max: 154
@@ -1,74 +1,74 @@
1
- # Contributor Covenant Code of Conduct
2
-
3
- ## Our Pledge
4
-
5
- In the interest of fostering an open and welcoming environment, we as
6
- contributors and maintainers pledge to making participation in our project and
7
- our community a harassment-free experience for everyone, regardless of age, body
8
- size, disability, ethnicity, gender identity and expression, level of experience,
9
- nationality, personal appearance, race, religion, or sexual identity and
10
- orientation.
11
-
12
- ## Our Standards
13
-
14
- Examples of behavior that contributes to creating a positive environment
15
- include:
16
-
17
- * Using welcoming and inclusive language
18
- * Being respectful of differing viewpoints and experiences
19
- * Gracefully accepting constructive criticism
20
- * Focusing on what is best for the community
21
- * Showing empathy towards other community members
22
-
23
- Examples of unacceptable behavior by participants include:
24
-
25
- * The use of sexualized language or imagery and unwelcome sexual attention or
26
- advances
27
- * Trolling, insulting/derogatory comments, and personal or political attacks
28
- * Public or private harassment
29
- * Publishing others' private information, such as a physical or electronic
30
- address, without explicit permission
31
- * Other conduct which could reasonably be considered inappropriate in a
32
- professional setting
33
-
34
- ## Our Responsibilities
35
-
36
- Project maintainers are responsible for clarifying the standards of acceptable
37
- behavior and are expected to take appropriate and fair corrective action in
38
- response to any instances of unacceptable behavior.
39
-
40
- Project maintainers have the right and responsibility to remove, edit, or
41
- reject comments, commits, code, wiki edits, issues, and other contributions
42
- that are not aligned to this Code of Conduct, or to ban temporarily or
43
- permanently any contributor for other behaviors that they deem inappropriate,
44
- threatening, offensive, or harmful.
45
-
46
- ## Scope
47
-
48
- This Code of Conduct applies both within project spaces and in public spaces
49
- when an individual is representing the project or its community. Examples of
50
- representing a project or community include using an official project e-mail
51
- address, posting via an official social media account, or acting as an appointed
52
- representative at an online or offline event. Representation of a project may be
53
- further defined and clarified by project maintainers.
54
-
55
- ## Enforcement
56
-
57
- Instances of abusive, harassing, or otherwise unacceptable behavior may be
58
- reported by contacting the project team at samuel.garratt@integrationqa.com. All
59
- complaints will be reviewed and investigated and will result in a response that
60
- is deemed necessary and appropriate to the circumstances. The project team is
61
- obligated to maintain confidentiality with regard to the reporter of an incident.
62
- Further details of specific enforcement policies may be posted separately.
63
-
64
- Project maintainers who do not follow or enforce the Code of Conduct in good
65
- faith may face temporary or permanent repercussions as determined by other
66
- members of the project's leadership.
67
-
68
- ## Attribution
69
-
70
- This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71
- available at [http://contributor-covenant.org/version/1/4][version]
72
-
73
- [homepage]: http://contributor-covenant.org
74
- [version]: http://contributor-covenant.org/version/1/4/
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ In the interest of fostering an open and welcoming environment, we as
6
+ contributors and maintainers pledge to making participation in our project and
7
+ our community a harassment-free experience for everyone, regardless of age, body
8
+ size, disability, ethnicity, gender identity and expression, level of experience,
9
+ nationality, personal appearance, race, religion, or sexual identity and
10
+ orientation.
11
+
12
+ ## Our Standards
13
+
14
+ Examples of behavior that contributes to creating a positive environment
15
+ include:
16
+
17
+ * Using welcoming and inclusive language
18
+ * Being respectful of differing viewpoints and experiences
19
+ * Gracefully accepting constructive criticism
20
+ * Focusing on what is best for the community
21
+ * Showing empathy towards other community members
22
+
23
+ Examples of unacceptable behavior by participants include:
24
+
25
+ * The use of sexualized language or imagery and unwelcome sexual attention or
26
+ advances
27
+ * Trolling, insulting/derogatory comments, and personal or political attacks
28
+ * Public or private harassment
29
+ * Publishing others' private information, such as a physical or electronic
30
+ address, without explicit permission
31
+ * Other conduct which could reasonably be considered inappropriate in a
32
+ professional setting
33
+
34
+ ## Our Responsibilities
35
+
36
+ Project maintainers are responsible for clarifying the standards of acceptable
37
+ behavior and are expected to take appropriate and fair corrective action in
38
+ response to any instances of unacceptable behavior.
39
+
40
+ Project maintainers have the right and responsibility to remove, edit, or
41
+ reject comments, commits, code, wiki edits, issues, and other contributions
42
+ that are not aligned to this Code of Conduct, or to ban temporarily or
43
+ permanently any contributor for other behaviors that they deem inappropriate,
44
+ threatening, offensive, or harmful.
45
+
46
+ ## Scope
47
+
48
+ This Code of Conduct applies both within project spaces and in public spaces
49
+ when an individual is representing the project or its community. Examples of
50
+ representing a project or community include using an official project e-mail
51
+ address, posting via an official social media account, or acting as an appointed
52
+ representative at an online or offline event. Representation of a project may be
53
+ further defined and clarified by project maintainers.
54
+
55
+ ## Enforcement
56
+
57
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
58
+ reported by contacting the project team at samuel.garratt@integrationqa.com. All
59
+ complaints will be reviewed and investigated and will result in a response that
60
+ is deemed necessary and appropriate to the circumstances. The project team is
61
+ obligated to maintain confidentiality with regard to the reporter of an incident.
62
+ Further details of specific enforcement policies may be posted separately.
63
+
64
+ Project maintainers who do not follow or enforce the Code of Conduct in good
65
+ faith may face temporary or permanent repercussions as determined by other
66
+ members of the project's leadership.
67
+
68
+ ## Attribution
69
+
70
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71
+ available at [http://contributor-covenant.org/version/1/4][version]
72
+
73
+ [homepage]: http://contributor-covenant.org
74
+ [version]: http://contributor-covenant.org/version/1/4/
data/ChangeLog CHANGED
@@ -1,401 +1,405 @@
1
- Version 0.1.5
2
- * Enhancements
3
- * Package spec changes status after a post is made. Help to illustrate scenario where status changes
4
- * Record last exchange made for debugging purposes in 'last_exchange'
5
-
6
- Version 0.1.4
7
- * Enhancements
8
- * create_file method create folders automatically if necessary
9
- * Package spec to help learn testing for items in a list
10
- * Added docs for soaspec-virtual-server
11
-
12
- Version 0.1.3
13
- * Enhancements
14
- * Ability to set template folder
15
- * Json Path handle multiple paths separated by commas
16
-
17
- Version 0.1.1
18
- * Enhancements
19
- * Added ability to turn off logs (helpful if making a lot of API calls)
20
-
21
- Version 0.1.0
22
- * Enhancements
23
- * Cleaned up unit tests for WSDL generator. Won't bother for SOAP ComplexType for now as I'm not needing this and it looks like Savon 3 will create example requests anyway
24
- * Put SOAP Basic Auth in Example
25
- * Added template handling for REST handler
26
-
27
- Version 0.0.89
28
- * Enhancements
29
- * Move more functionality out of soaspec exe and into WsdlGenerator. Started unit tests for it
30
-
31
- Version 0.0.88
32
- * Bug Fix
33
- * Corrected '_format' variable name that was breaking failing to find rest element
34
-
35
- Version 0.0.87
36
- * Bug Fix
37
- * Fixed incorrect logging for when 'debug_oauth' is off
38
-
39
- Version 0.0.86
40
- * Enhancements
41
- * 'debug_oauth' attribute used to toggle showing params used in retrieving access token
42
-
43
- Version 0.0.85
44
- * Enhancements
45
- * Interpret XML and JSON better so that JSON with XML in it's tags is catered for
46
-
47
- Version 0.0.84
48
- * Enhancements
49
- * 'strip_namespaces' defined in exchange handlers not globally which makes more sense
50
- * Created 'to_hash' method for Exchange that returns a Hash of XML or JSON response (primarily for REST)
51
-
52
- Version 0.0.83
53
- * Enhancements
54
- * Handle BOM or other characters that could be at start of xml of json response string
55
-
56
- Version 0.0.82
57
- * Enhancements
58
- * Fixed namespace handling for REST
59
-
60
- Version 0.0.81
61
- * Enhancements
62
- * SoapHandler - define exchange method for each SOAP operation. See `one_off_spec` for example
63
-
64
- Version 0.0.80
65
- * Enhancements
66
- * `values_from_path` method on `RestHandler` to easily extract multiple values for an xpath or json path
67
- * Bug fix
68
- * Support response that has white space surrounding message
69
-
70
- Version 0.0.79
71
- * Enhancements
72
- * `values_from_path` method on `SoapHandler` to easily extract multiple values for an xpath
73
- * If `id` is specified on associated factory, FactoryBot will populate the primary factory with that id. See `rest/factory_spec` for eg
74
-
75
- Version 0.0.78
76
- * Enhancements
77
- * Use 'thor' for `soaspec generate`, allowing less prompt and more options through command line. Added tests for it
78
-
79
- Version 0.0.77
80
- * Enhancements
81
- * Use 'thor' for soaspec-init binary changing it to be `soaspec init`. Will update `soaspec-generate` in next version
82
- * Put pause of 1/2 a second for each API retry. Often retry is too quick otherwise
83
-
84
- Version 0.0.76
85
- * Bug fix
86
- * Fixed BLZService scenario on soaspec-virtual-server
87
- * Fixed return value for retry_for_success failure
88
- * Enhancements
89
- * Added method to indicate a factory create should actually return a failure status
90
-
91
- Version 0.0.75
92
- * Enhancements
93
- * For Factory created methods, set retry_for_success to true. Allow for this to be set at Exchange class level
94
-
95
- Version 0.0.74
96
- * Enhancements
97
- * RestHandler, enable api username to be set upon initialisation
98
-
99
- Version 0.0.73
100
- * Enhancements
101
- * Added 'default_handler' method with which define an exchange_handler to be created when an exchange is initialized
102
- * Refactoring
103
- * Use `@exchange_handler` instead of `@api_class` which is more consistent
104
-
105
- Version 0.0.72
106
- * Enhancements
107
- * Add ability to convert XML response to lower case for simpler xpath searching
108
-
109
- Version 0.0.71
110
- * Bug fix
111
- * Got exe 'soaspec-virtual-server' working
112
-
113
- Version 0.0.70
114
- * Enhancements
115
- * Added api_username method to REST handler to change user for an API during runtime
116
-
117
- Version 0.0.69
118
- * Enhancements
119
- * Calculate base_url ERB at time of handler's first request (Rather than when initialised).
120
- - Important for where base url uses ERB and so does oauth whose user may change
121
- * Demonstrate using oauth via spec
122
- * Demonstrate using basic auth via spec
123
-
124
- Version 0.0.68
125
- * Enhancements
126
- * Use ERB to calculate base_url for dynamic bases
127
-
128
- Version 0.0.67
129
- * Enhancements
130
- * Handle scenario where Request key is unconventional and not PascalCase key snakecase convert would break it
131
- - if first character of key is captial, PascalCase conversion is ignored
132
-
133
- Version 0.0.66
134
- * Enhancements
135
- * Added method to convert REST request keys to 'PascalCase' if 'pascal_keys' is set to true
136
- * This also converts paths obtaining elements to 'PascalCase' if they're simple and have no starting '//' or '$..'
137
-
138
- Version 0.0.65
139
- * Enhancements
140
- * Added ability to set 'suburl' and 'method' in Exchange accessor. Will be used in FactoryBot later
141
-
142
- Version 0.0.64
143
- * Enhancements
144
- * Got FactoryBot working for RestHandler. See specs for example
145
- * Add element? method to exchange to make it easier to check element is at path
146
- * Define 'element_name?' created when element is defined on ExchangeHandler
147
-
148
- Version 0.0.63
149
- * Enhancements
150
- * Interpret ERB for oauth credentials within oauth response. Needed for when params like 'username' can change in runtime
151
-
152
- Version 0.0.62
153
- * Enhancements
154
- * Use q parameter to simply to query parameters on REST requests
155
-
156
- Version 0.0.61
157
- * Enhancements
158
- * Retrieving oauth response try 3 times (to bypass intermittent errors)
159
-
160
- Version 0.0.60
161
- * Enhancements
162
- * Allow for factory_bot with automatic setting of missing setter methods
163
-
164
- Version 0.0.59
165
- * Enhancements
166
- * Perform ERB in headers to make using access_token using 'headers' possible
167
- * Try better way of testing `soaspec-init`.
168
-
169
- Version 0.0.58
170
- * Enhancements
171
- * Add method to set parts of the request body through `exchange[key]= 'value'`
172
- * Added example of Cucumber feature demonstrating this
173
-
174
- Version 0.0.56
175
- * Bug fix
176
- * Handle creating of traffic.log file within lib properly
177
-
178
- Version 0.0.55
179
- * Enhancements
180
- * Made `soaspec-virtual-server` exe to handle self served test server. Will be used in wiki tutorial
181
-
182
- Version 0.0.54
183
- * Enhancements
184
- * Make 'headers' accessor for setting headers on RestHandler easier
185
-
186
- Version 0.0.53
187
- * Enhancements
188
- * Make attribute possible for REST methods as well (as they can use XML too)
189
- * For non XML, non JSON responses, handle with regex or key for a Hash
190
-
191
- Version 0.0.52
192
- * Enhancements
193
- * Now have 'attribute' accessor making it easy to access an attribute from a response
194
-
195
- Version 0.0.51
196
- * Enhancements
197
- * Allow for 'default_hash=' method to be used in RestHandler. See 'many_calls_one_method_spec' for example
198
- * Got 'element' accessor working correctly (See soap/hash_spec.rb + 'blz_service' for example)
199
-
200
- Version 0.0.50
201
- * Enhancements
202
- * Able to use ERB in oauth parameters and extract oauth hash with 'oauth_response' method defined by 'oauth_file'
203
-
204
- Version 0.0.47
205
- * Bug Fix
206
- * Using 'Strip namespace' handle both namespace or not dependent if used
207
-
208
- Version 0.0.47
209
- * Enhancements
210
- * 'success scenarios' shared eg and 'retry_for_success' exchange method's status codes include 200..299, not just 200.
211
-
212
- Version 0.0.46
213
- * Enhancements
214
- * 'include_key?' method use 'value_from_path'. Iterating through Hashes with 'include_key?' wouldn't work as expected with some JSON bodies with my current implementation
215
-
216
- Version 0.0.45
217
- * Enhancements
218
- * No need to use 'name' when creating SoapHandler and RestHandler. Default is ClassName
219
-
220
- Version 0.0.44
221
- * Enhancements
222
- * Test Server log to logs/test_server.log
223
- * Simplify ExchangeHandler storing and retrieving values (see soap/hash_spec.rb)
224
- * Make setting SoapHandler operation and other params possible through object instantiation. Less code needed
225
-
226
- Version 0.0.43
227
- * Bug fix
228
- * Remove Environment namespace from 'soaspec-generate'
229
- * Enhancements
230
- * Convenience methods for REST calls in which you can call something like 'ClassInheritingRestHandler.get(params)' See 'spec/soaspec/rest/one_off_spec.rb' for details
231
-
232
- Version 0.0.42
233
- * Enhancements
234
- * Set Soaspec.api_handler work class is created. No need to call '.to_s' method
235
-
236
- Version 0.0.41
237
- * Bug fix
238
- * soaspec-generate not designed to work with virtual service. Rakefile not try to set that up
239
-
240
- Version 0.0.40
241
- * Enhancements
242
- * soaspec-generate now handle a wsdl without parameters in the operation and rather look up input element type
243
- * test_server virtual service now handle scenario where bank is not found and test made for that
244
-
245
- Version 0.0.39
246
- * Spec
247
- * Create task to use soaspec-init to create test structure and test it.
248
- * Enhancements
249
- * Take away need to use Environment namespace
250
- * Added response headers to REST response log
251
- * Now using virtual Web Service for SOAP
252
-
253
- Version 0.0.38
254
- * Bug fix
255
- * Fixed error in soaspec-generate. TODO: Test this in CI
256
-
257
- Version 0.0.37 / 2018-3-16
258
- * Enhancements
259
- * Made retry_for_success method to keep making request until 200 status code if set on exchange
260
- * If '$' not included for json_path, by default a '$..' is added for convenience
261
-
262
- Version 0.0.36 / 2018-3-15
263
- * Bug fix
264
- * Make test name log in correct place
265
- * Enhancements
266
- * Made accessor 'mandatory_json_values' to make it easier to share mandatory json path - value pairs
267
- * Created 'store' method for handler through which one can store a value and use it later on it in the same context
268
- * Deprecated
269
- * Removed old 'mandatory_elements', 'mandatory_xpath_values' overridden way of handling data for favor of new way of it setting 'expected_mandatory_elements'
270
-
271
- Version 0.0.35 / 2018-3-13
272
- * Enhancements
273
- * Handle array of JSON hashes starting with '['
274
- * Handle patch and put methods with data for REST
275
-
276
- Version 0.0.34 / 2018-3-12
277
- * Enhancements
278
- * Add oauth2 and oauth2_file methods to make it easy to load oauth2 parameters. Still a work in progress to handle all oauth2 variations
279
-
280
- Version 0.0.33 / 2018-3-9
281
- * Enhancements
282
- * Use 'jsonpath' instead of dig to check JSON responses. Much better for finding complex paths
283
-
284
- Version 0.0.32 / 2018-3-9
285
- * Enhancements
286
- * Made :body key in hash that can be used to use JSON.generate for a payload when using rest_handler exchanges
287
-
288
- Version 0.0.31 / 2018-3-8
289
- * Enhancements
290
- * Compacted unit tests for exchange handler
291
- * Implemented include_key? and find via xpath for REST handler. See specs
292
-
293
- Version 0.0.30 / 2018-3-6
294
- * Bug fix
295
- * Made generated class file name in soaspec-generate snakecase (was CamelCase)
296
-
297
- Version 0.0.29 / 2018-3-6
298
- * Refactorings
299
- * Base 'test' class from 'Tester' to 'ExhangeHandler'
300
- * Made default Soap Handler class 'SoapHandler' and making use of 'BasicSoapHandler' deprecated
301
-
302
- Version 0.0.28 / 2018-3-6
303
- * Enhancements
304
- * Added not_found matcher and used in spec example
305
- * Only call request upon first need of an Exchange response. This means test request is made as part of 'it' rather than in describe
306
-
307
- Version 0.0.27 / 2018-3-5
308
- * Bug fix
309
- * Fixed log file not present error
310
- * Updated exe binaries to use latest format
311
-
312
- Version 0.0.26 / 2018-3-5
313
- * Refactorings
314
- * Using methods to define mandatory_elements, mandatory_xpath_values, root_attributes, base_url. Please see specs. This is shorter to type and clearer
315
-
316
- Version 0.0.25 / 2018-2-25
317
- * Enhancements
318
- * Updated rest_handler to convert JSON and XML into Hash and use it in 'contain_value'. This still needs work.
319
- * Showed example of workflow using 'pet' url
320
-
321
- Version 0.0.24 / 2018-2-25
322
- * Enhancements
323
- * Added to soaspec-generate more types when creating YAML with data (int, boolean, double and custom enumeration).
324
- * Binaries use common module (exe-helper) to reduce repeatability
325
- * TODO: soaspec-generate read xsd's mentioned to import in WSDL schema
326
-
327
- Version 0.0.23 / 2018-2-23
328
- * Enhancements
329
- * Created RestHandler class (Very messy and ugly still) to handle REST requests using style used for SOAP using Rest Client resource
330
-
331
- Version 0.0.22 / 2018-2-15
332
- * Enhancements
333
- * Created new 'include_in_body' matcher to find value anywhere in response body (which could be a substring of an element)
334
-
335
- Version 0.0.21 / 2018-1-29
336
- * Enhancements
337
- * Added soaspec-generate - still in POC mode to generate files from a WSDL.
338
- * Added test_wsdl to start at validating xml according to WSDL. Still needs polishing
339
-
340
- Version 0.0.20 / 2018-1-26
341
- * Enhancements
342
- * Added ability to strip namespaces 'Soaspec::Environment.strip_namespaces = true'. See spec for example
343
- * Fixes
344
- * Made custom error and used it to make 'have_element_at_xpath' work when negated
345
-
346
- Version 0.0.19 / 2018-1-25
347
- * Enhancements
348
- * Added own shared examples to init script and to in built specs
349
-
350
- Version 0.0.18 / 2018-1-25
351
- * Fixes
352
- * Updated 'soaspec-init' so that it works again.
353
- * Enhancements
354
- * Added example showing representing data for request in YAML
355
-
356
- Version 0.0.17 / 2018-1-25
357
- * Fixes
358
- * Updated hash search so that it handles Array
359
-
360
- Version 0.0.16 / 2018-1-23
361
- * Fixes
362
- * Corrected logic of auto convert to hash. Previous version did not handle test specific values correctly
363
-
364
- Version 0.0.15 / 2018-1-23
365
- * Fixes
366
- * Updated code to convert string key in Savon request to key automatically by default before passing to Savon. This saves
367
- the user doing the conversion themselves.
368
-
369
- Version 0.0.14 / 2018-1-23
370
- * Fixes
371
- * Updated 'xml_to_yaml_file' exe to clean up YAML more. No more array for Hash value. Indenting needs work though.
372
- Now it's more like something you can read and pass into Savon request.
373
-
374
- Version 0.0.13 / 2018-1-23
375
- * Enhancements
376
- * Executable to create xml file from yaml
377
-
378
- Version 0.0.12 / 2018/1-22
379
- * Enhancements
380
- * Example name added to log file
381
-
382
- Version 0.0.10 / 2018-1-21
383
- * Enhancements
384
- * Added [] method to perform xpath assertion
385
- * Using Savon xpath. No need to explicitly provide namespace for xpath
386
-
387
- Version 0.0.9 / 2018-1-20
388
- * Refactoring
389
- * class_options -> savon_options - More specific
390
- * default_operation -> operation - Not default anymore so better not in name
391
- * Enhancements
392
- * Made mandatory_xpath_values method to add to 'success scenarios' shared example
393
-
394
- Version 0.0.8 / 2018-1-19
395
- * Enhancements
396
- * Added root_attributes method to add attribute to the root class
397
-
398
- Version 0.0.7 / 2018-1-19
399
- * Enhancements
400
- * Added contain_key matcher
1
+ Version 0.1.6
2
+ * Enhancements
3
+ * Bind localhost to 0.0.0.0 so service is accessible outside localhost
4
+
5
+ Version 0.1.5
6
+ * Enhancements
7
+ * Package spec changes status after a post is made. Help to illustrate scenario where status changes
8
+ * Record last exchange made for debugging purposes in 'last_exchange'
9
+
10
+ Version 0.1.4
11
+ * Enhancements
12
+ * create_file method create folders automatically if necessary
13
+ * Package spec to help learn testing for items in a list
14
+ * Added docs for soaspec-virtual-server
15
+
16
+ Version 0.1.3
17
+ * Enhancements
18
+ * Ability to set template folder
19
+ * Json Path handle multiple paths separated by commas
20
+
21
+ Version 0.1.1
22
+ * Enhancements
23
+ * Added ability to turn off logs (helpful if making a lot of API calls)
24
+
25
+ Version 0.1.0
26
+ * Enhancements
27
+ * Cleaned up unit tests for WSDL generator. Won't bother for SOAP ComplexType for now as I'm not needing this and it looks like Savon 3 will create example requests anyway
28
+ * Put SOAP Basic Auth in Example
29
+ * Added template handling for REST handler
30
+
31
+ Version 0.0.89
32
+ * Enhancements
33
+ * Move more functionality out of soaspec exe and into WsdlGenerator. Started unit tests for it
34
+
35
+ Version 0.0.88
36
+ * Bug Fix
37
+ * Corrected '_format' variable name that was breaking failing to find rest element
38
+
39
+ Version 0.0.87
40
+ * Bug Fix
41
+ * Fixed incorrect logging for when 'debug_oauth' is off
42
+
43
+ Version 0.0.86
44
+ * Enhancements
45
+ * 'debug_oauth' attribute used to toggle showing params used in retrieving access token
46
+
47
+ Version 0.0.85
48
+ * Enhancements
49
+ * Interpret XML and JSON better so that JSON with XML in it's tags is catered for
50
+
51
+ Version 0.0.84
52
+ * Enhancements
53
+ * 'strip_namespaces' defined in exchange handlers not globally which makes more sense
54
+ * Created 'to_hash' method for Exchange that returns a Hash of XML or JSON response (primarily for REST)
55
+
56
+ Version 0.0.83
57
+ * Enhancements
58
+ * Handle BOM or other characters that could be at start of xml of json response string
59
+
60
+ Version 0.0.82
61
+ * Enhancements
62
+ * Fixed namespace handling for REST
63
+
64
+ Version 0.0.81
65
+ * Enhancements
66
+ * SoapHandler - define exchange method for each SOAP operation. See `one_off_spec` for example
67
+
68
+ Version 0.0.80
69
+ * Enhancements
70
+ * `values_from_path` method on `RestHandler` to easily extract multiple values for an xpath or json path
71
+ * Bug fix
72
+ * Support response that has white space surrounding message
73
+
74
+ Version 0.0.79
75
+ * Enhancements
76
+ * `values_from_path` method on `SoapHandler` to easily extract multiple values for an xpath
77
+ * If `id` is specified on associated factory, FactoryBot will populate the primary factory with that id. See `rest/factory_spec` for eg
78
+
79
+ Version 0.0.78
80
+ * Enhancements
81
+ * Use 'thor' for `soaspec generate`, allowing less prompt and more options through command line. Added tests for it
82
+
83
+ Version 0.0.77
84
+ * Enhancements
85
+ * Use 'thor' for soaspec-init binary changing it to be `soaspec init`. Will update `soaspec-generate` in next version
86
+ * Put pause of 1/2 a second for each API retry. Often retry is too quick otherwise
87
+
88
+ Version 0.0.76
89
+ * Bug fix
90
+ * Fixed BLZService scenario on soaspec-virtual-server
91
+ * Fixed return value for retry_for_success failure
92
+ * Enhancements
93
+ * Added method to indicate a factory create should actually return a failure status
94
+
95
+ Version 0.0.75
96
+ * Enhancements
97
+ * For Factory created methods, set retry_for_success to true. Allow for this to be set at Exchange class level
98
+
99
+ Version 0.0.74
100
+ * Enhancements
101
+ * RestHandler, enable api username to be set upon initialisation
102
+
103
+ Version 0.0.73
104
+ * Enhancements
105
+ * Added 'default_handler' method with which define an exchange_handler to be created when an exchange is initialized
106
+ * Refactoring
107
+ * Use `@exchange_handler` instead of `@api_class` which is more consistent
108
+
109
+ Version 0.0.72
110
+ * Enhancements
111
+ * Add ability to convert XML response to lower case for simpler xpath searching
112
+
113
+ Version 0.0.71
114
+ * Bug fix
115
+ * Got exe 'soaspec-virtual-server' working
116
+
117
+ Version 0.0.70
118
+ * Enhancements
119
+ * Added api_username method to REST handler to change user for an API during runtime
120
+
121
+ Version 0.0.69
122
+ * Enhancements
123
+ * Calculate base_url ERB at time of handler's first request (Rather than when initialised).
124
+ - Important for where base url uses ERB and so does oauth whose user may change
125
+ * Demonstrate using oauth via spec
126
+ * Demonstrate using basic auth via spec
127
+
128
+ Version 0.0.68
129
+ * Enhancements
130
+ * Use ERB to calculate base_url for dynamic bases
131
+
132
+ Version 0.0.67
133
+ * Enhancements
134
+ * Handle scenario where Request key is unconventional and not PascalCase key snakecase convert would break it
135
+ - if first character of key is captial, PascalCase conversion is ignored
136
+
137
+ Version 0.0.66
138
+ * Enhancements
139
+ * Added method to convert REST request keys to 'PascalCase' if 'pascal_keys' is set to true
140
+ * This also converts paths obtaining elements to 'PascalCase' if they're simple and have no starting '//' or '$..'
141
+
142
+ Version 0.0.65
143
+ * Enhancements
144
+ * Added ability to set 'suburl' and 'method' in Exchange accessor. Will be used in FactoryBot later
145
+
146
+ Version 0.0.64
147
+ * Enhancements
148
+ * Got FactoryBot working for RestHandler. See specs for example
149
+ * Add element? method to exchange to make it easier to check element is at path
150
+ * Define 'element_name?' created when element is defined on ExchangeHandler
151
+
152
+ Version 0.0.63
153
+ * Enhancements
154
+ * Interpret ERB for oauth credentials within oauth response. Needed for when params like 'username' can change in runtime
155
+
156
+ Version 0.0.62
157
+ * Enhancements
158
+ * Use q parameter to simply to query parameters on REST requests
159
+
160
+ Version 0.0.61
161
+ * Enhancements
162
+ * Retrieving oauth response try 3 times (to bypass intermittent errors)
163
+
164
+ Version 0.0.60
165
+ * Enhancements
166
+ * Allow for factory_bot with automatic setting of missing setter methods
167
+
168
+ Version 0.0.59
169
+ * Enhancements
170
+ * Perform ERB in headers to make using access_token using 'headers' possible
171
+ * Try better way of testing `soaspec-init`.
172
+
173
+ Version 0.0.58
174
+ * Enhancements
175
+ * Add method to set parts of the request body through `exchange[key]= 'value'`
176
+ * Added example of Cucumber feature demonstrating this
177
+
178
+ Version 0.0.56
179
+ * Bug fix
180
+ * Handle creating of traffic.log file within lib properly
181
+
182
+ Version 0.0.55
183
+ * Enhancements
184
+ * Made `soaspec-virtual-server` exe to handle self served test server. Will be used in wiki tutorial
185
+
186
+ Version 0.0.54
187
+ * Enhancements
188
+ * Make 'headers' accessor for setting headers on RestHandler easier
189
+
190
+ Version 0.0.53
191
+ * Enhancements
192
+ * Make attribute possible for REST methods as well (as they can use XML too)
193
+ * For non XML, non JSON responses, handle with regex or key for a Hash
194
+
195
+ Version 0.0.52
196
+ * Enhancements
197
+ * Now have 'attribute' accessor making it easy to access an attribute from a response
198
+
199
+ Version 0.0.51
200
+ * Enhancements
201
+ * Allow for 'default_hash=' method to be used in RestHandler. See 'many_calls_one_method_spec' for example
202
+ * Got 'element' accessor working correctly (See soap/hash_spec.rb + 'blz_service' for example)
203
+
204
+ Version 0.0.50
205
+ * Enhancements
206
+ * Able to use ERB in oauth parameters and extract oauth hash with 'oauth_response' method defined by 'oauth_file'
207
+
208
+ Version 0.0.47
209
+ * Bug Fix
210
+ * Using 'Strip namespace' handle both namespace or not dependent if used
211
+
212
+ Version 0.0.47
213
+ * Enhancements
214
+ * 'success scenarios' shared eg and 'retry_for_success' exchange method's status codes include 200..299, not just 200.
215
+
216
+ Version 0.0.46
217
+ * Enhancements
218
+ * 'include_key?' method use 'value_from_path'. Iterating through Hashes with 'include_key?' wouldn't work as expected with some JSON bodies with my current implementation
219
+
220
+ Version 0.0.45
221
+ * Enhancements
222
+ * No need to use 'name' when creating SoapHandler and RestHandler. Default is ClassName
223
+
224
+ Version 0.0.44
225
+ * Enhancements
226
+ * Test Server log to logs/test_server.log
227
+ * Simplify ExchangeHandler storing and retrieving values (see soap/hash_spec.rb)
228
+ * Make setting SoapHandler operation and other params possible through object instantiation. Less code needed
229
+
230
+ Version 0.0.43
231
+ * Bug fix
232
+ * Remove Environment namespace from 'soaspec-generate'
233
+ * Enhancements
234
+ * Convenience methods for REST calls in which you can call something like 'ClassInheritingRestHandler.get(params)' See 'spec/soaspec/rest/one_off_spec.rb' for details
235
+
236
+ Version 0.0.42
237
+ * Enhancements
238
+ * Set Soaspec.api_handler work class is created. No need to call '.to_s' method
239
+
240
+ Version 0.0.41
241
+ * Bug fix
242
+ * soaspec-generate not designed to work with virtual service. Rakefile not try to set that up
243
+
244
+ Version 0.0.40
245
+ * Enhancements
246
+ * soaspec-generate now handle a wsdl without parameters in the operation and rather look up input element type
247
+ * test_server virtual service now handle scenario where bank is not found and test made for that
248
+
249
+ Version 0.0.39
250
+ * Spec
251
+ * Create task to use soaspec-init to create test structure and test it.
252
+ * Enhancements
253
+ * Take away need to use Environment namespace
254
+ * Added response headers to REST response log
255
+ * Now using virtual Web Service for SOAP
256
+
257
+ Version 0.0.38
258
+ * Bug fix
259
+ * Fixed error in soaspec-generate. TODO: Test this in CI
260
+
261
+ Version 0.0.37 / 2018-3-16
262
+ * Enhancements
263
+ * Made retry_for_success method to keep making request until 200 status code if set on exchange
264
+ * If '$' not included for json_path, by default a '$..' is added for convenience
265
+
266
+ Version 0.0.36 / 2018-3-15
267
+ * Bug fix
268
+ * Make test name log in correct place
269
+ * Enhancements
270
+ * Made accessor 'mandatory_json_values' to make it easier to share mandatory json path - value pairs
271
+ * Created 'store' method for handler through which one can store a value and use it later on it in the same context
272
+ * Deprecated
273
+ * Removed old 'mandatory_elements', 'mandatory_xpath_values' overridden way of handling data for favor of new way of it setting 'expected_mandatory_elements'
274
+
275
+ Version 0.0.35 / 2018-3-13
276
+ * Enhancements
277
+ * Handle array of JSON hashes starting with '['
278
+ * Handle patch and put methods with data for REST
279
+
280
+ Version 0.0.34 / 2018-3-12
281
+ * Enhancements
282
+ * Add oauth2 and oauth2_file methods to make it easy to load oauth2 parameters. Still a work in progress to handle all oauth2 variations
283
+
284
+ Version 0.0.33 / 2018-3-9
285
+ * Enhancements
286
+ * Use 'jsonpath' instead of dig to check JSON responses. Much better for finding complex paths
287
+
288
+ Version 0.0.32 / 2018-3-9
289
+ * Enhancements
290
+ * Made :body key in hash that can be used to use JSON.generate for a payload when using rest_handler exchanges
291
+
292
+ Version 0.0.31 / 2018-3-8
293
+ * Enhancements
294
+ * Compacted unit tests for exchange handler
295
+ * Implemented include_key? and find via xpath for REST handler. See specs
296
+
297
+ Version 0.0.30 / 2018-3-6
298
+ * Bug fix
299
+ * Made generated class file name in soaspec-generate snakecase (was CamelCase)
300
+
301
+ Version 0.0.29 / 2018-3-6
302
+ * Refactorings
303
+ * Base 'test' class from 'Tester' to 'ExhangeHandler'
304
+ * Made default Soap Handler class 'SoapHandler' and making use of 'BasicSoapHandler' deprecated
305
+
306
+ Version 0.0.28 / 2018-3-6
307
+ * Enhancements
308
+ * Added not_found matcher and used in spec example
309
+ * Only call request upon first need of an Exchange response. This means test request is made as part of 'it' rather than in describe
310
+
311
+ Version 0.0.27 / 2018-3-5
312
+ * Bug fix
313
+ * Fixed log file not present error
314
+ * Updated exe binaries to use latest format
315
+
316
+ Version 0.0.26 / 2018-3-5
317
+ * Refactorings
318
+ * Using methods to define mandatory_elements, mandatory_xpath_values, root_attributes, base_url. Please see specs. This is shorter to type and clearer
319
+
320
+ Version 0.0.25 / 2018-2-25
321
+ * Enhancements
322
+ * Updated rest_handler to convert JSON and XML into Hash and use it in 'contain_value'. This still needs work.
323
+ * Showed example of workflow using 'pet' url
324
+
325
+ Version 0.0.24 / 2018-2-25
326
+ * Enhancements
327
+ * Added to soaspec-generate more types when creating YAML with data (int, boolean, double and custom enumeration).
328
+ * Binaries use common module (exe-helper) to reduce repeatability
329
+ * TODO: soaspec-generate read xsd's mentioned to import in WSDL schema
330
+
331
+ Version 0.0.23 / 2018-2-23
332
+ * Enhancements
333
+ * Created RestHandler class (Very messy and ugly still) to handle REST requests using style used for SOAP using Rest Client resource
334
+
335
+ Version 0.0.22 / 2018-2-15
336
+ * Enhancements
337
+ * Created new 'include_in_body' matcher to find value anywhere in response body (which could be a substring of an element)
338
+
339
+ Version 0.0.21 / 2018-1-29
340
+ * Enhancements
341
+ * Added soaspec-generate - still in POC mode to generate files from a WSDL.
342
+ * Added test_wsdl to start at validating xml according to WSDL. Still needs polishing
343
+
344
+ Version 0.0.20 / 2018-1-26
345
+ * Enhancements
346
+ * Added ability to strip namespaces 'Soaspec::Environment.strip_namespaces = true'. See spec for example
347
+ * Fixes
348
+ * Made custom error and used it to make 'have_element_at_xpath' work when negated
349
+
350
+ Version 0.0.19 / 2018-1-25
351
+ * Enhancements
352
+ * Added own shared examples to init script and to in built specs
353
+
354
+ Version 0.0.18 / 2018-1-25
355
+ * Fixes
356
+ * Updated 'soaspec-init' so that it works again.
357
+ * Enhancements
358
+ * Added example showing representing data for request in YAML
359
+
360
+ Version 0.0.17 / 2018-1-25
361
+ * Fixes
362
+ * Updated hash search so that it handles Array
363
+
364
+ Version 0.0.16 / 2018-1-23
365
+ * Fixes
366
+ * Corrected logic of auto convert to hash. Previous version did not handle test specific values correctly
367
+
368
+ Version 0.0.15 / 2018-1-23
369
+ * Fixes
370
+ * Updated code to convert string key in Savon request to key automatically by default before passing to Savon. This saves
371
+ the user doing the conversion themselves.
372
+
373
+ Version 0.0.14 / 2018-1-23
374
+ * Fixes
375
+ * Updated 'xml_to_yaml_file' exe to clean up YAML more. No more array for Hash value. Indenting needs work though.
376
+ Now it's more like something you can read and pass into Savon request.
377
+
378
+ Version 0.0.13 / 2018-1-23
379
+ * Enhancements
380
+ * Executable to create xml file from yaml
381
+
382
+ Version 0.0.12 / 2018/1-22
383
+ * Enhancements
384
+ * Example name added to log file
385
+
386
+ Version 0.0.10 / 2018-1-21
387
+ * Enhancements
388
+ * Added [] method to perform xpath assertion
389
+ * Using Savon xpath. No need to explicitly provide namespace for xpath
390
+
391
+ Version 0.0.9 / 2018-1-20
392
+ * Refactoring
393
+ * class_options -> savon_options - More specific
394
+ * default_operation -> operation - Not default anymore so better not in name
395
+ * Enhancements
396
+ * Made mandatory_xpath_values method to add to 'success scenarios' shared example
397
+
398
+ Version 0.0.8 / 2018-1-19
399
+ * Enhancements
400
+ * Added root_attributes method to add attribute to the root class
401
+
402
+ Version 0.0.7 / 2018-1-19
403
+ * Enhancements
404
+ * Added contain_key matcher
401
405
  * mandatory_elements method created for SoapHandler - can be used to add tests to success scenarios (see example get_weather_web_service class for details)