cloudmersive-currency-api-client 2.0.1

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 (30) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +7 -0
  3. data/README.md +111 -0
  4. data/Rakefile +8 -0
  5. data/cloudmersive-currency-api-client.gemspec +45 -0
  6. data/docs/AvailableCurrency.md +14 -0
  7. data/docs/AvailableCurrencyResponse.md +8 -0
  8. data/docs/ConvertedCurrencyResult.md +11 -0
  9. data/docs/CurrencyExchangeApi.md +176 -0
  10. data/docs/ExchangeRateResult.md +8 -0
  11. data/git_push.sh +55 -0
  12. data/lib/cloudmersive-currency-api-client.rb +44 -0
  13. data/lib/cloudmersive-currency-api-client/api/currency_exchange_api.rb +193 -0
  14. data/lib/cloudmersive-currency-api-client/api_client.rb +391 -0
  15. data/lib/cloudmersive-currency-api-client/api_error.rb +38 -0
  16. data/lib/cloudmersive-currency-api-client/configuration.rb +209 -0
  17. data/lib/cloudmersive-currency-api-client/models/available_currency.rb +246 -0
  18. data/lib/cloudmersive-currency-api-client/models/available_currency_response.rb +188 -0
  19. data/lib/cloudmersive-currency-api-client/models/converted_currency_result.rb +216 -0
  20. data/lib/cloudmersive-currency-api-client/models/exchange_rate_result.rb +186 -0
  21. data/lib/cloudmersive-currency-api-client/version.rb +15 -0
  22. data/spec/api/currency_exchange_api_spec.rb +73 -0
  23. data/spec/api_client_spec.rb +243 -0
  24. data/spec/configuration_spec.rb +42 -0
  25. data/spec/models/available_currency_response_spec.rb +41 -0
  26. data/spec/models/available_currency_spec.rb +77 -0
  27. data/spec/models/converted_currency_result_spec.rb +59 -0
  28. data/spec/models/exchange_rate_result_spec.rb +41 -0
  29. data/spec/spec_helper.rb +111 -0
  30. metadata +252 -0
