Sha256: a7c683136880a8378a59a9ee762ff1ea978efda21e66c6da850205da26fbfe15
Contents?: true
Size: 1.59 KB
Versions: 9
Compression:
Stored size: 1.59 KB
Contents
# frozen_string_literal: true describe Correios::CEP::AddressFinder do context 'when zipcode is valid' do let(:cep) { '54250610' } let(:web_service_response) { '<end>Rua Fernando Amorim</end>' } let(:address) { { address: 'Rua Fernando Amorim' } } let(:web_service) { double(Correios::CEP::WebService) } let(:parser) { double(Correios::CEP::Parser) } let(:dependencies) { { web_service: web_service, parser: parser } } subject { described_class.new(dependencies) } before do allow(web_service).to receive(:request).with(cep).and_return(web_service_response) allow(parser).to receive(:address).with(web_service_response).and_return(address) end describe '#get' do it 'returns address' do expect(subject.get(cep)).to eq address end end describe '.get' do subject { described_class } it 'returns address' do expect(subject.get(cep, dependencies)).to eq address end end end { 'zipcode is required' => { 'is nil' => nil, 'is empty' => '' }, 'zipcode in invalid format (valid format: 00000-000)' => { 'is less than 8 digits' => '1234567', 'is greather than 8 digits' => '123456789', 'is in invalid format' => '1234-5678', 'is not numeric' => 'abcdefgh' } }.each do |error_message, values| values.each do |text, value| context "when zipcode #{text}" do it "raises ArgumentError with '#{error_message}' error message" do expect { subject.get(value) }.to raise_error(ArgumentError, error_message) end end end end end
Version data entries
9 entries across 9 versions & 1 rubygems