From 3ca307ebec5fe5e872bff2e3fd72e709fb309dd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andre=CC=81=20Cedik?= Date: Mon, 26 Oct 2015 15:31:07 +0100 Subject: [PATCH] add services attribute to carriers call --- lib/shipcloud/carrier.rb | 3 +- spec/shipcloud/carrier_spec.rb | 64 ++++++++++++++++++++++++++++------ 2 files changed, 54 insertions(+), 13 deletions(-) diff --git a/lib/shipcloud/carrier.rb b/lib/shipcloud/carrier.rb index 6124ca7..9713018 100644 --- a/lib/shipcloud/carrier.rb +++ b/lib/shipcloud/carrier.rb @@ -2,7 +2,6 @@ module Shipcloud class Carrier < Base include Shipcloud::Operations::All - attr_reader :name, :display_name + attr_reader :name, :display_name, :services end end - diff --git a/spec/shipcloud/carrier_spec.rb b/spec/shipcloud/carrier_spec.rb index c5f9bf2..7cbdb2b 100644 --- a/spec/shipcloud/carrier_spec.rb +++ b/spec/shipcloud/carrier_spec.rb @@ -3,11 +3,21 @@ describe Shipcloud::Carrier do describe '#initialize' do it 'initializes all attributes correctly' do - valid_attributes = { name: 'bogus', display_name: 'Bogus Carrier' } + valid_attributes = { + name: 'bogus', + display_name: 'Bogus Carrier', + services: %w( + standard, + returns, + one_day, + one_day_early + ) + } carrier = Shipcloud::Carrier.new(valid_attributes) expect(carrier.name).to eq 'bogus' expect(carrier.display_name).to eq 'Bogus Carrier' + expect(carrier.services).to eq %w(standard, returns, one_day, one_day_early) end end @@ -33,22 +43,54 @@ stub_carriers_request allow(Shipcloud::Carrier).to receive(:new) - carriers = Shipcloud::Carrier.all + Shipcloud::Carrier.all - expect(Shipcloud::Carrier).to have_received(:new). - with({ 'name' => 'carrier_1', 'display_name' => 'Carrier 1' }) - expect(Shipcloud::Carrier).to have_received(:new). - with({ 'name' => 'carrier_2', 'display_name' => 'Carrier 2' }) + expect(Shipcloud::Carrier).to have_received(:new) + .with( + 'name' => 'carrier_1', + 'display_name' => 'Carrier 1', + 'services' => %w( + standard, + returns, + one_day, + one_day_early + ) + ) + expect(Shipcloud::Carrier).to have_received(:new) + .with( + 'name' => 'carrier_2', + 'display_name' => 'Carrier 2', + 'services' => %w( + standard, + returns + ) + ) end end def stub_carriers_request - allow(Shipcloud).to receive(:request). - with(:get, 'carriers', {}). - and_return( + allow(Shipcloud).to receive(:request) + .with(:get, 'carriers', {}) + .and_return( [ - { 'name' => 'carrier_1', 'display_name' => 'Carrier 1' }, - { 'name' => 'carrier_2', 'display_name' => 'Carrier 2' }, + { + 'name' => 'carrier_1', + 'display_name' => 'Carrier 1', + 'services' => %w( + standard, + returns, + one_day, + one_day_early + ) + }, + { + 'name' => 'carrier_2', + 'display_name' => 'Carrier 2', + 'services' => %w( + standard, + returns + ) + } ] ) end