@@ -0,0 +1,15 @@
1
+ =begin
2
+ #currencyapi
3
+
4
+ #The currency APIs help you retrieve exchange rates and convert prices between currencies easily.
5
+
6
+ OpenAPI spec version: v1
7
+
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 2.4.14
10
+
11
+ =end
12
+
13
+ module CloudmersiveCurrencyApiClient
14
+ VERSION = '2.0.1'
15
+ end
@@ -0,0 +1,73 @@
1
+ =begin
2
+ #currencyapi
3
+
4
+ #The currency APIs help you retrieve exchange rates and convert prices between currencies easily.
5
+
6
+ OpenAPI spec version: v1
7
+
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 2.4.14
10
+
11
+ =end
12
+
13
+ require 'spec_helper'
14
+ require 'json'
15
+
16
+ # Unit tests for CloudmersiveCurrencyApiClient::CurrencyExchangeApi
17
+ # Automatically generated by swagger-codegen (github.com/swagger-api/swagger-codegen)
18
+ # Please update as you see appropriate
19
+ describe 'CurrencyExchangeApi' do
20
+ before do
21
+ # run before each test
22
+ @instance = CloudmersiveCurrencyApiClient::CurrencyExchangeApi.new
23
+ end
24
+
25
+ after do
26
+ # run after each test
27
+ end
28
+
29
+ describe 'test an instance of CurrencyExchangeApi' do
30
+ it 'should create an instance of CurrencyExchangeApi' do
31
+ expect(@instance).to be_instance_of(CloudmersiveCurrencyApiClient::CurrencyExchangeApi)
32
+ end
33
+ end
34
+
35
+ # unit tests for currency_exchange_convert_currency
36
+ # Converts a price from the source currency into the destination currency
37
+ # Automatically converts the price in the source currency into the destination currency using the latest available currency exchange rate data.
38
+ # @param source Source currency three-digit code (ISO 4217), e.g. USD, EUR, etc.
39
+ # @param destination Destination currency three-digit code (ISO 4217), e.g. USD, EUR, etc.
40
+ # @param source_price Input price, such as 19.99 in source currency
41
+ # @param [Hash] opts the optional parameters
42
+ # @return [ConvertedCurrencyResult]
43
+ describe 'currency_exchange_convert_currency test' do
44
+ it 'should work' do
45
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
46
+ end
47
+ end
48
+
49
+ # unit tests for currency_exchange_get_available_currencies
50
+ # Get a list of available currencies and corresponding countries
51
+ # Enumerates available currencies and the countries that correspond to these currencies.
52
+ # @param [Hash] opts the optional parameters
53
+ # @return [AvailableCurrencyResponse]
54
+ describe 'currency_exchange_get_available_currencies test' do
55
+ it 'should work' do
56
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
57
+ end
58
+ end
59
+
60
+ # unit tests for currency_exchange_get_exchange_rate
61
+ # Gets the exchange rate from the source currency into the destination currency
62
+ # Automatically gets the exchange rate from the source currency into the destination currency using the latest available currency exchange rate data.
63
+ # @param source Source currency three-digit code (ISO 4217), e.g. USD, EUR, etc.
64
+ # @param destination Destination currency three-digit code (ISO 4217), e.g. USD, EUR, etc.
65
+ # @param [Hash] opts the optional parameters
66
+ # @return [ExchangeRateResult]
67
+ describe 'currency_exchange_get_exchange_rate test' do
68
+ it 'should work' do
69
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
70
+ end
71
+ end
72
+
73
+ end
@@ -0,0 +1,243 @@
1
+ =begin
2
+ #currencyapi
3
+
4
+ #The currency APIs help you retrieve exchange rates and convert prices between currencies easily.
5
+
6
+ OpenAPI spec version: v1
7
+
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 2.4.14
10
+
11
+ =end
12
+
13
+ require 'spec_helper'
14
+
15
+ describe CloudmersiveCurrencyApiClient::ApiClient do
16
+ context 'initialization' do
17
+ context 'URL stuff' do
18
+ context 'host' do
19
+ it 'removes http from host' do
20
+ CloudmersiveCurrencyApiClient.configure { |c| c.host = 'http://example.com' }
21
+ expect(CloudmersiveCurrencyApiClient::Configuration.default.host).to eq('example.com')
22
+ end
23
+
24
+ it 'removes https from host' do
25
+ CloudmersiveCurrencyApiClient.configure { |c| c.host = 'https://wookiee.com' }
26
+ expect(CloudmersiveCurrencyApiClient::ApiClient.default.config.host).to eq('wookiee.com')
27
+ end
28
+
29
+ it 'removes trailing path from host' do
30
+ CloudmersiveCurrencyApiClient.configure { |c| c.host = 'hobo.com/v4' }
31
+ expect(CloudmersiveCurrencyApiClient::Configuration.default.host).to eq('hobo.com')
32
+ end
33
+ end
34
+
35
+ context 'base_path' do
36
+ it "prepends a slash to base_path" do
37
+ CloudmersiveCurrencyApiClient.configure { |c| c.base_path = 'v4/dog' }
38
+ expect(CloudmersiveCurrencyApiClient::Configuration.default.base_path).to eq('/v4/dog')
39
+ end
40
+
41
+ it "doesn't prepend a slash if one is already there" do
42
+ CloudmersiveCurrencyApiClient.configure { |c| c.base_path = '/v4/dog' }
43
+ expect(CloudmersiveCurrencyApiClient::Configuration.default.base_path).to eq('/v4/dog')
44
+ end
45
+
46
+ it "ends up as a blank string if nil" do
47
+ CloudmersiveCurrencyApiClient.configure { |c| c.base_path = nil }
48
+ expect(CloudmersiveCurrencyApiClient::Configuration.default.base_path).to eq('')
49
+ end
50
+ end
51
+ end
52
+ end
53
+
54
+ describe 'params_encoding in #build_request' do
55
+ let(:config) { CloudmersiveCurrencyApiClient::Configuration.new }
56
+ let(:api_client) { CloudmersiveCurrencyApiClient::ApiClient.new(config) }
57
+
58
+ it 'defaults to nil' do
59
+ expect(CloudmersiveCurrencyApiClient::Configuration.default.params_encoding).to eq(nil)
60
+ expect(config.params_encoding).to eq(nil)
61
+
62
+ request = api_client.build_request(:get, '/test')
63
+ expect(request.options[:params_encoding]).to eq(nil)
64
+ end
65
+
66
+ it 'can be customized' do
67
+ config.params_encoding = :multi
68
+ request = api_client.build_request(:get, '/test')
69
+ expect(request.options[:params_encoding]).to eq(:multi)
70
+ end
71
+ end
72
+
73
+ describe 'timeout in #build_request' do
74
+ let(:config) { CloudmersiveCurrencyApiClient::Configuration.new }
75
+ let(:api_client) { CloudmersiveCurrencyApiClient::ApiClient.new(config) }
76
+
77
+ it 'defaults to 0' do
78
+ expect(CloudmersiveCurrencyApiClient::Configuration.default.timeout).to eq(0)
79
+ expect(config.timeout).to eq(0)
80
+
81
+ request = api_client.build_request(:get, '/test')
82
+ expect(request.options[:timeout]).to eq(0)
83
+ end
84
+
85
+ it 'can be customized' do
86
+ config.timeout = 100
87
+ request = api_client.build_request(:get, '/test')
88
+ expect(request.options[:timeout]).to eq(100)
89
+ end
90
+ end
91
+
92
+ describe '#build_request' do
93
+ let(:config) { CloudmersiveCurrencyApiClient::Configuration.new }
94
+ let(:api_client) { CloudmersiveCurrencyApiClient::ApiClient.new(config) }
95
+
96
+ it 'does not send multipart to request' do
97
+ expect(Typhoeus::Request).to receive(:new).with(anything, hash_not_including(:multipart))
98
+ api_client.build_request(:get, '/test')
99
+ end
100
+
101
+ context 'when the content type is multipart' do
102
+ it 'sends multipart to request' do
103
+ expect(Typhoeus::Request).to receive(:new).with(anything, hash_including(multipart: true))
104
+ api_client.build_request(:get, '/test', {header_params: { 'Content-Type' => 'multipart/form-data'}})
105
+ end
106
+ end
107
+ end
108
+
109
+ describe '#deserialize' do
110
+ it "handles Array<Integer>" do
111
+ api_client = CloudmersiveCurrencyApiClient::ApiClient.new
112
+ headers = { 'Content-Type' => 'application/json' }
113
+ response = double('response', headers: headers, body: '[12, 34]')
114
+ data = api_client.deserialize(response, 'Array<Integer>')
115
+ expect(data).to be_instance_of(Array)
116
+ expect(data).to eq([12, 34])
117
+ end
118
+
119
+ it 'handles Array<Array<Integer>>' do
120
+ api_client = CloudmersiveCurrencyApiClient::ApiClient.new
121
+ headers = { 'Content-Type' => 'application/json' }
122
+ response = double('response', headers: headers, body: '[[12, 34], [56]]')
123
+ data = api_client.deserialize(response, 'Array<Array<Integer>>')
124
+ expect(data).to be_instance_of(Array)
125
+ expect(data).to eq([[12, 34], [56]])
126
+ end
127
+
128
+ it 'handles Hash<String, String>' do
129
+ api_client = CloudmersiveCurrencyApiClient::ApiClient.new
130
+ headers = { 'Content-Type' => 'application/json' }
131
+ response = double('response', headers: headers, body: '{"message": "Hello"}')
132
+ data = api_client.deserialize(response, 'Hash<String, String>')
133
+ expect(data).to be_instance_of(Hash)
134
+ expect(data).to eq(:message => 'Hello')
135
+ end
136
+ end
137
+
138
+ describe "#object_to_hash" do
139
+ it 'ignores nils and includes empty arrays' do
140
+ # uncomment below to test object_to_hash for model
141
+ # api_client = CloudmersiveCurrencyApiClient::ApiClient.new
142
+ # _model = CloudmersiveCurrencyApiClient::ModelName.new
143
+ # update the model attribute below
144
+ # _model.id = 1
145
+ # update the expected value (hash) below
146
+ # expected = {id: 1, name: '', tags: []}
147
+ # expect(api_client.object_to_hash(_model)).to eq(expected)
148
+ end
149
+ end
150
+
151
+ describe '#build_collection_param' do
152
+ let(:param) { ['aa', 'bb', 'cc'] }
153
+ let(:api_client) { CloudmersiveCurrencyApiClient::ApiClient.new }
154
+
155
+ it 'works for csv' do
156
+ expect(api_client.build_collection_param(param, :csv)).to eq('aa,bb,cc')
157
+ end
158
+
159
+ it 'works for ssv' do
160
+ expect(api_client.build_collection_param(param, :ssv)).to eq('aa bb cc')
161
+ end
162
+
163
+ it 'works for tsv' do
164
+ expect(api_client.build_collection_param(param, :tsv)).to eq("aa\tbb\tcc")
165
+ end
166
+
167
+ it 'works for pipes' do
168
+ expect(api_client.build_collection_param(param, :pipes)).to eq('aa|bb|cc')
169
+ end
170
+
171
+ it 'works for multi' do
172
+ expect(api_client.build_collection_param(param, :multi)).to eq(['aa', 'bb', 'cc'])
173
+ end
174
+
175
+ it 'fails for invalid collection format' do
176
+ expect(proc { api_client.build_collection_param(param, :INVALID) }).to raise_error(RuntimeError, 'unknown collection format: :INVALID')
177
+ end
178
+ end
179
+
180
+ describe '#json_mime?' do
181
+ let(:api_client) { CloudmersiveCurrencyApiClient::ApiClient.new }
182
+
183
+ it 'works' do
184
+ expect(api_client.json_mime?(nil)).to eq false
185
+ expect(api_client.json_mime?('')).to eq false
186
+
187
+ expect(api_client.json_mime?('application/json')).to eq true
188
+ expect(api_client.json_mime?('application/json; charset=UTF8')).to eq true
189
+ expect(api_client.json_mime?('APPLICATION/JSON')).to eq true
190
+
191
+ expect(api_client.json_mime?('application/xml')).to eq false
192
+ expect(api_client.json_mime?('text/plain')).to eq false
193
+ expect(api_client.json_mime?('application/jsonp')).to eq false
194
+ end
195
+ end
196
+
197
+ describe '#select_header_accept' do
198
+ let(:api_client) { CloudmersiveCurrencyApiClient::ApiClient.new }
199
+
200
+ it 'works' do
201
+ expect(api_client.select_header_accept(nil)).to be_nil
202
+ expect(api_client.select_header_accept([])).to be_nil
203
+
204
+ expect(api_client.select_header_accept(['application/json'])).to eq('application/json')
205
+ expect(api_client.select_header_accept(['application/xml', 'application/json; charset=UTF8'])).to eq('application/json; charset=UTF8')
206
+ expect(api_client.select_header_accept(['APPLICATION/JSON', 'text/html'])).to eq('APPLICATION/JSON')
207
+
208
+ expect(api_client.select_header_accept(['application/xml'])).to eq('application/xml')
209
+ expect(api_client.select_header_accept(['text/html', 'application/xml'])).to eq('text/html,application/xml')
210
+ end
211
+ end
212
+
213
+ describe '#select_header_content_type' do
214
+ let(:api_client) { CloudmersiveCurrencyApiClient::ApiClient.new }
215
+
216
+ it 'works' do
217
+ expect(api_client.select_header_content_type(nil)).to eq('application/json')
218
+ expect(api_client.select_header_content_type([])).to eq('application/json')
219
+
220
+ expect(api_client.select_header_content_type(['application/json'])).to eq('application/json')
221
+ expect(api_client.select_header_content_type(['application/xml', 'application/json; charset=UTF8'])).to eq('application/json; charset=UTF8')
222
+ expect(api_client.select_header_content_type(['APPLICATION/JSON', 'text/html'])).to eq('APPLICATION/JSON')
223
+ expect(api_client.select_header_content_type(['application/xml'])).to eq('application/xml')
224
+ expect(api_client.select_header_content_type(['text/plain', 'application/xml'])).to eq('text/plain')
225
+ end
226
+ end
227
+
228
+ describe '#sanitize_filename' do
229
+ let(:api_client) { CloudmersiveCurrencyApiClient::ApiClient.new }
230
+
231
+ it 'works' do
232
+ expect(api_client.sanitize_filename('sun')).to eq('sun')
233
+ expect(api_client.sanitize_filename('sun.gif')).to eq('sun.gif')
234
+ expect(api_client.sanitize_filename('../sun.gif')).to eq('sun.gif')
235
+ expect(api_client.sanitize_filename('/var/tmp/sun.gif')).to eq('sun.gif')
236
+ expect(api_client.sanitize_filename('./sun.gif')).to eq('sun.gif')
237
+ expect(api_client.sanitize_filename('..\sun.gif')).to eq('sun.gif')
238
+ expect(api_client.sanitize_filename('\var\tmp\sun.gif')).to eq('sun.gif')
239
+ expect(api_client.sanitize_filename('c:\var\tmp\sun.gif')).to eq('sun.gif')
240
+ expect(api_client.sanitize_filename('.\sun.gif')).to eq('sun.gif')
241
+ end
242
+ end
243
+ end
@@ -0,0 +1,42 @@
1
+ =begin
2
+ #currencyapi
3
+
4
+ #The currency APIs help you retrieve exchange rates and convert prices between currencies easily.
5
+
6
+ OpenAPI spec version: v1
7
+
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 2.4.14
10
+
11
+ =end
12
+
13
+ require 'spec_helper'
14
+
15
+ describe CloudmersiveCurrencyApiClient::Configuration do
16
+ let(:config) { CloudmersiveCurrencyApiClient::Configuration.default }
17
+
18
+ before(:each) do
19
+ # uncomment below to setup host and base_path
20
+ # require 'URI'
21
+ # uri = URI.parse("https://api.cloudmersive.com")
22
+ # CloudmersiveCurrencyApiClient.configure do |c|
23
+ # c.host = uri.host
24
+ # c.base_path = uri.path
25
+ # end
26
+ end
27
+
28
+ describe '#base_url' do
29
+ it 'should have the default value' do
30
+ # uncomment below to test default value of the base path
31
+ # expect(config.base_url).to eq("https://api.cloudmersive.com")
32
+ end
33
+
34
+ it 'should remove trailing slashes' do
35
+ [nil, '', '/', '//'].each do |base_path|
36
+ config.base_path = base_path
37
+ # uncomment below to test trailing slashes
38
+ # expect(config.base_url).to eq("https://api.cloudmersive.com")
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,41 @@
1
+ =begin
2
+ #currencyapi
3
+
4
+ #The currency APIs help you retrieve exchange rates and convert prices between currencies easily.
5
+
6
+ OpenAPI spec version: v1
7
+
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 2.4.14
10
+
11
+ =end
12
+
13
+ require 'spec_helper'
14
+ require 'json'
15
+ require 'date'
16
+
17
+ # Unit tests for CloudmersiveCurrencyApiClient::AvailableCurrencyResponse
18
+ # Automatically generated by swagger-codegen (github.com/swagger-api/swagger-codegen)
19
+ # Please update as you see appropriate
20
+ describe 'AvailableCurrencyResponse' do
21
+ before do
22
+ # run before each test
23
+ @instance = CloudmersiveCurrencyApiClient::AvailableCurrencyResponse.new
24
+ end
25
+
26
+ after do
27
+ # run after each test
28
+ end
29
+
30
+ describe 'test an instance of AvailableCurrencyResponse' do
31
+ it 'should create an instance of AvailableCurrencyResponse' do
32
+ expect(@instance).to be_instance_of(CloudmersiveCurrencyApiClient::AvailableCurrencyResponse)
33
+ end
34
+ end
35
+ describe 'test attribute "currencies"' do
36
+ it 'should work' do
37
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
38
+ end
39
+ end
40
+
41
+ end
@@ -0,0 +1,77 @@
1
+ =begin
2
+ #currencyapi
3
+
4
+ #The currency APIs help you retrieve exchange rates and convert prices between currencies easily.
5
+
6
+ OpenAPI spec version: v1
7
+
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 2.4.14
10
+
11
+ =end
12
+
13
+ require 'spec_helper'
14
+ require 'json'
15
+ require 'date'
16
+
17
+ # Unit tests for CloudmersiveCurrencyApiClient::AvailableCurrency
18
+ # Automatically generated by swagger-codegen (github.com/swagger-api/swagger-codegen)
19
+ # Please update as you see appropriate
20
+ describe 'AvailableCurrency' do
21
+ before do
22
+ # run before each test
23
+ @instance = CloudmersiveCurrencyApiClient::AvailableCurrency.new
24
+ end
25
+
26
+ after do
27
+ # run after each test
28
+ end
29
+
30
+ describe 'test an instance of AvailableCurrency' do
31
+ it 'should create an instance of AvailableCurrency' do
32
+ expect(@instance).to be_instance_of(CloudmersiveCurrencyApiClient::AvailableCurrency)
33
+ end
34
+ end
35
+ describe 'test attribute "iso_currency_code"' do
36
+ it 'should work' do
37
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
38
+ end
39
+ end
40
+
41
+ describe 'test attribute "currency_symbol"' do
42
+ it 'should work' do
43
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
44
+ end
45
+ end
46
+
47
+ describe 'test attribute "currency_english_name"' do
48
+ it 'should work' do
49
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
50
+ end
51
+ end
52
+
53
+ describe 'test attribute "country_name"' do
54
+ it 'should work' do
55
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
56
+ end
57
+ end
58
+
59
+ describe 'test attribute "country_three_letter_code"' do
60
+ it 'should work' do
61
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
62
+ end
63
+ end
64
+
65
+ describe 'test attribute "country_iso_two_letter_code"' do
66
+ it 'should work' do
67
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
68
+ end
69
+ end
70
+
71
+ describe 'test attribute "is_european_union_member"' do
72
+ it 'should work' do
73
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
74
+ end
75
+ end
76
+
77
+ end