fedex 3.6.1 → 3.8.0
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.
- data/Readme.md +155 -2
- data/fedex.gemspec +4 -4
- data/lib/fedex/ground_manifest.rb +25 -0
- data/lib/fedex/label.rb +21 -6
- data/lib/fedex/rate.rb +3 -2
- data/lib/fedex/request/base.rb +41 -5
- data/lib/fedex/request/delete.rb +62 -0
- data/lib/fedex/request/ground_close.rb +73 -0
- data/lib/fedex/request/pickup.rb +121 -0
- data/lib/fedex/request/pickup_availability.rb +89 -0
- data/lib/fedex/request/rate.rb +7 -0
- data/lib/fedex/request/service_availability.rb +86 -0
- data/lib/fedex/request/shipment.rb +31 -7
- data/lib/fedex/request/tracking_information.rb +11 -2
- data/lib/fedex/shipment.rb +47 -5
- data/lib/fedex/tracking_information.rb +2 -1
- data/lib/fedex/tracking_information/event.rb +5 -2
- data/lib/fedex/version.rb +3 -1
- data/spec/lib/fedex/address_spec.rb +4 -4
- data/spec/lib/fedex/delete_spec.rb +26 -0
- data/spec/lib/fedex/document_spec.rb +9 -9
- data/spec/lib/fedex/ground_close_spec.rb +42 -0
- data/spec/lib/fedex/label_spec.rb +4 -4
- data/spec/lib/fedex/pickup_availability_spec.rb +19 -0
- data/spec/lib/fedex/pickup_spec.rb +32 -0
- data/spec/lib/fedex/rate_spec.rb +14 -10
- data/spec/lib/fedex/service_availability_spec.rb +20 -0
- data/spec/lib/fedex/shipment_spec.rb +7 -2
- data/spec/lib/fedex/track_spec.rb +21 -6
- data/spec/spec_helper.rb +3 -0
- data/spec/support/vcr.rb +0 -1
- metadata +46 -19
@@ -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.
|
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.
|
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 => "
|
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.
|
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.
|
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
|
-
|
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.
|
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.
|
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
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.
|
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
|
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: &
|
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.
|
21
|
+
version: 0.8.3
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70122735774560
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: nokogiri
|
27
|
-
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
|
32
|
+
version: 1.5.6
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70122735773420
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rspec
|
38
|
-
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:
|
43
|
+
version: 3.0.0
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70122735772020
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: vcr
|
49
|
-
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: *
|
57
|
+
version_requirements: *70122735770420
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: webmock
|
60
|
-
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: *
|
68
|
+
version_requirements: *70122735769440
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: pry
|
71
|
-
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: *
|
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
|