ibandit 0.11.11 → 0.11.12

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7cf488eed67769ff39b6249be1b7689359f9eb4a
4
- data.tar.gz: 0f32aaf43214999c417badf26c730a334bdd3610
3
+ metadata.gz: '08d2b3f6258a3edcbfb5b2e7edcd1c44909d2476'
4
+ data.tar.gz: 57e642a2dff2d94ffa93fa93b6ed30ca7862c797
5
5
  SHA512:
6
- metadata.gz: 20202b4dd9710f4912bbef1b0c7f108c1c65aa6c1fc6c279e9b4538df4e204e1aade6dd4c2ce5b28fe8351c46d24363c75125e2c1f7c75e57ce3dce2d6a54bac
7
- data.tar.gz: f918279bb0f3943d334ae6f1fbc67f38357d3902a0e09af53f8187c7879232137a54b45ae0660f82472c30411a40519a6087f00414dee02e4ca6678c8d6e4ed7
6
+ metadata.gz: 3b54fe472f576c2ddf662794fd279df02779750493fe27608bdc07d45d9085e449e6c3cf889a7f113803a1b18972e2ecaac872e03b2b6b0e6e243e2c9103d569
7
+ data.tar.gz: bd9ccc9de7cd8dfb2f6bb676945046d78ed7168de51c4ad0b353b59cc4722c8018bdfd9137ab634251f09493a1c9937308175e87e273c07db028f88de7bf0f0e
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 0.11.12 - March 21, 2018
2
+
3
+ - Validate Australian BSBs
4
+
1
5
  ## 0.11.11 - March 1, 2018
2
6
 
3
7
  - Fix padding for Australian pseudo-IBANs
data/lib/ibandit/iban.rb CHANGED
@@ -269,6 +269,7 @@ module Ibandit
269
269
  case country_code
270
270
  when "DE" then supports_iban_determination?
271
271
  when "SE" then valid_swedish_details?
272
+ when "AU" then valid_australian_details?
272
273
  else true
273
274
  end
274
275
  end
@@ -341,6 +342,19 @@ module Ibandit
341
342
  true
342
343
  end
343
344
 
345
+ def valid_australian_details?
346
+ return true unless country_code == "AU"
347
+
348
+ bsb_check?
349
+ end
350
+
351
+ def bsb_check?
352
+ return true unless country_code == "AU"
353
+ return true unless Ibandit.modulus_checker
354
+
355
+ valid_modulus_check_branch_code?
356
+ end
357
+
344
358
  ###################
345
359
  # Private methods #
346
360
  ###################
@@ -1,3 +1,3 @@
1
1
  module Ibandit
2
- VERSION = "0.11.11".freeze
2
+ VERSION = "0.11.12".freeze
3
3
  end
@@ -1698,6 +1698,107 @@ describe Ibandit::IBAN do
1698
1698
  end
1699
1699
  end
1700
1700
 
1701
+ describe "valid_australian_details" do
1702
+ subject { iban.valid_australian_details? }
1703
+
1704
+ context "with non-Australian details" do
1705
+ let(:arg) do
1706
+ {
1707
+ country_code: "GB",
1708
+ bank_code: "1234",
1709
+ branch_code: "200000",
1710
+ account_number: "55779911",
1711
+ }
1712
+ end
1713
+
1714
+ it { is_expected.to be(true) }
1715
+ end
1716
+
1717
+ context "with Australian details" do
1718
+ let(:arg) do
1719
+ {
1720
+ country_code: "AU",
1721
+ branch_code: "123-456",
1722
+ account_number: "123456789",
1723
+ }
1724
+ end
1725
+
1726
+ context "without a modulus checker defined" do
1727
+ it { is_expected.to be(true) }
1728
+ end
1729
+
1730
+ context "with a modulus checker defined" do
1731
+ before do
1732
+ Ibandit.modulus_checker = double(
1733
+ valid_branch_code?: valid_branch_code,
1734
+ )
1735
+ iban.valid_australian_details?
1736
+ end
1737
+ after { Ibandit.modulus_checker = nil }
1738
+
1739
+ let(:valid_branch_code) { true }
1740
+
1741
+ it "calls valid_branch_code? with an IBAN object" do
1742
+ expect(Ibandit.modulus_checker).
1743
+ to receive(:valid_branch_code?).
1744
+ with(instance_of(Ibandit::IBAN))
1745
+
1746
+ iban.valid_australian_details?
1747
+ end
1748
+
1749
+ it { is_expected.to be(true) }
1750
+
1751
+ context "with an invalid bsb" do
1752
+ let(:valid_branch_code) { false }
1753
+
1754
+ it { is_expected.to be(false) }
1755
+
1756
+ context "locale en", locale: :en do
1757
+ specify do
1758
+ expect(iban.errors).to include(branch_code: "is invalid")
1759
+ end
1760
+ end
1761
+
1762
+ context "locale fr", locale: :fr do
1763
+ specify do
1764
+ expect(iban.errors).to include(branch_code: "est invalide")
1765
+ end
1766
+ end
1767
+
1768
+ context "locale de", locale: :de do
1769
+ specify do
1770
+ expect(iban.errors).to include(branch_code: "ist nicht gültig")
1771
+ end
1772
+ end
1773
+
1774
+ context "locale pt", locale: :pt do
1775
+ specify do
1776
+ expect(iban.errors).to include(branch_code: "é inválido")
1777
+ end
1778
+ end
1779
+
1780
+ context "locale es", locale: :es do
1781
+ specify do
1782
+ expect(iban.errors).to include(branch_code: "es inválido")
1783
+ end
1784
+ end
1785
+
1786
+ context "locale it", locale: :it do
1787
+ specify do
1788
+ expect(iban.errors).to include(branch_code: "non è valido")
1789
+ end
1790
+ end
1791
+
1792
+ context "locale nl", locale: :nl do
1793
+ specify do
1794
+ expect(iban.errors).to include(branch_code: "is ongeldig")
1795
+ end
1796
+ end
1797
+ end
1798
+ end
1799
+ end
1800
+ end
1801
+
1701
1802
  describe "#valid?" do
1702
1803
  describe "validations called" do
1703
1804
  after { iban.valid? }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ibandit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.11
4
+ version: 0.11.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - GoCardless
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-03-01 00:00:00.000000000 Z
11
+ date: 2018-03-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -206,7 +206,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
206
206
  version: '0'
207
207
  requirements: []
208
208
  rubyforge_project:
209
- rubygems_version: 2.6.13
209
+ rubygems_version: 2.6.14
210
210
  signing_key:
211
211
  specification_version: 4
212
212
  summary: Convert national banking details into IBANs, and vice-versa.