correios_sigep 1.0.0 → 1.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.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/correios_sigep.gemspec +1 -1
- data/lib/correios_sigep/logistic_reverse/base_client.rb +3 -4
- data/lib/correios_sigep/version.rb +1 -1
- metadata +4 -90
- data/.gitignore +0 -14
- data/.rspec +0 -3
- data/.rubocop.yml +0 -1160
- data/.ruby-gemset +0 -1
- data/.ruby-version +0 -1
- data/.travis.yml +0 -16
- data/Gemfile +0 -8
- data/Rakefile +0 -15
- data/bin/rake +0 -16
- data/spec/correios_sigep/builders/xml/request_collect_number_spec.rb +0 -22
- data/spec/correios_sigep/builders/xml/request_spec.rb +0 -34
- data/spec/correios_sigep/builders/xml/request_sro_spec.rb +0 -17
- data/spec/correios_sigep/configuration_spec.rb +0 -87
- data/spec/correios_sigep/logistic_reverse/base_client_spec.rb +0 -93
- data/spec/correios_sigep/logistic_reverse/request_collect_number_spec.rb +0 -106
- data/spec/correios_sigep/logistic_reverse/request_sro_spec.rb +0 -86
- data/spec/correios_sigep/models/collect_spec.rb +0 -149
- data/spec/correios_sigep/models/logistic_reverse_spec.rb +0 -221
- data/spec/correios_sigep/models/object_spec.rb +0 -53
- data/spec/correios_sigep/models/product_spec.rb +0 -37
- data/spec/correios_sigep/models/recipient_spec.rb +0 -108
- data/spec/correios_sigep/models/sender_spec.rb +0 -141
- data/spec/correios_sigep/models/sro_spec.rb +0 -40
- data/spec/correios_sigep_spec.rb +0 -27
- data/spec/fixtures/builders/logistic_reverse.xml +0 -66
- data/spec/fixtures/builders/request_collect_number.xml +0 -64
- data/spec/fixtures/builders/request_sro.xml +0 -4
- data/spec/fixtures/correios/request_collect_number/response_already_in_use.xml +0 -14
- data/spec/fixtures/correios/request_collect_number/response_inexistent_zipcode.xml +0 -14
- data/spec/fixtures/correios/request_collect_number/response_not_answered_for_zipcode.xml +0 -14
- data/spec/fixtures/correios/request_collect_number/response_not_configured_client.xml +0 -14
- data/spec/fixtures/correios/request_collect_number/response_success.xml +0 -27
- data/spec/fixtures/correios/request_collect_number/response_unavailable_house_collect.xml +0 -14
- data/spec/fixtures/correios/request_collect_number/response_unavailable_service.xml +0 -14
- data/spec/fixtures/correios/request_collect_number/response_unexpected.xml +0 -14
- data/spec/fixtures/correios/request_sro/response_array_success.xml +0 -38
- data/spec/fixtures/correios/request_sro/response_collect_number_not_found.xml +0 -13
- data/spec/fixtures/correios/request_sro/response_required_fields.xml +0 -13
- data/spec/fixtures/correios/request_sro/response_sro_not_ready.xml +0 -30
- data/spec/fixtures/correios/request_sro/response_success.xml +0 -30
- data/spec/fixtures/correios/request_sro/response_unknown_error.xml +0 -13
- data/spec/fixtures/correios/wsdl.xml +0 -650
- data/spec/fixtures/requests/collect_number_request.xml +0 -66
- data/spec/fixtures/requests/sro_request.xml +0 -6
- data/spec/spec_helper.rb +0 -39
- data/spec/support/fixture_helper.rb +0 -13
- data/spec/support/logistic_reverse_helper.rb +0 -15
data/.ruby-gemset
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
correios-sigep
|
data/.ruby-version
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
2.1.5
|
data/.travis.yml
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
language: ruby
|
2
|
-
before_install:
|
3
|
-
- gem install bundler -v '~> 1.5'
|
4
|
-
rvm:
|
5
|
-
- 2.1.10
|
6
|
-
- 2.2.6
|
7
|
-
- 2.3.3
|
8
|
-
- 2.4.0
|
9
|
-
bundler_args: --without debug
|
10
|
-
deploy:
|
11
|
-
provider: rubygems
|
12
|
-
api_key:
|
13
|
-
secure: JxDBiuSJgTyne4WriC56QqOhhl07ojHN/qZerKyxabBj1yQ/GmxlzcdvXdU6eUFJ1E3BvrfrMmraJ28xADm2hG3xgxkNP/D7jqTv0o0h2CODh+W2dr0iv3bNkoDOfjChNrJZCLPXJbuQp8G3O/KJS84g4l4dEIRIRTCS/0yMEBc=
|
14
|
-
gem: correios_sigep
|
15
|
-
on:
|
16
|
-
repo: duduribeiro/correios_sigep
|
data/Gemfile
DELETED
data/Rakefile
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
require 'bundler/gem_tasks'
|
2
|
-
|
3
|
-
desc "Default task"
|
4
|
-
task default: :spec
|
5
|
-
|
6
|
-
desc "Open an irb session preloaded with this library"
|
7
|
-
task :console do
|
8
|
-
exec 'irb -r correios_sigep -I ./lib'
|
9
|
-
end
|
10
|
-
|
11
|
-
desc "Run specs"
|
12
|
-
task :spec do
|
13
|
-
system "rspec ."
|
14
|
-
end
|
15
|
-
|
data/bin/rake
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
#
|
3
|
-
# This file was generated by Bundler.
|
4
|
-
#
|
5
|
-
# The application 'rake' is installed as part of a gem, and
|
6
|
-
# this file is here to facilitate running it.
|
7
|
-
#
|
8
|
-
|
9
|
-
require 'pathname'
|
10
|
-
ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
|
11
|
-
Pathname.new(__FILE__).realpath)
|
12
|
-
|
13
|
-
require 'rubygems'
|
14
|
-
require 'bundler/setup'
|
15
|
-
|
16
|
-
load Gem.bin_path('rake', 'rake')
|
@@ -1,22 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
module CorreiosSigep
|
4
|
-
module Builders
|
5
|
-
module XML
|
6
|
-
describe RequestCollectNumber do
|
7
|
-
describe '.build_xml' do
|
8
|
-
subject { described_class.build_xml(logistic_reverse).chop }
|
9
|
-
|
10
|
-
let(:logistic_reverse) { CorreiosSigep::Models::LogisticReverse.new }
|
11
|
-
let(:expected_xml) { builders_fixture('request_collect_number.xml') }
|
12
|
-
|
13
|
-
before :each do
|
14
|
-
seed_logistic_reverse(logistic_reverse)
|
15
|
-
end
|
16
|
-
|
17
|
-
it { should eq expected_xml }
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
@@ -1,34 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
module CorreiosSigep
|
4
|
-
module Builders
|
5
|
-
module XML
|
6
|
-
describe Request do
|
7
|
-
describe '.build_xml' do
|
8
|
-
let(:request) { double(:request, to_xml: '<root><test></root>') }
|
9
|
-
context 'when do not override anything' do
|
10
|
-
it 'builds a Authentication XML with Configuration parameters' do
|
11
|
-
expected_response = [
|
12
|
-
'<codAdministrativo>08082650</codAdministrativo><test/>'
|
13
|
-
].join + "\n"
|
14
|
-
expect(described_class.build_xml request).to eq expected_response
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
context 'when override the administrative fields' do
|
19
|
-
it 'builds a Authentication XML with the override parameter' do
|
20
|
-
administrative_fields = Models::AdministrativeFields.new(administrative_code: 'adm123',
|
21
|
-
card: 'card123',
|
22
|
-
service_code: 'ser123')
|
23
|
-
expected_response = [
|
24
|
-
'<codAdministrativo>adm123</codAdministrativo><test/>'
|
25
|
-
].join + "\n"
|
26
|
-
expect(described_class.build_xml request, administrative: administrative_fields).to eq expected_response
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
module CorreiosSigep
|
2
|
-
module Builders
|
3
|
-
module XML
|
4
|
-
describe RequestSRO do
|
5
|
-
describe '.build_xml' do
|
6
|
-
subject { described_class.build_xml(sro).chop }
|
7
|
-
|
8
|
-
let(:sro_params) { { collect_number: '1234', type: 'A' } }
|
9
|
-
let(:sro) { CorreiosSigep::Models::SRO.new(sro_params) }
|
10
|
-
let(:expected_xml) { builders_fixture('request_sro.xml') }
|
11
|
-
|
12
|
-
it { should eq expected_xml }
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
@@ -1,87 +0,0 @@
|
|
1
|
-
module CorreiosSigep
|
2
|
-
describe Configuration do
|
3
|
-
subject { described_class.new }
|
4
|
-
|
5
|
-
describe '#administrative_code' do
|
6
|
-
it 'returns nil when unset' do
|
7
|
-
expect(subject.administrative_code).to be_nil
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
describe '#administrative_code=' do
|
12
|
-
it 'sets the administrative code in configuration' do
|
13
|
-
subject.administrative_code = '12345'
|
14
|
-
expect(subject.administrative_code).to eq '12345'
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
describe '#card' do
|
19
|
-
it 'returns nil when unset' do
|
20
|
-
expect(subject.card).to be_nil
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
describe '#card=' do
|
25
|
-
it 'sets the card in configuration' do
|
26
|
-
subject.card = 'card'
|
27
|
-
expect(subject.card).to eq 'card'
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
describe '#service_code' do
|
32
|
-
it 'returns nil when unset' do
|
33
|
-
expect(subject.service_code).to be_nil
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
describe '#service_code=' do
|
38
|
-
it 'sets the password in configuration' do
|
39
|
-
subject.service_code = 'service_code'
|
40
|
-
expect(subject.service_code).to eq 'service_code'
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
describe '#timeout' do
|
45
|
-
it 'returns nil when unset' do
|
46
|
-
expect(subject.timeout).to be_nil
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
describe '#timeout=' do
|
51
|
-
it 'sets the timeout in configuration' do
|
52
|
-
subject.timeout = 15
|
53
|
-
expect(subject.timeout).to eq 15
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
describe '#user' do
|
58
|
-
it 'returns nil when unset' do
|
59
|
-
expect(subject.user).to be_nil
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
describe '#user=' do
|
64
|
-
let(:user) { 'user' }
|
65
|
-
|
66
|
-
it 'sets the user in configuration' do
|
67
|
-
subject.user = user
|
68
|
-
expect(subject.user).to eq user
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
describe '#password' do
|
73
|
-
it 'returns nil when unset' do
|
74
|
-
expect(subject.password).to be_nil
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
78
|
-
describe '#password=' do
|
79
|
-
let(:pass) { 'pass' }
|
80
|
-
|
81
|
-
it 'sets the password in configuration' do
|
82
|
-
subject.password = pass
|
83
|
-
expect(subject.password).to eq pass
|
84
|
-
end
|
85
|
-
end
|
86
|
-
end
|
87
|
-
end
|
@@ -1,93 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
module CorreiosSigep
|
4
|
-
module LogisticReverse
|
5
|
-
describe BaseClient do
|
6
|
-
let(:user) { CorreiosSigep.configuration.user }
|
7
|
-
let(:pass) { CorreiosSigep.configuration.password }
|
8
|
-
|
9
|
-
context 'setting up a proxy' do
|
10
|
-
subject { described_class.new }
|
11
|
-
|
12
|
-
context 'with a proxy' do
|
13
|
-
before { CorreiosSigep.configuration.proxy = 'http://localhost' }
|
14
|
-
let(:params) do
|
15
|
-
{
|
16
|
-
adapter: :net_http_persistent,
|
17
|
-
proxy: CorreiosSigep.configuration.proxy,
|
18
|
-
wsdl: described_class.new.wsdl,
|
19
|
-
open_timeout: CorreiosSigep::LogisticReverse::BaseClient::DEFAULT_TIMEOUT,
|
20
|
-
read_timeout: CorreiosSigep::LogisticReverse::BaseClient::DEFAULT_TIMEOUT,
|
21
|
-
basic_auth: [user, pass],
|
22
|
-
headers: { 'SOAPAction' => '' }
|
23
|
-
}
|
24
|
-
end
|
25
|
-
|
26
|
-
it 'initializes @client with proxy' do
|
27
|
-
expect(Savon).to receive(:client).with(params) { true }
|
28
|
-
subject
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
context 'without a proxy' do
|
33
|
-
before { CorreiosSigep.configuration.proxy = nil }
|
34
|
-
let(:params) do
|
35
|
-
{
|
36
|
-
adapter: :net_http_persistent,
|
37
|
-
wsdl: described_class.new.wsdl,
|
38
|
-
open_timeout: CorreiosSigep::LogisticReverse::BaseClient::DEFAULT_TIMEOUT,
|
39
|
-
read_timeout: CorreiosSigep::LogisticReverse::BaseClient::DEFAULT_TIMEOUT,
|
40
|
-
basic_auth: [user, pass],
|
41
|
-
headers: { 'SOAPAction' => '' }
|
42
|
-
}
|
43
|
-
end
|
44
|
-
|
45
|
-
it 'initializes @client without proxy' do
|
46
|
-
expect(Savon).to receive(:client).with(params) { true }
|
47
|
-
subject
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
describe '#wsdl' do
|
53
|
-
subject { described_class.new.wsdl }
|
54
|
-
|
55
|
-
context 'in a test environment' do
|
56
|
-
it 'returns the staging url' do
|
57
|
-
allow(ENV).to receive(:[]).with('GEM_ENV').and_return 'test'
|
58
|
-
expect(subject).to eq 'https://apphom.correios.com.br/logisticaReversaWS/logisticaReversaService/logisticaReversaWS?wsdl'
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
context 'in other environment' do
|
63
|
-
it 'returns the production url' do
|
64
|
-
allow(ENV).to receive(:[]).with('GEM_ENV').and_return 'prod'
|
65
|
-
expect(subject).to eq 'https://cws.correios.com.br/logisticaReversaWS/logisticaReversaService/logisticaReversaWS?wsdl'
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
end
|
70
|
-
|
71
|
-
context 'setting a timeout' do
|
72
|
-
subject { described_class.new }
|
73
|
-
|
74
|
-
before { CorreiosSigep.configuration.timeout = 15 }
|
75
|
-
let(:params) do
|
76
|
-
{
|
77
|
-
adapter: :net_http_persistent,
|
78
|
-
wsdl: described_class.new.wsdl,
|
79
|
-
open_timeout: CorreiosSigep.configuration.timeout,
|
80
|
-
read_timeout: CorreiosSigep.configuration.timeout,
|
81
|
-
basic_auth: [user, pass],
|
82
|
-
headers: { 'SOAPAction' => '' }
|
83
|
-
}
|
84
|
-
end
|
85
|
-
|
86
|
-
it 'initializes @client with informed timeout' do
|
87
|
-
expect(Savon).to receive(:client).with(params) { true }
|
88
|
-
subject
|
89
|
-
end
|
90
|
-
end
|
91
|
-
end
|
92
|
-
end
|
93
|
-
end
|
@@ -1,106 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
module CorreiosSigep
|
4
|
-
module LogisticReverse
|
5
|
-
describe RequestCollectNumber do
|
6
|
-
let(:logistic_reverse) { Models::LogisticReverse.new }
|
7
|
-
let(:request_collect) { described_class.new logistic_reverse }
|
8
|
-
let(:body) { request_fixture('collect_number_request.xml').chop }
|
9
|
-
let(:user) { 'user' }
|
10
|
-
let(:pass) { 'pass' }
|
11
|
-
|
12
|
-
before do
|
13
|
-
seed_logistic_reverse(logistic_reverse)
|
14
|
-
|
15
|
-
# WSDL
|
16
|
-
stub_request(:get, 'https://apphom.correios.com.br/logisticaReversaWS/logisticaReversaService/logisticaReversaWS?wsdl').
|
17
|
-
with(basic_auth: [user, pass]).
|
18
|
-
with(:headers => {
|
19
|
-
'Accept'=>'*/*',
|
20
|
-
'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
|
21
|
-
'User-Agent'=>'Ruby'
|
22
|
-
}).to_return(:status => 200, :body => correios_fixture('wsdl.xml'), :headers => {})
|
23
|
-
|
24
|
-
# REQUEST
|
25
|
-
stub_request(:post, 'https://apphom.correios.com.br/logisticaReversaWS/logisticaReversaService/logisticaReversaWS').
|
26
|
-
with(basic_auth: [user, pass]).
|
27
|
-
with(:body => body, :headers => {
|
28
|
-
'Accept'=>'*/*',
|
29
|
-
'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
|
30
|
-
'User-Agent'=>'Ruby'
|
31
|
-
}).to_return(:status => 200, :body => correios_fixture("request_collect_number/#{response_body}"), :headers => {})
|
32
|
-
end
|
33
|
-
|
34
|
-
describe '.process' do
|
35
|
-
subject { request_collect.process }
|
36
|
-
|
37
|
-
context 'with success response' do
|
38
|
-
let(:response_body) { 'response_success.xml' }
|
39
|
-
|
40
|
-
it 'returns the collect number' do
|
41
|
-
expect(subject).to eq '373533437'
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
context 'with ticket already in use' do
|
46
|
-
let(:response_body) { 'response_already_in_use.xml' }
|
47
|
-
|
48
|
-
it 'raises TicketAlreadyUsed error' do
|
49
|
-
expect{subject}.to raise_error(Models::Errors::TicketAlreadyUsed)
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
context 'when service is unavailable' do
|
54
|
-
let(:response_body) { 'response_unavailable_service.xml' }
|
55
|
-
|
56
|
-
it 'raises UnvailableService error' do
|
57
|
-
expect{subject}.to raise_error(Models::Errors::UnavailableService)
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
context 'when zipcode not exist' do
|
62
|
-
let(:response_body) { 'response_inexistent_zipcode.xml' }
|
63
|
-
|
64
|
-
it 'raises InexistentZipcode error' do
|
65
|
-
expect{subject}.to raise_error(Models::Errors::InexistentZipcode)
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
context 'when collect is not available for the house' do
|
70
|
-
let(:response_body) { 'response_unavailable_house_collect.xml' }
|
71
|
-
|
72
|
-
it 'raises UnavailableHouseCollect error' do
|
73
|
-
expect{subject}.to raise_error(Models::Errors::UnavailableHouseCollect)
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
|
78
|
-
context 'when collect is for a not answered zipcode' do
|
79
|
-
let(:response_body) { 'response_not_answered_for_zipcode.xml' }
|
80
|
-
|
81
|
-
it 'raises CollectNotAnsweredForTheZipcode error' do
|
82
|
-
expect{subject}.to raise_error(Models::Errors::CollectNotAnsweredForTheZipcode)
|
83
|
-
end
|
84
|
-
end
|
85
|
-
|
86
|
-
context 'when user is not configured to use sigepweb' do
|
87
|
-
let(:response_body) { 'response_not_configured_client.xml' }
|
88
|
-
|
89
|
-
it 'raises NotConfiguredClient error' do
|
90
|
-
expect{subject}.to raise_error(Models::Errors::NotConfiguredClient)
|
91
|
-
end
|
92
|
-
end
|
93
|
-
|
94
|
-
|
95
|
-
context 'when correios answer with another code' do
|
96
|
-
let(:response_body) { 'response_unexpected.xml' }
|
97
|
-
|
98
|
-
it 'raises UnknownError error' do
|
99
|
-
expect{subject}.to raise_error(Models::Errors::UnknownError)
|
100
|
-
end
|
101
|
-
end
|
102
|
-
|
103
|
-
end
|
104
|
-
end
|
105
|
-
end
|
106
|
-
end
|
@@ -1,86 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
module CorreiosSigep
|
4
|
-
module LogisticReverse
|
5
|
-
describe RequestSRO do
|
6
|
-
let(:sro_params) { { collect_number: '1234', type: 'A' } }
|
7
|
-
let(:sro) { CorreiosSigep::Models::SRO.new(sro_params) }
|
8
|
-
let(:body) { request_fixture('sro_request.xml').chop }
|
9
|
-
let(:user) { 'user' }
|
10
|
-
let(:pass) { 'pass' }
|
11
|
-
|
12
|
-
before do
|
13
|
-
# WSDL
|
14
|
-
stub_request(:get, 'https://apphom.correios.com.br/logisticaReversaWS/logisticaReversaService/logisticaReversaWS?wsdl').
|
15
|
-
with(basic_auth: [user, pass]).
|
16
|
-
with(:headers => {
|
17
|
-
'Accept'=>'*/*',
|
18
|
-
'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
|
19
|
-
'User-Agent'=>'Ruby'
|
20
|
-
}).to_return(status: 200, body: correios_fixture('wsdl.xml'), headers: {})
|
21
|
-
|
22
|
-
# REQUEST
|
23
|
-
stub_request(:post, 'https://apphom.correios.com.br/logisticaReversaWS/logisticaReversaService/logisticaReversaWS').
|
24
|
-
with(basic_auth: [user, pass]).
|
25
|
-
with(:body => body, :headers => {
|
26
|
-
'Accept'=>'*/*',
|
27
|
-
'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3',
|
28
|
-
'User-Agent'=>'Ruby'
|
29
|
-
}).to_return(status: 200, body: correios_fixture("request_sro/#{response_body}"), headers: {})
|
30
|
-
end
|
31
|
-
|
32
|
-
describe '.process' do
|
33
|
-
subject { described_class.new(sro).process }
|
34
|
-
|
35
|
-
context 'when successfully brings a SRO' do
|
36
|
-
let(:response_body) { 'response_success.xml' }
|
37
|
-
|
38
|
-
it 'returns sro ticket' do
|
39
|
-
expect(subject).to eq 'ETI12345'
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
context 'when SRO is not ready yet' do
|
44
|
-
let(:response_body) { 'response_sro_not_ready.xml' }
|
45
|
-
|
46
|
-
it 'raises SRONotReady error' do
|
47
|
-
expect{subject}.to raise_error Models::Errors::SRONotReady
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
context 'when required fields is not filled' do
|
52
|
-
let(:response_body) { 'response_required_fields.xml' }
|
53
|
-
|
54
|
-
it 'raises RequiredFields error' do
|
55
|
-
expect{subject}.to raise_error Models::Errors::RequiredFields
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
context 'when CollectNumber does not exist or it is not valid' do
|
60
|
-
let(:response_body) { 'response_collect_number_not_found.xml' }
|
61
|
-
|
62
|
-
it 'raises CollectNumberNotFound' do
|
63
|
-
expect{subject}.to raise_error Models::Errors::CollectNumberNotFound
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
context 'with an unknow error' do
|
68
|
-
let(:response_body) { 'response_unknown_error.xml' }
|
69
|
-
|
70
|
-
it 'raises UnkowError' do
|
71
|
-
expect{subject}.to raise_error Models::Errors::UnknownError
|
72
|
-
end
|
73
|
-
end
|
74
|
-
|
75
|
-
context 'when response is an array' do
|
76
|
-
let(:response_body) { 'response_array_success.xml' }
|
77
|
-
|
78
|
-
it 'returns sro ticket' do
|
79
|
-
expect(subject).to eq 'ETI12345'
|
80
|
-
end
|
81
|
-
end
|
82
|
-
|
83
|
-
end
|
84
|
-
end
|
85
|
-
end
|
86
|
-
end
|