testerhjnew 1.1.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.
Files changed (55) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +28 -0
  3. data/README.md +55 -0
  4. data/lib/tester.rb +56 -0
  5. data/lib/tester/api_helper.rb +261 -0
  6. data/lib/tester/configuration.rb +66 -0
  7. data/lib/tester/controllers/base_controller.rb +59 -0
  8. data/lib/tester/controllers/body_params_controller.rb +1270 -0
  9. data/lib/tester/controllers/echo_controller.rb +134 -0
  10. data/lib/tester/controllers/error_codes_controller.rb +179 -0
  11. data/lib/tester/controllers/form_params_controller.rb +1391 -0
  12. data/lib/tester/controllers/header_controller.rb +63 -0
  13. data/lib/tester/controllers/query_param_controller.rb +779 -0
  14. data/lib/tester/controllers/response_types_controller.rb +717 -0
  15. data/lib/tester/controllers/template_params_controller.rb +93 -0
  16. data/lib/tester/exceptions/api_exception.rb +18 -0
  17. data/lib/tester/exceptions/global_test_exception.rb +32 -0
  18. data/lib/tester/exceptions/local_test_exception.rb +30 -0
  19. data/lib/tester/exceptions/nested_model_exception.rb +37 -0
  20. data/lib/tester/http/faraday_client.rb +55 -0
  21. data/lib/tester/http/http_call_back.rb +22 -0
  22. data/lib/tester/http/http_client.rb +92 -0
  23. data/lib/tester/http/http_context.rb +18 -0
  24. data/lib/tester/http/http_method_enum.rb +11 -0
  25. data/lib/tester/http/http_request.rb +48 -0
  26. data/lib/tester/http/http_response.rb +21 -0
  27. data/lib/tester/models/additional_model_parameters.rb +70 -0
  28. data/lib/tester/models/base_model.rb +52 -0
  29. data/lib/tester/models/boss.rb +129 -0
  30. data/lib/tester/models/days.rb +30 -0
  31. data/lib/tester/models/delete_body.rb +52 -0
  32. data/lib/tester/models/echo_response.rb +88 -0
  33. data/lib/tester/models/employee.rb +155 -0
  34. data/lib/tester/models/job.rb +43 -0
  35. data/lib/tester/models/person.rb +113 -0
  36. data/lib/tester/models/query_parameter.rb +43 -0
  37. data/lib/tester/models/server_response.rb +61 -0
  38. data/lib/tester/models/suite_code.rb +21 -0
  39. data/lib/tester/models/test_nstring_encoding.rb +52 -0
  40. data/lib/tester/models/test_r_nstring_encoding.rb +52 -0
  41. data/lib/tester/models/test_rstring_encoding.rb +52 -0
  42. data/lib/tester/models/validate.rb +61 -0
  43. data/lib/tester/tester_client.rb +61 -0
  44. data/test/controllers/controller_test_base.rb +33 -0
  45. data/test/controllers/test_body_params_controller.rb +1210 -0
  46. data/test/controllers/test_echo_controller.rb +29 -0
  47. data/test/controllers/test_error_codes_controller.rb +47 -0
  48. data/test/controllers/test_form_params_controller.rb +1099 -0
  49. data/test/controllers/test_header_controller.rb +30 -0
  50. data/test/controllers/test_query_param_controller.rb +345 -0
  51. data/test/controllers/test_response_types_controller.rb +429 -0
  52. data/test/controllers/test_template_params_controller.rb +47 -0
  53. data/test/http_response_catcher.rb +16 -0
  54. data/test/test_helper.rb +91 -0
  55. metadata +178 -0
