EGP_Rates 0.3.0 → 1.0.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.
- checksums.yaml +4 -4
- data/lib/egp_rates/aaib.rb +0 -18
- data/lib/egp_rates/adib.rb +53 -0
- data/lib/egp_rates/al_ahli_bank_of_kuwait.rb +0 -2
- data/lib/egp_rates/al_baraka_bank.rb +0 -18
- data/lib/egp_rates/alex_bank.rb +54 -0
- data/lib/egp_rates/bank.rb +31 -0
- data/lib/egp_rates/banque_du_caire.rb +0 -28
- data/lib/egp_rates/banque_misr.rb +2 -2
- data/lib/egp_rates/blom.rb +57 -0
- data/lib/egp_rates/cae.rb +0 -2
- data/lib/egp_rates/cbe.rb +0 -20
- data/lib/egp_rates/edbe.rb +56 -0
- data/lib/egp_rates/egb.rb +56 -0
- data/lib/egp_rates/faisal_bank.rb +55 -0
- data/lib/egp_rates/midb.rb +0 -2
- data/lib/egp_rates/nbg.rb +55 -0
- data/lib/egp_rates/saib.rb +0 -2
- data/lib/egp_rates/suez_canal_bank.rb +0 -23
- data/lib/egp_rates/ube.rb +0 -2
- data/lib/egp_rates.rb +60 -0
- data/spec/cassettes/ADIB.yml +457 -0
- data/spec/cassettes/AlexBank.yml +972 -0
- data/spec/cassettes/Blom.yml +868 -0
- data/spec/cassettes/EDBE.yml +69 -0
- data/spec/cassettes/EGB.yml +366 -0
- data/spec/cassettes/FaisalBank.yml +445 -0
- data/spec/cassettes/NBG.yml +760 -0
- data/spec/egp_rates/adib_spec.rb +75 -0
- data/spec/egp_rates/alex_bank_spec.rb +112 -0
- data/spec/egp_rates/banque_misr_spec.rb +4 -4
- data/spec/egp_rates/blom_spec.rb +88 -0
- data/spec/egp_rates/edbe_spec.rb +69 -0
- data/spec/egp_rates/egb_spec.rb +93 -0
- data/spec/egp_rates/faisal_bank_spec.rb +86 -0
- data/spec/egp_rates/nbg_spec.rb +77 -0
- data/spec/egp_rates_spec.rb +80 -2
- metadata +23 -2
data/spec/egp_rates_spec.rb
CHANGED
@@ -1,5 +1,83 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
# rubocop:disable RSpec/EmptyExampleGroup
|
3
2
|
describe EGPRates do
|
3
|
+
describe '.exchange_rates' do
|
4
|
+
# rubocop:disable RSpec/VerifiedDoubles
|
5
|
+
context 'all Banks' do
|
6
|
+
let(:bank) { double(EGPRates::Bank) }
|
7
|
+
|
8
|
+
it 'calls #exchange_rates on all Bank Classes' do
|
9
|
+
expect(described_class).to receive(:const_get).exactly(20).times
|
10
|
+
.and_return bank
|
11
|
+
expect(bank).to receive(:new).exactly(20).times.and_return bank
|
12
|
+
expect(bank).to receive(:exchange_rates).exactly(20).times
|
13
|
+
|
14
|
+
described_class.exchange_rates
|
15
|
+
end
|
16
|
+
end
|
17
|
+
# rubocop:enable RSpec/VerifiedDoubles
|
18
|
+
|
19
|
+
context '1 Bank' do
|
20
|
+
before { allow(described_class).to receive(:constants).and_return [:CBE] }
|
21
|
+
|
22
|
+
it 'returns [Hash] of exchange_rates', vcr: { cassette_name: :CBE } do
|
23
|
+
exchange_rates = described_class.exchange_rates
|
24
|
+
|
25
|
+
expect(exchange_rates).to include(:CBE)
|
26
|
+
expect(exchange_rates[:CBE]).to include(:buy, :sell)
|
27
|
+
expect(exchange_rates[:CBE][:buy].size).to eq 9
|
28
|
+
expect(exchange_rates[:CBE][:sell].size).to eq 9
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'returns [Hash] of Bank: "Failed to get exchange rates"', :no_vcr do
|
32
|
+
stub_request(:get, /.*/).to_return(body: '', status: 500)
|
33
|
+
|
34
|
+
exchange_rates = described_class.exchange_rates
|
35
|
+
expect(exchange_rates).to match(CBE: 'Failed to get exchange rates')
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
describe '.exchange_rate(:SYM, cache_result)' do
|
41
|
+
before do
|
42
|
+
described_class.instance_variable_set(:@exchange_rates, nil)
|
43
|
+
allow(described_class).to receive(:constants).and_return [:NBE]
|
44
|
+
end
|
45
|
+
|
46
|
+
context 'cache_result = true' do
|
47
|
+
it 'calls .exchange_rates once' do
|
48
|
+
expect(described_class).to receive(:exchange_rates).once.and_return({})
|
49
|
+
|
50
|
+
described_class.exchange_rate(:USD)
|
51
|
+
described_class.exchange_rate(:USD)
|
52
|
+
end
|
53
|
+
|
54
|
+
it 'calls .exchange_rates twice' do
|
55
|
+
expect(described_class).to receive(:exchange_rates).twice.and_return({})
|
56
|
+
|
57
|
+
described_class.exchange_rate(:USD)
|
58
|
+
described_class.exchange_rate(:USD, false)
|
59
|
+
end
|
60
|
+
|
61
|
+
it 'returns [Hash] of Bank: "Failed to get exchange rates"', :no_vcr do
|
62
|
+
stub_request(:get, /.*/).to_return(body: '', status: 500)
|
63
|
+
|
64
|
+
exchange_rate = described_class.exchange_rate(:USD)
|
65
|
+
expect(exchange_rate).to match(NBE: 'Failed to get exchange rates')
|
66
|
+
end
|
67
|
+
|
68
|
+
it 'returns [Hash] of Bank: { sell: rate, buy: rate }',
|
69
|
+
vcr: { cassette_name: :NBE } do
|
70
|
+
exchange_rate = described_class.exchange_rate(:USD)
|
71
|
+
expect(exchange_rate).to match(NBE: { sell: 16.05, buy: 15.9 })
|
72
|
+
end
|
73
|
+
|
74
|
+
it 'returns [Hash] of Bank: { sell: "Not Available" ... }',
|
75
|
+
vcr: { cassette_name: :NBE } do
|
76
|
+
exchange_rate = described_class.exchange_rate(:SYM)
|
77
|
+
expect(exchange_rate).to match(
|
78
|
+
NBE: { sell: 'Not Available', buy: 'Not Available' }
|
79
|
+
)
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
4
83
|
end
|
5
|
-
# rubocop:enable RSpec/EmptyExampleGroup
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: EGP_Rates
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ahmed Abdel-Razzak
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-11-
|
11
|
+
date: 2016-11-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -173,43 +173,64 @@ extra_rdoc_files: []
|
|
173
173
|
files:
|
174
174
|
- lib/egp_rates.rb
|
175
175
|
- lib/egp_rates/aaib.rb
|
176
|
+
- lib/egp_rates/adib.rb
|
176
177
|
- lib/egp_rates/al_ahli_bank_of_kuwait.rb
|
177
178
|
- lib/egp_rates/al_baraka_bank.rb
|
179
|
+
- lib/egp_rates/alex_bank.rb
|
178
180
|
- lib/egp_rates/bank.rb
|
179
181
|
- lib/egp_rates/banque_du_caire.rb
|
180
182
|
- lib/egp_rates/banque_misr.rb
|
183
|
+
- lib/egp_rates/blom.rb
|
181
184
|
- lib/egp_rates/cae.rb
|
182
185
|
- lib/egp_rates/cbe.rb
|
183
186
|
- lib/egp_rates/cib.rb
|
187
|
+
- lib/egp_rates/edbe.rb
|
188
|
+
- lib/egp_rates/egb.rb
|
189
|
+
- lib/egp_rates/faisal_bank.rb
|
184
190
|
- lib/egp_rates/midb.rb
|
185
191
|
- lib/egp_rates/nbe.rb
|
192
|
+
- lib/egp_rates/nbg.rb
|
186
193
|
- lib/egp_rates/saib.rb
|
187
194
|
- lib/egp_rates/suez_canal_bank.rb
|
188
195
|
- lib/egp_rates/ube.rb
|
189
196
|
- spec/cassettes/AAIB.yml
|
197
|
+
- spec/cassettes/ADIB.yml
|
190
198
|
- spec/cassettes/AlAhliBankOfKuwait.yml
|
191
199
|
- spec/cassettes/AlBarakaBank.yml
|
200
|
+
- spec/cassettes/AlexBank.yml
|
192
201
|
- spec/cassettes/BanqueDuCaire.yml
|
193
202
|
- spec/cassettes/BanqueMisr.yml
|
203
|
+
- spec/cassettes/Blom.yml
|
194
204
|
- spec/cassettes/CAE.yml
|
195
205
|
- spec/cassettes/CBE.yml
|
196
206
|
- spec/cassettes/CIB.yml
|
207
|
+
- spec/cassettes/EDBE.yml
|
208
|
+
- spec/cassettes/EGB.yml
|
209
|
+
- spec/cassettes/FaisalBank.yml
|
197
210
|
- spec/cassettes/MIDB.yml
|
198
211
|
- spec/cassettes/NBE.yml
|
212
|
+
- spec/cassettes/NBG.yml
|
199
213
|
- spec/cassettes/SAIB.yml
|
200
214
|
- spec/cassettes/SuezCanalBank.yml
|
201
215
|
- spec/cassettes/UBE.yml
|
202
216
|
- spec/egp_rates/aaib_spec.rb
|
217
|
+
- spec/egp_rates/adib_spec.rb
|
203
218
|
- spec/egp_rates/al_ahli_bank_of_kuwait_spec.rb
|
204
219
|
- spec/egp_rates/al_baraka_bank_spec.rb
|
220
|
+
- spec/egp_rates/alex_bank_spec.rb
|
205
221
|
- spec/egp_rates/bank_spec.rb
|
206
222
|
- spec/egp_rates/banque_du_caire_spec.rb
|
207
223
|
- spec/egp_rates/banque_misr_spec.rb
|
224
|
+
- spec/egp_rates/blom_spec.rb
|
208
225
|
- spec/egp_rates/cae_spec.rb
|
209
226
|
- spec/egp_rates/cbe_spec.rb
|
210
227
|
- spec/egp_rates/cib_spec.rb
|
228
|
+
- spec/egp_rates/edbe_spec.rb
|
229
|
+
- spec/egp_rates/egb_spec.rb
|
230
|
+
- spec/egp_rates/faisal_bank_spec.rb
|
211
231
|
- spec/egp_rates/midb_spec.rb
|
212
232
|
- spec/egp_rates/nbe_spec.rb
|
233
|
+
- spec/egp_rates/nbg_spec.rb
|
213
234
|
- spec/egp_rates/saib_spec.rb
|
214
235
|
- spec/egp_rates/suez_canal_bank_spec.rb
|
215
236
|
- spec/egp_rates/ube_spec.rb
|