diff --git a/lib/census_api.rb b/lib/census_api.rb index 09fcbcc87..d290a1bbf 100644 --- a/lib/census_api.rb +++ b/lib/census_api.rb @@ -1,5 +1,6 @@ -include DocumentParser class CensusApi + include DocumentParser + def call(document_type, document_number) response = nil get_document_number_variants(document_type, document_number).each do |variant| diff --git a/lib/local_census.rb b/lib/local_census.rb index 1f6d3f903..dc566f5fb 100644 --- a/lib/local_census.rb +++ b/lib/local_census.rb @@ -1,5 +1,6 @@ -include DocumentParser class LocalCensus + include DocumentParser + def call(document_type, document_number) record = nil get_document_number_variants(document_type, document_number).each do |variant| diff --git a/lib/remote_census_api.rb b/lib/remote_census_api.rb index c5db70365..99ed06445 100644 --- a/lib/remote_census_api.rb +++ b/lib/remote_census_api.rb @@ -1,5 +1,6 @@ -include DocumentParser class RemoteCensusApi + include DocumentParser + def call(document_type, document_number, date_of_birth, postal_code) response = nil get_document_number_variants(document_type, document_number).each do |variant| diff --git a/spec/lib/document_parser_spec.rb b/spec/lib/document_parser_spec.rb index 6162bc9e7..be8b254ae 100644 --- a/spec/lib/document_parser_spec.rb +++ b/spec/lib/document_parser_spec.rb @@ -1,35 +1,44 @@ require "rails_helper" -include DocumentParser describe DocumentParser do + before do + dummy_class = Class.new do + include DocumentParser + end + + stub_const("DummyClass", dummy_class) + end + + let(:dummy) { DummyClass.new } + describe "#get_document_number_variants" do it "returns no variants when document_number is not defined" do - expect(DocumentParser.get_document_number_variants("1", "")).to be_empty + expect(dummy.get_document_number_variants("1", "")).to be_empty end it "trims and cleans up entry" do - expect(DocumentParser.get_document_number_variants(2, " 1 2@ 34")).to eq(["1234"]) + expect(dummy.get_document_number_variants(2, " 1 2@ 34")).to eq(["1234"]) end it "returns only one try for passports & residence cards" do - expect(DocumentParser.get_document_number_variants(2, "1234")).to eq(["1234"]) - expect(DocumentParser.get_document_number_variants(3, "1234")).to eq(["1234"]) + expect(dummy.get_document_number_variants(2, "1234")).to eq(["1234"]) + expect(dummy.get_document_number_variants(3, "1234")).to eq(["1234"]) end it "takes only the last 8 digits for dnis and resicence cards" do - expect(DocumentParser.get_document_number_variants(1, "543212345678")).to eq(["12345678"]) + expect(dummy.get_document_number_variants(1, "543212345678")).to eq(["12345678"]) end it "tries all the dni variants padding with zeroes" do - expect(DocumentParser.get_document_number_variants(1, "0123456")) + expect(dummy.get_document_number_variants(1, "0123456")) .to eq(["123456", "0123456", "00123456"]) - expect(DocumentParser.get_document_number_variants(1, "00123456")) + expect(dummy.get_document_number_variants(1, "00123456")) .to eq(["123456", "0123456", "00123456"]) end it "adds upper and lowercase letter when the letter is present" do - expect(DocumentParser.get_document_number_variants(1, "1234567A")) + expect(dummy.get_document_number_variants(1, "1234567A")) .to eq(%w[1234567 01234567 1234567a 1234567A 01234567a 01234567A]) end end