saeed_ba_tester 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/lib/ba_tester.rb ADDED
@@ -0,0 +1,39 @@
1
+ # ba_tester
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ require 'date'
7
+ require 'json'
8
+ require 'faraday'
9
+ require 'certifi'
10
+ require 'logging'
11
+
12
+ require_relative 'ba_tester/api_helper'
13
+ require_relative 'ba_tester/client'
14
+
15
+ # Utilities
16
+ require_relative 'ba_tester/utilities/file_wrapper'
17
+ require_relative 'ba_tester/utilities/date_time_helper'
18
+
19
+ # Http
20
+ require_relative 'ba_tester/http/http_call_back'
21
+ require_relative 'ba_tester/http/http_client'
22
+ require_relative 'ba_tester/http/faraday_client'
23
+ require_relative 'ba_tester/http/http_method_enum'
24
+ require_relative 'ba_tester/http/http_request'
25
+ require_relative 'ba_tester/http/http_response'
26
+ require_relative 'ba_tester/http/auth/basic_auth'
27
+
28
+ # Models
29
+ require_relative 'ba_tester/models/base_model'
30
+ require_relative 'ba_tester/models/suite_code_enum'
31
+
32
+ # Exceptions
33
+ require_relative 'ba_tester/exceptions/api_exception'
34
+
35
+ require_relative 'ba_tester/configuration'
36
+
37
+ # Controllers
38
+ require_relative 'ba_tester/controllers/base_controller'
39
+ require_relative 'ba_tester/controllers/api_controller'
@@ -0,0 +1,23 @@
1
+ # ba_tester
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ require 'json'
7
+ require 'minitest/autorun'
8
+ require 'minitest/hell'
9
+ require 'minitest/pride'
10
+ require 'minitest/proveit'
11
+ require 'ba_tester'
12
+ require_relative '../test_helper'
13
+ require_relative '../http_response_catcher'
14
+
15
+ class ControllerTestBase < Minitest::Test
16
+ parallelize_me!
17
+ include BaTester
18
+
19
+ # Create configuration and set any test parameters
20
+ CONFIG = Configuration.new(basic_auth_user_name: 'Zeeshan',
21
+ basic_auth_password: 'bhai_99',
22
+ environment: Environment::TESTING)
23
+ end
@@ -0,0 +1,29 @@
1
+ # ba_tester
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ require_relative 'controller_test_base'
7
+
8
+ class APIControllerTests < ControllerTestBase
9
+ # Called only once for the class before any test has executed
10
+ def setup
11
+ @response_catcher = HttpResponseCatcher.new
12
+ @controller = APIController.new CONFIG, http_call_back: @response_catcher
13
+ end
14
+
15
+ # Todo: Add description for test test_basic_auth_test
16
+ def test_basic_auth_test()
17
+
18
+ # Perform the API call through the SDK function
19
+ result = @controller.get_basic_auth_test()
20
+
21
+ # Test response code
22
+ assert_equal(200, @response_catcher.response.status_code)
23
+
24
+ # Test whether the captured response is as we expected
25
+ refute_nil(result)
26
+ assert_equal('You\'ve passed the test!', @response_catcher.response.raw_body)
27
+ end
28
+
29
+ end
@@ -0,0 +1,19 @@
1
+ # ba_tester
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ class HttpResponseCatcher < BaTester::HttpCallBack
7
+ attr_accessor :response
8
+
9
+ def on_before_request(request)
10
+ end
11
+
12
+ # Catching the response
13
+ def on_after_response(response)
14
+ @response = response
15
+ end
16
+ end
17
+
18
+
19
+
@@ -0,0 +1,94 @@
1
+ # ba_tester
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ require 'tempfile'
7
+ require 'open-uri'
8
+
9
+ class TestHelper
10
+
11
+ @cache = Hash.new
12
+
13
+ # Class method to compare the received headers with the expected headers.
14
+ # @param [Hash] A hash of expected headers (keys in lower case).
15
+ # @param [Hash] A hash of received headers.
16
+ # @param [Boolean, optional] A flag which determines if we allow extra headers.
17
+ def self.match_headers(expected_headers,
18
+ received_headers,
19
+ allow_extra: true)
20
+ return false if ((received_headers.length < expected_headers.length) ||
21
+ ((allow_extra == false) && (received_headers.length > expected_headers.length)))
22
+
23
+ received_headers = Hash[received_headers.map{|k, v| [k.to_s.downcase, v]}]
24
+ expected_headers.each do |e_key, e_value|
25
+ return false unless received_headers.key?(e_key)
26
+ return false if ((e_value != nil) &&
27
+ (e_value != received_headers[e_key]))
28
+ end
29
+
30
+ return true
31
+ end
32
+
33
+ # Class method to compare the received body with the expected body.
34
+ # @param [Dynamic] The expected body.
35
+ # @param [Dynamic] The received body.
36
+ # @param [Boolean, optional] A flag which determines if we check values in dictionaries.
37
+ # @param [Boolean, optional] A flag which determines if we check the order of array elements.
38
+ # @param [Boolean, optional] A flag which determines if we check the count of array elements.
39
+ def self.match_body(expected_body,
40
+ received_body,
41
+ check_values: false,
42
+ check_order: false,
43
+ check_count: false)
44
+ if expected_body.instance_of? Hash
45
+ return false unless received_body.instance_of? Hash
46
+ for key in expected_body.keys
47
+ return false unless received_body.keys.include? key
48
+ if check_values or expected_body[key].instance_of? Hash
49
+ return false unless TestHelper.match_body(expected_body[key],
50
+ received_body[key],
51
+ check_values: check_values,
52
+ check_order: check_order,
53
+ check_count: check_count)
54
+ end
55
+ end
56
+ elsif expected_body.instance_of? Array
57
+ return False unless received_body.instance_of? Array
58
+ if check_count == true && (expected_body.length != received_body.length)
59
+ return false
60
+ else
61
+ previous_matches = Array.new
62
+ expected_body.each.with_index do |expected_element, i|
63
+ matches = (received_body.map.with_index do |received_element, j|
64
+ j if TestHelper.match_body(expected_element,
65
+ received_element,
66
+ check_values: check_values,
67
+ check_order: check_order,
68
+ check_count: check_count)
69
+ end).compact
70
+ return false if matches.length == 0
71
+ if check_order == true
72
+ return false if (i != 0 && matches.map{|x| previous_matches.map{|y| y > x}.all?}.all?)
73
+ previous_matches = matches
74
+ end
75
+ end
76
+ end
77
+ elsif expected_body != received_body
78
+ return false
79
+ end
80
+ return true
81
+ end
82
+
83
+ # Class method which takes a URL, downloads the file (if not already downloaded
84
+ # for this test session) and returns the path of the file.
85
+ # @param [String] The URL of the required file.
86
+ def self.get_file(url)
87
+ unless @cache.keys.include? url
88
+ @cache[url] = Tempfile.new('APIMatic')
89
+ @cache[url].binmode
90
+ @cache[url].write(open(url, {ssl_ca_cert: Certifi.where}).read)
91
+ end
92
+ return @cache[url].path
93
+ end
94
+ end
metadata ADDED
@@ -0,0 +1,185 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: saeed_ba_tester
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - APIMatic SDK Generator
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2021-11-04 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.3'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '2.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: faraday
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.0'
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: 1.0.1
37
+ type: :runtime
38
+ prerelease: false
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - "~>"
42
+ - !ruby/object:Gem::Version
43
+ version: '1.0'
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 1.0.1
47
+ - !ruby/object:Gem::Dependency
48
+ name: faraday_middleware
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '1.0'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '1.0'
61
+ - !ruby/object:Gem::Dependency
62
+ name: certifi
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '2018.1'
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: 2018.01.18
71
+ type: :runtime
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - "~>"
76
+ - !ruby/object:Gem::Version
77
+ version: '2018.1'
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ version: 2018.01.18
81
+ - !ruby/object:Gem::Dependency
82
+ name: faraday-http-cache
83
+ requirement: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - "~>"
86
+ - !ruby/object:Gem::Version
87
+ version: '2.2'
88
+ type: :runtime
89
+ prerelease: false
90
+ version_requirements: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - "~>"
93
+ - !ruby/object:Gem::Version
94
+ version: '2.2'
95
+ - !ruby/object:Gem::Dependency
96
+ name: minitest
97
+ requirement: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - "~>"
100
+ - !ruby/object:Gem::Version
101
+ version: '5.14'
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: 5.14.1
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - "~>"
110
+ - !ruby/object:Gem::Version
111
+ version: '5.14'
112
+ - - ">="
113
+ - !ruby/object:Gem::Version
114
+ version: 5.14.1
115
+ - !ruby/object:Gem::Dependency
116
+ name: minitest-proveit
117
+ requirement: !ruby/object:Gem::Requirement
118
+ requirements:
119
+ - - "~>"
120
+ - !ruby/object:Gem::Version
121
+ version: '1.0'
122
+ type: :development
123
+ prerelease: false
124
+ version_requirements: !ruby/object:Gem::Requirement
125
+ requirements:
126
+ - - "~>"
127
+ - !ruby/object:Gem::Version
128
+ version: '1.0'
129
+ description: ''
130
+ email: support@apimatic.io
131
+ executables: []
132
+ extensions: []
133
+ extra_rdoc_files: []
134
+ files:
135
+ - LICENSE
136
+ - README.md
137
+ - lib/ba_tester.rb
138
+ - lib/ba_tester/api_helper.rb
139
+ - lib/ba_tester/client.rb
140
+ - lib/ba_tester/configuration.rb
141
+ - lib/ba_tester/controllers/api_controller.rb
142
+ - lib/ba_tester/controllers/base_controller.rb
143
+ - lib/ba_tester/exceptions/api_exception.rb
144
+ - lib/ba_tester/http/auth/basic_auth.rb
145
+ - lib/ba_tester/http/faraday_client.rb
146
+ - lib/ba_tester/http/http_call_back.rb
147
+ - lib/ba_tester/http/http_client.rb
148
+ - lib/ba_tester/http/http_method_enum.rb
149
+ - lib/ba_tester/http/http_request.rb
150
+ - lib/ba_tester/http/http_response.rb
151
+ - lib/ba_tester/models/base_model.rb
152
+ - lib/ba_tester/models/suite_code_enum.rb
153
+ - lib/ba_tester/utilities/date_time_helper.rb
154
+ - lib/ba_tester/utilities/file_wrapper.rb
155
+ - test/controllers/controller_test_base.rb
156
+ - test/controllers/test_api_controller.rb
157
+ - test/http_response_catcher.rb
158
+ - test/test_helper.rb
159
+ homepage: https://apimatic.io
160
+ licenses:
161
+ - MIT
162
+ metadata: {}
163
+ post_install_message:
164
+ rdoc_options: []
165
+ require_paths:
166
+ - lib
167
+ required_ruby_version: !ruby/object:Gem::Requirement
168
+ requirements:
169
+ - - ">="
170
+ - !ruby/object:Gem::Version
171
+ version: '2.5'
172
+ - - "<"
173
+ - !ruby/object:Gem::Version
174
+ version: '3.0'
175
+ required_rubygems_version: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - ">="
178
+ - !ruby/object:Gem::Version
179
+ version: '0'
180
+ requirements: []
181
+ rubygems_version: 3.2.30
182
+ signing_key:
183
+ specification_version: 4
184
+ summary: ba_tester
185
+ test_files: []