fedex 3.6.1 → 3.8.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ module Fedex
4
+ describe 'ServiceAvailability' do
5
+ let(:fedex) { Shipment.new(fedex_credentials) }
6
+ let(:origin) do {:postal_code => '400012', :country_code => 'IN'} end
7
+ let(:destination) do { :postal_code => '400020', :country_code => 'IN'} end
8
+ let(:options) do {:origin => origin, :destination => destination, :ship_date => '2014-06-28', :carrier_code => 'FDXE'} end
9
+
10
+ context 'Check Availability', :vcr do
11
+ it "succeeds" do
12
+ expect {
13
+ @service_availability = fedex.service_availability(options)
14
+ }.to_not raise_error
15
+
16
+ expect(@service_availability.class).not_to eq(Fedex::RateError)
17
+ end
18
+ end
19
+ end
20
+ end
@@ -40,7 +40,7 @@ describe Fedex::Request::Shipment do
40
40
  @shipment = fedex.ship(options)
41
41
  }.to_not raise_error
42
42
 
43
- @shipment.class.should_not == Fedex::RateError
43
+ expect(@shipment.class).not_to eq(Fedex::RateError)
44
44
  end
45
45
 
46
46
  it "succeeds with payments_options" do
@@ -48,7 +48,12 @@ describe Fedex::Request::Shipment do
48
48
  @shipment = fedex.ship(options.merge(:payment_options => payment_options))
49
49
  }.to_not raise_error
50
50
 
51
- @shipment.class.should_not == Fedex::RateError
51
+ expect(@shipment.class).not_to eq(Fedex::RateError)
52
+ end
53
+
54
+ it "should return a transit time" do
55
+ @shipment = fedex.ship(options)
56
+ expect(@shipment[:completed_shipment_detail][:operational_detail][:transit_time]).to eql("TWO_DAYS")
52
57
  end
53
58
 
54
59
  end
@@ -6,7 +6,7 @@ module Fedex
6
6
 
7
7
  context "shipments with tracking number", :vcr, :focus do
8
8
  let(:options) do