@@ -0,0 +1,47 @@
1
+ # This file was automatically generated for Stamplay by APIMATIC v2.0 ( https://apimatic.io ).
2
+
3
+ require_relative 'controller_test_base'
4
+
5
+ class TemplateParamsControllerTests < ControllerTestBase
6
+ # Called only once for the class before any test has executed
7
+ def self.startup
8
+ self.controller = @@api_client.template_params
9
+ end
10
+
11
+ # Todo: Add description for test test_send_string_array
12
+ def test_send_string_array()
13
+ # Parameters for the API call
14
+ strings = JSON.parse('["abc","def"]')
15
+
16
+ # Perform the API call through the SDK function
17
+ result = self.class.controller.send_string_array(strings)
18
+
19
+ # Test response code
20
+ assert_equal(@response_catcher.response.status_code, 200)
21
+
22
+ # Test whether the captured response is as we expected
23
+ assert_not_nil(result)
24
+ expected_body = JSON.parse('{"path":"/abc/def"}')
25
+ received_body = JSON.parse(@response_catcher.response.raw_body)
26
+ assert(TestHelper.match_body(expected_body, received_body, check_values: true))
27
+ end
28
+
29
+ # Todo: Add description for test test_send_integer_array
30
+ def test_send_integer_array()
31
+ # Parameters for the API call
32
+ integers = JSON.parse('[1,2,3,4,5]')
33
+
34
+ # Perform the API call through the SDK function
35
+ result = self.class.controller.send_integer_array(integers)
36
+
37
+ # Test response code
38
+ assert_equal(@response_catcher.response.status_code, 200)
39
+
40
+ # Test whether the captured response is as we expected
41
+ assert_not_nil(result)
42
+ expected_body = JSON.parse('{"path":"/1/2/3/4/5"}')
43
+ received_body = JSON.parse(@response_catcher.response.raw_body)
44
+ assert(TestHelper.match_body(expected_body, received_body, check_values: true))
45
+ end
46
+
47
+ end
@@ -0,0 +1,16 @@
1
+ # This file was automatically generated for Stamplay by APIMATIC v2.0 ( https://apimatic.io ).
2
+
3
+ class HttpResponseCatcher < Tester::HttpCallBack
4
+ attr_accessor :response
5
+
6
+ def on_before_request(request)
7
+ end
8
+
9
+ # Catching the response
10
+ def on_after_response(context)
11
+ @response = context.response
12
+ end
13
+ end
14
+
15
+
16
+
@@ -0,0 +1,91 @@
1
+ # This file was automatically generated for Stamplay by APIMATIC v2.0 ( https://apimatic.io ).
2
+
3
+ require 'tempfile'
4
+ require 'open-uri'
5
+
6
+ class TestHelper
7
+
8
+ @cache = Hash.new
9
+
10
+ # Class method to compare the received headers with the expected headers.
11
+ # @param [Hash] A hash of expected headers (keys in lower case).
12
+ # @param [Hash] A hash of received headers.
13
+ # @param [Boolean, optional] A flag which determines if we allow extra headers.
14
+ def self.match_headers(expected_headers,
15
+ received_headers,
16
+ allow_extra: true)
17
+ return false if ((received_headers.length < expected_headers.length) ||
18
+ ((allow_extra == false) && (received_headers.length > expected_headers.length)))
19
+
20
+ received_headers = Hash[received_headers.map{|k, v| [k.to_s.downcase, v]}]
21
+ expected_headers.each do |e_key, e_value|
22
+ return false unless received_headers.key?(e_key)
23
+ return false if ((e_value != nil) &&
24
+ (e_value != received_headers[e_key]))
25
+ end
26
+
27
+ return true
28
+ end
29
+
30
+ # Class method to compare the received body with the expected body.
31
+ # @param [Dynamic] The expected body.
32
+ # @param [Dynamic] The received body.
33
+ # @param [Boolean, optional] A flag which determines if we check values in dictionaries.
34
+ # @param [Boolean, optional] A flag which determines if we check the order of array elements.
35
+ # @param [Boolean, optional] A flag which determines if we check the count of array elements.
36
+ def self.match_body(expected_body,
37
+ received_body,
38
+ check_values: false,
39
+ check_order: false,
40
+ check_count: false)
41
+ if expected_body.instance_of? Hash
42
+ return false unless received_body.instance_of? Hash
43
+ for key in expected_body.keys
44
+ return false unless received_body.keys.include? key
45
+ if check_values or expected_body[key].instance_of? Hash
46
+ return false unless TestHelper.match_body(expected_body[key],
47
+ received_body[key],
48
+ check_values: check_values,
49
+ check_order: check_order,
50
+ check_count: check_count)
51
+ end
52
+ end
53
+ elsif expected_body.instance_of? Array
54
+ return False unless received_body.instance_of? Array
55
+ if check_count == true && (expected_body.length != received_body.length)
56
+ return false
57
+ else
58
+ previous_matches = Array.new
59
+ expected_body.each.with_index do |expected_element, i|
60
+ matches = (received_body.map.with_index do |received_element, j|
61
+ j if TestHelper.match_body(expected_element,
62
+ received_element,
63
+ check_values: check_values,
64
+ check_order: check_order,
65
+ check_count: check_count)
66
+ end).compact
67
+ return false if matches.length == 0
68
+ if check_order == true
69
+ return false if (i != 0 && matches.map{|x| previous_matches.map{|y| y > x}.all?}.all?)
70
+ previous_matches = matches
71
+ end
72
+ end
73
+ end
74
+ elsif expected_body != received_body
75
+ return false
76
+ end
77
+ return true
78
+ end
79
+
80
+ # Class method which takes a URL, downloads the file (if not already downloaded
81
+ # for this test session) and returns the path of the file.
82
+ # @param [String] The URL of the required file.
83
+ def self.get_file(url)
84
+ unless @cache.keys.include? url
85
+ @cache[url] = Tempfile.new('APIMatic')
86
+ @cache[url].binmode
87
+ @cache[url].write(open(url, {ssl_ca_cert: Certifi.where}).read)
88
+ end
89
+ return @cache[url].path
90
+ end
91
+ end
metadata ADDED
@@ -0,0 +1,178 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: testerhjnew
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.1.0
5
+ platform: ruby
6
+ authors:
7
+ - APIMatic SDK Generator
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-01-29 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: logging
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '2.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '2.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: faraday
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 0.10.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 0.10.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: test-unit
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 3.1.5
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 3.1.5
55
+ - !ruby/object:Gem::Dependency
56
+ name: certifi
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '2016.9'
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: 2016.09.26
65
+ type: :runtime
66
+ prerelease: false
67
+ version_requirements: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - "~>"
70
+ - !ruby/object:Gem::Version
71
+ version: '2016.9'
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: 2016.09.26
75
+ - !ruby/object:Gem::Dependency
76
+ name: faraday-http-cache
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '1.2'
82
+ - - ">="
83
+ - !ruby/object:Gem::Version
84
+ version: 1.2.2
85
+ type: :runtime
86
+ prerelease: false
87
+ version_requirements: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - "~>"
90
+ - !ruby/object:Gem::Version
91
+ version: '1.2'
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ version: 1.2.2
95
+ description: Testing various api features
96
+ email: support@apimatic.io
97
+ executables: []
98
+ extensions: []
99
+ extra_rdoc_files: []
100
+ files:
101
+ - LICENSE
102
+ - README.md
103
+ - lib/tester.rb
104
+ - lib/tester/api_helper.rb
105
+ - lib/tester/configuration.rb
106
+ - lib/tester/controllers/base_controller.rb
107
+ - lib/tester/controllers/body_params_controller.rb
108
+ - lib/tester/controllers/echo_controller.rb
109
+ - lib/tester/controllers/error_codes_controller.rb
110
+ - lib/tester/controllers/form_params_controller.rb
111
+ - lib/tester/controllers/header_controller.rb
112
+ - lib/tester/controllers/query_param_controller.rb
113
+ - lib/tester/controllers/response_types_controller.rb
114
+ - lib/tester/controllers/template_params_controller.rb
115
+ - lib/tester/exceptions/api_exception.rb
116
+ - lib/tester/exceptions/global_test_exception.rb
117
+ - lib/tester/exceptions/local_test_exception.rb
118
+ - lib/tester/exceptions/nested_model_exception.rb
119
+ - lib/tester/http/faraday_client.rb
120
+ - lib/tester/http/http_call_back.rb
121
+ - lib/tester/http/http_client.rb
122
+ - lib/tester/http/http_context.rb
123
+ - lib/tester/http/http_method_enum.rb
124
+ - lib/tester/http/http_request.rb
125
+ - lib/tester/http/http_response.rb
126
+ - lib/tester/models/additional_model_parameters.rb
127
+ - lib/tester/models/base_model.rb
128
+ - lib/tester/models/boss.rb
129
+ - lib/tester/models/days.rb
130
+ - lib/tester/models/delete_body.rb
131
+ - lib/tester/models/echo_response.rb
132
+ - lib/tester/models/employee.rb
133
+ - lib/tester/models/job.rb
134
+ - lib/tester/models/person.rb
135
+ - lib/tester/models/query_parameter.rb
136
+ - lib/tester/models/server_response.rb
137
+ - lib/tester/models/suite_code.rb
138
+ - lib/tester/models/test_nstring_encoding.rb
139
+ - lib/tester/models/test_r_nstring_encoding.rb
140
+ - lib/tester/models/test_rstring_encoding.rb
141
+ - lib/tester/models/validate.rb
142
+ - lib/tester/tester_client.rb
143
+ - test/controllers/controller_test_base.rb
144
+ - test/controllers/test_body_params_controller.rb
145
+ - test/controllers/test_echo_controller.rb
146
+ - test/controllers/test_error_codes_controller.rb
147
+ - test/controllers/test_form_params_controller.rb
148
+ - test/controllers/test_header_controller.rb
149
+ - test/controllers/test_query_param_controller.rb
150
+ - test/controllers/test_response_types_controller.rb
151
+ - test/controllers/test_template_params_controller.rb
152
+ - test/http_response_catcher.rb
153
+ - test/test_helper.rb
154
+ homepage: https://apimatic.io
155
+ licenses:
156
+ - MIT
157
+ metadata: {}
158
+ post_install_message:
159
+ rdoc_options: []
160
+ require_paths:
161
+ - lib
162
+ required_ruby_version: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: '2.0'
167
+ required_rubygems_version: !ruby/object:Gem::Requirement
168
+ requirements:
169
+ - - ">="
170
+ - !ruby/object:Gem::Version
171
+ version: '0'
172
+ requirements: []
173
+ rubyforge_project:
174
+ rubygems_version: 2.7.3
175
+ signing_key:
176
+ specification_version: 4
177
+ summary: tester
178
+ test_files: []