9
- { :package_id => "123456789012",
9
+ { :package_id => "771513950417",
10
10
  :package_type => "TRACKING_NUMBER_OR_DOORTAG",
11
11
  :include_detailed_scans => true
12
12
  }
@@ -16,13 +16,13 @@ module Fedex
16
16
 
17
17
  it "returns an array of tracking information results" do
18
18
  results = fedex.track(options)
19
- results.should_not be_empty
19
+ expect(results).not_to be_empty
20
20
  end
21
21
 
22
22
  it "returns events with tracking information" do
23
23
  tracking_info = fedex.track(options.merge(:uuid => uuid)).first
24
24
 
25
- tracking_info.events.should_not be_empty
25
+ expect(tracking_info.events).not_to be_empty
26
26
  end
27
27
 
28
28
  it "fails if using an invalid package type" do
@@ -30,7 +30,7 @@ module Fedex
30
30
 
31
31
  fail_options[:package_type] = "UNKNOWN_PACKAGE"
32
32
 
33
- lambda { fedex.track(options) }.should raise_error
33
+ expect { fedex.track(options) }.to raise_error
34
34
  end
35
35
 
36
36
  it "allows short hand tracking number queries" do
@@ -38,15 +38,30 @@ module Fedex
38
38
 
39
39
  tracking_info = fedex.track(shorthand_options).first
40
40
 
41
- tracking_info.tracking_number.should == options[:package_id]
41
+ expect(tracking_info.tracking_number).to eq(options[:package_id])
42
42
  end
43
43
 
44
44
  it "reports the status of the package" do
45
45
  tracking_info = fedex.track(options.merge(:uuid => uuid)).first
46
46
 
47
- tracking_info.status.should_not be_nil
47
+ expect(tracking_info.status).not_to be_nil
48
48
  end
49
49
 
50
50
  end
51
+
52
+ context "duplicate shipments with same tracking number", :vcr, :focus do
53
+ let(:options) do
54
+ { :package_id => "771054010426",
55
+ :package_type => "TRACKING_NUMBER_OR_DOORTAG",
56
+ :include_detailed_scans => true
57
+ }
58
+ end
59
+
60
+ it "should return tracking information for all shipments associated with tracking number" do
61
+ tracking_info = fedex.track(options)
62
+
63
+ expect(tracking_info.length).to be > 1
64
+ end
65
+ end
51
66
  end
52
67
  end
data/spec/spec_helper.rb CHANGED
@@ -5,5 +5,8 @@ require 'support/credentials'
5
5
 
6
6
  RSpec.configure do |c|
7
7
  c.filter_run_excluding :production unless fedex_production_credentials
8
+ c.expect_with :rspec do |expect_config|
9
+ expect_config.syntax = :expect
10
+ end
8
11
  end
9
12
 
data/spec/support/vcr.rb CHANGED
@@ -7,7 +7,6 @@ end
7
7
 
8
8
  RSpec.configure do |c|
9
9
  c.include Fedex::Helpers
10
- c.treat_symbols_as_metadata_keys_with_true_values = true
11
10
  c.around(:each, :vcr) do |example|
12
11
  name = underscorize(example.metadata[:full_description].split(/\s+/, 2).join("/")).gsub(/[^\w\/]+/, "_")
13
12
  VCR.use_cassette(name) { example.call }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fedex
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.6.1
4
+ version: 3.8.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,44 +9,44 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-04-05 00:00:00.000000000 Z
12
+ date: 2014-12-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: httparty
16
- requirement: &70315271490960 !ruby/object:Gem::Requirement
16
+ requirement: &70122735774560 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
- - - ~>
19
+ - - ! '>='
20
20
  - !ruby/object:Gem::Version
21
- version: 0.13.0
21
+ version: 0.8.3
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70315271490960
24
+ version_requirements: *70122735774560
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: nokogiri
27
- requirement: &70315271490460 !ruby/object:Gem::Requirement
27
+ requirement: &70122735773420 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
- - - ~>
30
+ - - ! '>='
31
31
  - !ruby/object:Gem::Version
32
- version: 1.6.0
32
+ version: 1.5.6
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70315271490460
35
+ version_requirements: *70122735773420
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rspec
38
- requirement: &70315271489980 !ruby/object:Gem::Requirement
38
+ requirement: &70122735772020 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
42
42
  - !ruby/object:Gem::Version
43
- version: 2.9.0
43
+ version: 3.0.0
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70315271489980
46
+ version_requirements: *70122735772020
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: vcr
49
- requirement: &70315271489520 !ruby/object:Gem::Requirement
49
+ requirement: &70122735770420 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 2.0.0
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70315271489520
57
+ version_requirements: *70122735770420
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: webmock
60
- requirement: &70315271489040 !ruby/object:Gem::Requirement
60
+ requirement: &70122735769440 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,21 @@ dependencies:
65
65
  version: 1.8.0
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70315271489040
68
+ version_requirements: *70122735769440
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: pry
71
- requirement: &70315271488620 !ruby/object:Gem::Requirement
71
+ requirement: &70122735768700 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: *70122735768700
80
+ - !ruby/object:Gem::Dependency
81
+ name: rake
82
+ requirement: &70122735784220 !ruby/object:Gem::Requirement
72
83
  none: false
73
84
  requirements:
74
85
  - - ! '>='
@@ -76,7 +87,7 @@ dependencies:
76
87
  version: '0'
77
88
  type: :development
78
89
  prerelease: false
79
- version_requirements: *70315271488620
90
+ version_requirements: *70122735784220
80
91
  description: Provides an interface to Fedex Web Services
81
92
  email:
82
93
  - jazminschroeder@gmail.com
@@ -94,14 +105,20 @@ files:
94
105
  - lib/fedex/address.rb
95
106
  - lib/fedex/credentials.rb
96
107
  - lib/fedex/document.rb
108
+ - lib/fedex/ground_manifest.rb
97
109
  - lib/fedex/helpers.rb
98
110
  - lib/fedex/label.rb
99
111
  - lib/fedex/rate.rb
100
112
  - lib/fedex/request/address.rb
101
113
  - lib/fedex/request/base.rb
114
+ - lib/fedex/request/delete.rb
102
115
  - lib/fedex/request/document.rb
116
+ - lib/fedex/request/ground_close.rb
103
117
  - lib/fedex/request/label.rb
118
+ - lib/fedex/request/pickup.rb
119
+ - lib/fedex/request/pickup_availability.rb
104
120
  - lib/fedex/request/rate.rb
121
+ - lib/fedex/request/service_availability.rb
105
122
  - lib/fedex/request/shipment.rb
106
123
  - lib/fedex/request/tracking_information.rb
107
124
  - lib/fedex/shipment.rb
@@ -110,9 +127,14 @@ files:
110
127
  - lib/fedex/version.rb
111
128
  - spec/config/fedex_credentials.example.yml
112
129
  - spec/lib/fedex/address_spec.rb
130
+ - spec/lib/fedex/delete_spec.rb
113
131
  - spec/lib/fedex/document_spec.rb
132
+ - spec/lib/fedex/ground_close_spec.rb
114
133
  - spec/lib/fedex/label_spec.rb
134
+ - spec/lib/fedex/pickup_availability_spec.rb
135
+ - spec/lib/fedex/pickup_spec.rb
115
136
  - spec/lib/fedex/rate_spec.rb
137
+ - spec/lib/fedex/service_availability_spec.rb
116
138
  - spec/lib/fedex/shipment_spec.rb
117
139
  - spec/lib/fedex/track_spec.rb
118
140
  - spec/spec_helper.rb
@@ -146,9 +168,14 @@ summary: Fedex Web Services
146
168
  test_files:
147
169
  - spec/config/fedex_credentials.example.yml
148
170
  - spec/lib/fedex/address_spec.rb
171
+ - spec/lib/fedex/delete_spec.rb
149
172
  - spec/lib/fedex/document_spec.rb
173
+ - spec/lib/fedex/ground_close_spec.rb
150
174
  - spec/lib/fedex/label_spec.rb
175
+ - spec/lib/fedex/pickup_availability_spec.rb
176
+ - spec/lib/fedex/pickup_spec.rb
151
177
  - spec/lib/fedex/rate_spec.rb
178
+ - spec/lib/fedex/service_availability_spec.rb
152
179
  - spec/lib/fedex/shipment_spec.rb
153
180
  - spec/lib/fedex/track_spec.rb
154
181
  - spec/spec_helper.rb