active_shipping 1.7.2 → 1.7.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a721187cba1984ab9a456dea8c660c81d2a1aa68
4
- data.tar.gz: 4b6ba4b2a8bedd5434f611d81d2ba74df92fab5e
3
+ metadata.gz: 79c6b3362e5819936e2a22e145f561bef37dbd4f
4
+ data.tar.gz: 3e0b2fcd0aa37da3733796632bdf92864e538e52
5
5
  SHA512:
6
- metadata.gz: 7fecbfa0feaf36671db206bb30fb3e981b5c079183d45ebd8a2c096a41ba4d66f516b69d443ed3e08b54c1af4fa070ce618fb9f3fc89ce48bf2e19fafcec0d2b
7
- data.tar.gz: 80a224c59f08ba748989a2aacc4ddcacd529296c43c4d0caa370339a26d60d1d2c29d860ce4e0c1d5719e2f791aef2b05589b44055b45228400fd47fef24fae7
6
+ metadata.gz: 0dadab7eeb70c6123fdaaa4a0215755a5e9337a5e51c6bc82ba29ca357d9caa493a9bd64c070ca85c8e5e2500df47109beeb9c11c7e787c34973b3a8b9376f13
7
+ data.tar.gz: eeacbd47303bd524f268877a386477b67fe8ac2987cf7c4a722a90abc3535409de6ffcdb508072992b9c75e6d620c0d3c759edac1dc50229b05f2a4a63e998f1
@@ -6,6 +6,7 @@ rvm:
6
6
  - "2.0"
7
7
  - "2.1"
8
8
  - "2.2"
9
+ - "2.3.1"
9
10
 
10
11
  gemfile:
11
12
  - Gemfile.activesupport32
data/README.md CHANGED
@@ -23,6 +23,7 @@ Active Shipping is currently being used and improved in a production environment
23
23
  * [Shipwire](http://www.shipwire.com)
24
24
  * [Stamps](http://www.stamps.com)
25
25
  * [Kunaki](http://www.kunaki.com)
26
+ * [Australia Post](http://auspost.com.au/)
26
27
 
27
28
  ## Installation
28
29
 
data/dev.yml CHANGED
@@ -1,9 +1,7 @@
1
1
  name: active_shipping
2
2
 
3
3
  up:
4
- - ruby:
5
- package: homebrew/version/ruby22
6
- version: 2.2.5p319
4
+ - ruby: 2.3.1
7
5
  - bundler
8
6
 
9
7
  commands:
@@ -33,3 +33,4 @@ ActiveShipping::Carriers.register :NewZealandPost, 'active_shipping/carriers/n
33
33
  ActiveShipping::Carriers.register :CanadaPostPWS, 'active_shipping/carriers/canada_post_pws'
34
34
  ActiveShipping::Carriers.register :Stamps, 'active_shipping/carriers/stamps'
35
35
  ActiveShipping::Carriers.register :Correios, 'active_shipping/carriers/correios'
36
+ ActiveShipping::Carriers.register :AustraliaPost, 'active_shipping/carriers/australia_post'
@@ -0,0 +1,250 @@
1
+ require 'active_support/core_ext/object/to_query'
2
+
3
+ module ActiveShipping
4
+ class AustraliaPost < Carrier
5
+ cattr_reader :name
6
+ @@name = 'Australia Post'
7
+
8
+ HOST = 'digitalapi.auspost.com.au'
9
+
10
+ PARCEL_ENDPOINTS = {
11
+ service: {
12
+ domestic: '/postage/parcel/domestic/service.json',
13
+ international: '/postage/parcel/international/service.json'
14
+ },
15
+ calculate: {
16
+ domestic: '/postage/parcel/domestic/calculate.json',
17
+ international: '/postage/parcel/international/calculate.json'
18
+ }
19
+ }.freeze
20
+
21
+ def requirements
22
+ [:api_key]
23
+ end
24
+
25
+ def find_rates(origin, destination, packages, options = {})
26
+ packages = Array(packages)
27
+
28
+ service_requests = packages.map do |package|
29
+ service_request = ServiceRequest.new(origin, destination, package, options)
30
+
31
+ service_request.parse(commit(service_request.url))
32
+ service_request
33
+ end
34
+
35
+ combined_response = CombinedResponse.new(origin, destination, packages, service_requests)
36
+
37
+ RateResponse.new(true, 'success', combined_response.params, combined_response.options)
38
+ end
39
+
40
+ def calculate_rates(origin, destination, packages, service_code, options = {})
41
+ packages = Array(packages)
42
+
43
+ calculate_requests = packages.map do |package|
44
+ calculate_request = CalculateRequest.new(origin, destination, package, service_code, options)
45
+
46
+ calculate_request.parse(commit(calculate_request.url))
47
+ calculate_request
48
+ end
49
+
50
+ combined_response = CombinedResponse.new(origin, destination, packages, calculate_requests)
51
+
52
+ RateResponse.new(true, 'success', combined_response.params, combined_response.options)
53
+ end
54
+
55
+ private
56
+
57
+ def commit(request_url)
58
+ ssl_get(request_url, headers)
59
+
60
+ rescue ActiveUtils::ResponseError, ActiveShipping::ResponseError => e
61
+ data = JSON.parse(e.response.body)
62
+ error_message = data['error'] && data['error']['errorMessage'] ? data['error']['errorMessage'] : 'unknown'
63
+
64
+ RateResponse.new(false, error_message, data)
65
+ end
66
+
67
+ def headers
68
+ {
69
+ 'Content-type' => 'application/json',
70
+ 'auth-key' => @options[:api_key]
71
+ }
72
+ end
73
+
74
+ class CombinedResponse
75
+
76
+ def initialize(origin, destination, packages, requests)
77
+ @requests = requests
78
+ @origin = origin
79
+ @destination = destination
80
+ @packages = packages
81
+ end
82
+
83
+ def options
84
+ {
85
+ rates: rates,
86
+ raw_responses: @requests.map(&:raw_response),
87
+ request: @requests.map(&:url)
88
+ }
89
+ end
90
+
91
+ def params
92
+ {
93
+ responses: @requests.map(&:response)
94
+ }
95
+ end
96
+
97
+ private
98
+
99
+ def rate_options(rates)
100
+ {
101
+ service_name: rates.first[:service_name],
102
+ service_code: rates.first[:service_code],
103
+ total_price: rates.sum { |rate| rate[:total_price] },
104
+ currency: 'AUD',
105
+ delivery_time_text: rates.first[:delivery_time_text]
106
+ }
107
+ end
108
+
109
+ def rates
110
+ rates = @requests.map(&:rates).flatten
111
+
112
+ rates.group_by { |rate| rate[:service_name] }.map do |service_name, service_rates|
113
+ next unless service_rates.size == @packages.size
114
+
115
+ AustraliaPostRateEstimate.new(@origin, @destination, AustraliaPost.name, service_name, rate_options(service_rates))
116
+ end.compact
117
+ end
118
+
119
+ end
120
+
121
+ class AustraliaPostRequest
122
+ attr_reader :raw_response
123
+ attr_reader :response
124
+ attr_reader :rates
125
+
126
+ def initialize(origin, destination, package, options)
127
+ @origin = Location.from(origin)
128
+ @destination = Location.from(destination)
129
+ @package = package
130
+ @rates = []
131
+ @options = options
132
+ end
133
+
134
+ def url
135
+ endpoint = domestic_destination? ? @endpoints[:domestic] : @endpoints[:international]
136
+ params = domestic_destination? ? domestic_params : international_params
137
+
138
+ URI::HTTPS.build(host: HOST, path: endpoint, query: params.to_query).to_s
139
+ end
140
+
141
+ def parse(data)
142
+ @raw_response = data
143
+ @response = JSON.parse(data)
144
+ end
145
+
146
+ protected
147
+
148
+ def domestic_destination?
149
+ @destination.country_code == 'AU'
150
+ end
151
+
152
+ def domestic_params
153
+ {
154
+ length: @package.cm(:length),
155
+ width: @package.cm(:width),
156
+ height: @package.cm(:height),
157
+ weight: @package.weight.in_kg.to_f.round(2),
158
+ from_postcode: @origin.postal_code,
159
+ to_postcode: @destination.postal_code
160
+ }
161
+ end
162
+
163
+ def international_params
164
+ {
165
+ weight: @package.weight.in_kg.to_f.round(2),
166
+ country_code: @destination.country_code
167
+ }
168
+ end
169
+
170
+ end
171
+
172
+ class ServiceRequest < AustraliaPostRequest
173
+
174
+ def initialize(origin, destination, package, options)
175
+ super
176
+ @endpoints = PARCEL_ENDPOINTS[:service]
177
+ end
178
+
179
+ def parse(data)
180
+ super
181
+
182
+ @rates = response['services']['service'].map do |service|
183
+ {
184
+ service_name: service['name'],
185
+ service_code: service['code'],
186
+ total_price: service['price'].to_f,
187
+ currency: 'AUD'
188
+ }
189
+ end
190
+ end
191
+
192
+ end
193
+
194
+ class CalculateRequest < AustraliaPostRequest
195
+ attr_reader :service_code
196
+
197
+ def initialize(origin, destination, package, service_code, options)
198
+ super(origin, destination, package, options)
199
+
200
+ @service_code = service_code
201
+ @endpoints = PARCEL_ENDPOINTS[:calculate]
202
+ end
203
+
204
+ def parse(data)
205
+ super
206
+ postage_result = response['postage_result']
207
+
208
+ @rates = [{
209
+ service_name: postage_result['service'],
210
+ service_code: service_code,
211
+ total_price: postage_result['total_cost'].to_f,
212
+ currency: 'AUD',
213
+ delivery_time_text: postage_result['delivery_time']
214
+ }]
215
+ end
216
+
217
+ private
218
+
219
+ def calculate_params
220
+ {
221
+ service_code: @service_code,
222
+ option_code: @options[:option_code],
223
+ suboption_code: @options[:suboption_code],
224
+ extra_cover: @options[:extra_cover]
225
+ }.
226
+ # INFO: equivalent of .compact
227
+ select { |_, value| !value.nil? }
228
+ end
229
+
230
+ def domestic_params
231
+ super.merge(calculate_params)
232
+ end
233
+
234
+ def international_params
235
+ super.merge(calculate_params)
236
+ end
237
+
238
+ end
239
+
240
+ class AustraliaPostRateEstimate < RateEstimate
241
+ attr_reader :delivery_time_text
242
+
243
+ def initialize(origin, destination, carrier, service_name, options = {})
244
+ super
245
+ @delivery_time_text = options[:delivery_time_text]
246
+ end
247
+
248
+ end
249
+ end
250
+ end
@@ -1,3 +1,3 @@
1
1
  module ActiveShipping
2
- VERSION = "1.7.2"
2
+ VERSION = "1.7.3"
3
3
  end
@@ -65,6 +65,9 @@ stamps:
65
65
  username: <%= ENV['ACTIVESHIPPING_STAMPS_USERNAME'] %>
66
66
  password: <%= ENV['ACTIVESHIPPING_STAMPS_PASSWORD'] %>
67
67
 
68
+ australia_post:
69
+ api_key: <%= ENV['ACTIVESHIPPING_AUSTRALIA_POST_API_KEY'] %>
70
+
68
71
  # fedex_freight:
69
72
  # account: FedExFreightAccountNumber
70
73
  # shipping_address1: FedExShippingAddress1
@@ -0,0 +1,13 @@
1
+ {
2
+ "postage_result": {
3
+ "service": "Express Post",
4
+ "delivery_time": "Guaranteed Next Business Day within the Express Post network (If posted on any business day Monday to Friday in accordance with the conditions set out on the item).",
5
+ "total_cost": "10.20",
6
+ "costs": {
7
+ "cost": {
8
+ "item": "Express Post",
9
+ "cost": "10.20"
10
+ }
11
+ }
12
+ }
13
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "postage_result": {
3
+ "service": "Express Post",
4
+ "delivery_time": "Guaranteed Next Business Day within the Express Post network (If posted on any business day Monday to Friday in accordance with the conditions set out on the item).",
5
+ "total_cost": "14.70",
6
+ "costs": {
7
+ "cost": [{
8
+ "item": "Express Post",
9
+ "cost": "10.20"
10
+ }, {
11
+ "item": "Standard Service",
12
+ "cost": "0.00"
13
+ }, {
14
+ "item": "Extra Cover",
15
+ "cost": "4.50"
16
+ }]
17
+ }
18
+ }
19
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "postage_result": {
3
+ "service": "Courier",
4
+ "total_cost": "87.36",
5
+ "costs": {
6
+ "cost": {
7
+ "item": "Courier",
8
+ "cost": "87.36"
9
+ }
10
+ }
11
+ }
12
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "postage_result": {
3
+ "service": "Courier",
4
+ "total_cost": "87.36",
5
+ "costs": {
6
+ "cost": [{
7
+ "item": "Courier",
8
+ "cost": "87.36"
9
+ }, {
10
+ "item": "SMS track advice",
11
+ "cost": "0.00"
12
+ }]
13
+ }
14
+ }
15
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "error": {
3
+ "errorMessage": "Please enter From postcode."
4
+ }
5
+ }
@@ -0,0 +1,117 @@
1
+ {
2
+ "services": {
3
+ "service": [{
4
+ "code": "AUS_PARCEL_EXPRESS",
5
+ "name": "Express Post",
6
+ "price": "28.55",
7
+ "max_extra_cover": 300,
8
+ "options": {
9
+ "option": [{
10
+ "code": "AUS_SERVICE_OPTION_STANDARD",
11
+ "name": "Standard Service",
12
+ "suboptions": {
13
+ "option": {
14
+ "code": "AUS_SERVICE_OPTION_EXTRA_COVER",
15
+ "name": "Extra Cover",
16
+ "max_extra_cover": 300
17
+ }
18
+ }
19
+ }, {
20
+ "code": "AUS_SERVICE_OPTION_SIGNATURE_ON_DELIVERY",
21
+ "name": "Signature on Delivery",
22
+ "suboptions": {
23
+ "option": {
24
+ "code": "AUS_SERVICE_OPTION_EXTRA_COVER",
25
+ "name": "Extra Cover",
26
+ "max_extra_cover": 5000
27
+ }
28
+ }
29
+ }]
30
+ }
31
+ }, {
32
+ "code": "AUS_PARCEL_EXPRESS_SATCHEL_3KG",
33
+ "name": "Express Post Medium (3Kg) Satchel",
34
+ "price": "14.80",
35
+ "max_extra_cover": 300,
36
+ "options": {
37
+ "option": [{
38
+ "code": "AUS_SERVICE_OPTION_STANDARD",
39
+ "name": "Standard Service",
40
+ "suboptions": {
41
+ "option": {
42
+ "code": "AUS_SERVICE_OPTION_EXTRA_COVER",
43
+ "name": "Extra Cover",
44
+ "max_extra_cover": 300
45
+ }
46
+ }
47
+ }, {
48
+ "code": "AUS_SERVICE_OPTION_SIGNATURE_ON_DELIVERY",
49
+ "name": "Signature on Delivery",
50
+ "suboptions": {
51
+ "option": {
52
+ "code": "AUS_SERVICE_OPTION_EXTRA_COVER",
53
+ "name": "Extra Cover",
54
+ "max_extra_cover": 5000
55
+ }
56
+ }
57
+ }]
58
+ }
59
+ }, {
60
+ "code": "AUS_PARCEL_REGULAR",
61
+ "name": "Parcel Post",
62
+ "price": "16.15",
63
+ "max_extra_cover": 300,
64
+ "options": {
65
+ "option": [{
66
+ "code": "AUS_SERVICE_OPTION_STANDARD",
67
+ "name": "Standard Service",
68
+ "suboptions": {
69
+ "option": {
70
+ "code": "AUS_SERVICE_OPTION_EXTRA_COVER",
71
+ "name": "Extra Cover",
72
+ "max_extra_cover": 300
73
+ }
74
+ }
75
+ }, {
76
+ "code": "AUS_SERVICE_OPTION_SIGNATURE_ON_DELIVERY",
77
+ "name": "Signature on Delivery",
78
+ "suboptions": {
79
+ "option": {
80
+ "code": "AUS_SERVICE_OPTION_EXTRA_COVER",
81
+ "name": "Extra Cover",
82
+ "max_extra_cover": 5000
83
+ }
84
+ }
85
+ }]
86
+ }
87
+ }, {
88
+ "code": "AUS_PARCEL_REGULAR_SATCHEL_3KG",
89
+ "name": "Parcel Post Medium Satchel",
90
+ "price": "13.40",
91
+ "max_extra_cover": 300,
92
+ "options": {
93
+ "option": [{
94
+ "code": "AUS_SERVICE_OPTION_STANDARD",
95
+ "name": "Standard Service",
96
+ "suboptions": {
97
+ "option": {
98
+ "code": "AUS_SERVICE_OPTION_EXTRA_COVER",
99
+ "name": "Extra Cover",
100
+ "max_extra_cover": 300
101
+ }
102
+ }
103
+ }, {
104
+ "code": "AUS_SERVICE_OPTION_SIGNATURE_ON_DELIVERY",
105
+ "name": "Signature on Delivery",
106
+ "suboptions": {
107
+ "option": {
108
+ "code": "AUS_SERVICE_OPTION_EXTRA_COVER",
109
+ "name": "Extra Cover",
110
+ "max_extra_cover": 5000
111
+ }
112
+ }
113
+ }]
114
+ }
115
+ }]
116
+ }
117
+ }
@@ -0,0 +1,117 @@
1
+ {
2
+ "services": {
3
+ "service": [{
4
+ "code": "AUS_PARCEL_EXPRESS",
5
+ "name": "Express Post",
6
+ "price": "10.20",
7
+ "max_extra_cover": 300,
8
+ "options": {
9
+ "option": [{
10
+ "code": "AUS_SERVICE_OPTION_STANDARD",
11
+ "name": "Standard Service",
12
+ "suboptions": {
13
+ "option": {
14
+ "code": "AUS_SERVICE_OPTION_EXTRA_COVER",
15
+ "name": "Extra Cover",
16
+ "max_extra_cover": 300
17
+ }
18
+ }
19
+ }, {
20
+ "code": "AUS_SERVICE_OPTION_SIGNATURE_ON_DELIVERY",
21
+ "name": "Signature on Delivery",
22
+ "suboptions": {
23
+ "option": {
24
+ "code": "AUS_SERVICE_OPTION_EXTRA_COVER",
25
+ "name": "Extra Cover",
26
+ "max_extra_cover": 5000
27
+ }
28
+ }
29
+ }]
30
+ }
31
+ }, {
32
+ "code": "AUS_PARCEL_EXPRESS_SATCHEL_500G",
33
+ "name": "Express Post Small Satchel",
34
+ "price": "10.55",
35
+ "max_extra_cover": 300,
36
+ "options": {
37
+ "option": [{
38
+ "code": "AUS_SERVICE_OPTION_STANDARD",
39
+ "name": "Standard Service",
40
+ "suboptions": {
41
+ "option": {
42
+ "code": "AUS_SERVICE_OPTION_EXTRA_COVER",
43
+ "name": "Extra Cover",
44
+ "max_extra_cover": 300
45
+ }
46
+ }
47
+ }, {
48
+ "code": "AUS_SERVICE_OPTION_SIGNATURE_ON_DELIVERY",
49
+ "name": "Signature on Delivery",
50
+ "suboptions": {
51
+ "option": {
52
+ "code": "AUS_SERVICE_OPTION_EXTRA_COVER",
53
+ "name": "Extra Cover",
54
+ "max_extra_cover": 5000
55
+ }
56
+ }
57
+ }]
58
+ }
59
+ }, {
60
+ "code": "AUS_PARCEL_REGULAR",
61
+ "name": "Parcel Post",
62
+ "price": "7.45",
63
+ "max_extra_cover": 300,
64
+ "options": {
65
+ "option": [{
66
+ "code": "AUS_SERVICE_OPTION_STANDARD",
67
+ "name": "Standard Service",
68
+ "suboptions": {
69
+ "option": {
70
+ "code": "AUS_SERVICE_OPTION_EXTRA_COVER",
71
+ "name": "Extra Cover",
72
+ "max_extra_cover": 300
73
+ }
74
+ }
75
+ }, {
76
+ "code": "AUS_SERVICE_OPTION_SIGNATURE_ON_DELIVERY",
77
+ "name": "Signature on Delivery",
78
+ "suboptions": {
79
+ "option": {
80
+ "code": "AUS_SERVICE_OPTION_EXTRA_COVER",
81
+ "name": "Extra Cover",
82
+ "max_extra_cover": 5000
83
+ }
84
+ }
85
+ }]
86
+ }
87
+ }, {
88
+ "code": "AUS_PARCEL_REGULAR_SATCHEL_500G",
89
+ "name": "Parcel Post Small Satchel",
90
+ "price": "8.25",
91
+ "max_extra_cover": 300,
92
+ "options": {
93
+ "option": [{
94
+ "code": "AUS_SERVICE_OPTION_STANDARD",
95
+ "name": "Standard Service",
96
+ "suboptions": {
97
+ "option": {
98
+ "code": "AUS_SERVICE_OPTION_EXTRA_COVER",
99
+ "name": "Extra Cover",
100
+ "max_extra_cover": 300
101
+ }
102
+ }
103
+ }, {
104
+ "code": "AUS_SERVICE_OPTION_SIGNATURE_ON_DELIVERY",
105
+ "name": "Signature on Delivery",
106
+ "suboptions": {
107
+ "option": {
108
+ "code": "AUS_SERVICE_OPTION_EXTRA_COVER",
109
+ "name": "Extra Cover",
110
+ "max_extra_cover": 5000
111
+ }
112
+ }
113
+ }]
114
+ }
115
+ }]
116
+ }
117
+ }
@@ -0,0 +1,76 @@
1
+ {
2
+ "services": {
3
+ "service": [{
4
+ "code": "INT_PARCEL_COR_OWN_PACKAGING",
5
+ "name": "Courier",
6
+ "price": "154.17",
7
+ "max_extra_cover": 5000,
8
+ "options": {
9
+ "option": [{
10
+ "code": "INT_TRACKING",
11
+ "name": "Tracking"
12
+ }, {
13
+ "code": "INT_SMS_TRACK_ADVICE",
14
+ "name": "SMS track advice"
15
+ }, {
16
+ "code": "INT_EXTRA_COVER",
17
+ "name": "Extra Cover"
18
+ }]
19
+ }
20
+ }, {
21
+ "code": "INT_PARCEL_EXP_OWN_PACKAGING",
22
+ "name": "Express",
23
+ "price": "89.17",
24
+ "max_extra_cover": 5000,
25
+ "options": {
26
+ "option": [{
27
+ "code": "INT_TRACKING",
28
+ "name": "Tracking"
29
+ }, {
30
+ "code": "INT_SIGNATURE_ON_DELIVERY",
31
+ "name": "Signature on delivery"
32
+ }, {
33
+ "code": "INT_SMS_TRACK_ADVICE",
34
+ "name": "SMS track advice"
35
+ }, {
36
+ "code": "INT_EXTRA_COVER",
37
+ "name": "Extra Cover"
38
+ }]
39
+ }
40
+ }, {
41
+ "code": "INT_PARCEL_STD_OWN_PACKAGING",
42
+ "name": "Standard",
43
+ "price": "84.17",
44
+ "max_extra_cover": 5000,
45
+ "options": {
46
+ "option": [{
47
+ "code": "INT_TRACKING",
48
+ "name": "Tracking"
49
+ }, {
50
+ "code": "INT_EXTRA_COVER",
51
+ "name": "Extra Cover"
52
+ }, {
53
+ "code": "INT_SIGNATURE_ON_DELIVERY",
54
+ "name": "Signature on delivery"
55
+ }, {
56
+ "code": "INT_SMS_TRACK_ADVICE",
57
+ "name": "SMS track advice"
58
+ }]
59
+ }
60
+ }, {
61
+ "code": "INT_PARCEL_SEA_OWN_PACKAGING",
62
+ "name": "Economy Sea",
63
+ "price": "46.80",
64
+ "max_extra_cover": 5000,
65
+ "options": {
66
+ "option": [{
67
+ "code": "INT_EXTRA_COVER",
68
+ "name": "Extra Cover"
69
+ }, {
70
+ "code": "INT_SIGNATURE_ON_DELIVERY",
71
+ "name": "Signature on delivery"
72
+ }]
73
+ }
74
+ }]
75
+ }
76
+ }
@@ -0,0 +1,59 @@
1
+ {
2
+ "services": {
3
+ "service": [{
4
+ "code": "INT_PARCEL_EXP_OWN_PACKAGING",
5
+ "name": "Express",
6
+ "price": "82.87",
7
+ "max_extra_cover": 5000,
8
+ "options": {
9
+ "option": [{
10
+ "code": "INT_TRACKING",
11
+ "name": "Tracking"
12
+ }, {
13
+ "code": "INT_SIGNATURE_ON_DELIVERY",
14
+ "name": "Signature on delivery"
15
+ }, {
16
+ "code": "INT_SMS_TRACK_ADVICE",
17
+ "name": "SMS track advice"
18
+ }, {
19
+ "code": "INT_EXTRA_COVER",
20
+ "name": "Extra Cover"
21
+ }]
22
+ }
23
+ }, {
24
+ "code": "INT_PARCEL_STD_OWN_PACKAGING",
25
+ "name": "Standard",
26
+ "price": "71.20",
27
+ "max_extra_cover": 5000,
28
+ "options": {
29
+ "option": [{
30
+ "code": "INT_TRACKING",
31
+ "name": "Tracking"
32
+ }, {
33
+ "code": "INT_EXTRA_COVER",
34
+ "name": "Extra Cover"
35
+ }, {
36
+ "code": "INT_SIGNATURE_ON_DELIVERY",
37
+ "name": "Signature on delivery"
38
+ }, {
39
+ "code": "INT_SMS_TRACK_ADVICE",
40
+ "name": "SMS track advice"
41
+ }]
42
+ }
43
+ }, {
44
+ "code": "INT_PARCEL_SEA_OWN_PACKAGING",
45
+ "name": "Economy Sea",
46
+ "price": "41.54",
47
+ "max_extra_cover": 5000,
48
+ "options": {
49
+ "option": [{
50
+ "code": "INT_EXTRA_COVER",
51
+ "name": "Extra Cover"
52
+ }, {
53
+ "code": "INT_SIGNATURE_ON_DELIVERY",
54
+ "name": "Signature on delivery"
55
+ }]
56
+ }
57
+ }]
58
+ }
59
+ }
@@ -0,0 +1,140 @@
1
+ require 'test_helper'
2
+
3
+ class RemoteAustraliaPostTest < Minitest::Test
4
+ include ActiveShipping::Test::Credentials
5
+ include ActiveShipping::Test::Fixtures
6
+
7
+ def setup
8
+ @carrier = AustraliaPost.new(credentials(:australia_post))
9
+ @sydney = location_fixtures[:sydney]
10
+ @melbourne = location_fixtures[:melbourne]
11
+ @ottawa = location_fixtures[:ottawa]
12
+ rescue NoCredentialsFound => e
13
+ skip(e.message)
14
+ end
15
+
16
+ def test_valid_credentials
17
+ assert @carrier.valid_credentials?
18
+ end
19
+
20
+ def test_service_domestic_simple_request
21
+ response = @carrier.find_rates(@sydney, @melbourne, package_fixtures[:wii])
22
+
23
+ assert response.is_a?(RateResponse)
24
+ assert response.success?
25
+ assert response.rates.any?
26
+ assert response.rates.first.is_a?(RateEstimate)
27
+ assert_equal 1, response.params["responses"].size
28
+ assert_equal 1, response.request.size
29
+ end
30
+
31
+ def test_service_domestic_combined_request
32
+ response = @carrier.find_rates(@sydney, @melbourne, package_fixtures.values_at(:book, :small_half_pound))
33
+
34
+ assert response.is_a?(RateResponse)
35
+ assert response.success?
36
+ assert response.rates.any?
37
+ assert response.rates.first.is_a?(RateEstimate)
38
+ assert_equal 2, response.params["responses"].size
39
+ assert_equal 2, response.request.size
40
+ end
41
+
42
+ def test_service_international_simple_request
43
+ response = @carrier.find_rates(@sydney, @ottawa, package_fixtures[:wii])
44
+
45
+ assert response.is_a?(RateResponse)
46
+ assert response.success?
47
+ assert response.rates.any?
48
+ assert response.rates.first.is_a?(RateEstimate)
49
+ assert_equal 1, response.params["responses"].size
50
+ assert_equal 1, response.request.size
51
+ end
52
+
53
+ def test_service_domestic_combined_request
54
+ response = @carrier.find_rates(@sydney, @ottawa, package_fixtures.values_at(:book, :small_half_pound))
55
+
56
+ assert response.is_a?(RateResponse)
57
+ assert response.success?
58
+ assert response.rates.any?
59
+ assert response.rates.first.is_a?(RateEstimate)
60
+ assert_equal 2, response.params["responses"].size
61
+ assert_equal 2, response.request.size
62
+ end
63
+
64
+ def test_service_domestic_response_error
65
+ error = assert_raises(ActiveShipping::ResponseError) do
66
+ @carrier.find_rates(@sydney, @melbourne, package_fixtures[:largest_gold_bar])
67
+ end
68
+
69
+ assert_equal 'The maximum weight of a parcel is 22 kg.', error.message
70
+ end
71
+
72
+ def test_service_international_response_error
73
+ error = assert_raises(ActiveShipping::ResponseError) do
74
+ @carrier.find_rates(@sydney, @ottawa, package_fixtures[:largest_gold_bar])
75
+ end
76
+
77
+ assert_equal 'The maximum weight of a parcel is 20 kg.', error.message
78
+ end
79
+
80
+ def test_calculate_domestic_simple_request
81
+ response = @carrier.calculate_rates(@sydney, @melbourne, package_fixtures[:wii], 'AUS_PARCEL_EXPRESS')
82
+
83
+ assert response.is_a?(RateResponse)
84
+ assert response.success?
85
+ assert response.rates.any?
86
+ assert response.rates.first.is_a?(RateEstimate)
87
+ assert_equal 1, response.params["responses"].size
88
+ assert_equal 1, response.request.size
89
+ end
90
+
91
+ def test_calculate_domestic_combined_request
92
+ response = @carrier.calculate_rates(@sydney, @melbourne, package_fixtures.values_at(:book, :small_half_pound), 'AUS_PARCEL_EXPRESS')
93
+
94
+ assert response.is_a?(RateResponse)
95
+ assert response.success?
96
+ assert response.rates.any?
97
+ assert response.rates.first.is_a?(RateEstimate)
98
+ assert_equal 2, response.params["responses"].size
99
+ assert_equal 2, response.request.size
100
+ end
101
+
102
+ def test_calculate_international_simple_request
103
+ response = @carrier.calculate_rates(@sydney, @ottawa, package_fixtures[:wii], 'INT_PARCEL_COR_OWN_PACKAGING')
104
+
105
+ assert response.is_a?(RateResponse)
106
+ assert response.success?
107
+ assert response.rates.any?
108
+ assert response.rates.first.is_a?(RateEstimate)
109
+ assert_equal 1, response.params["responses"].size
110
+ assert_equal 1, response.request.size
111
+ end
112
+
113
+ def test_calculate_domestic_combined_request
114
+ response = @carrier.calculate_rates(@sydney, @ottawa, package_fixtures.values_at(:book, :small_half_pound), 'INT_PARCEL_COR_OWN_PACKAGING')
115
+
116
+ assert response.is_a?(RateResponse)
117
+ assert response.success?
118
+ assert response.rates.any?
119
+ assert response.rates.first.is_a?(RateEstimate)
120
+ assert_equal 2, response.params["responses"].size
121
+ assert_equal 2, response.request.size
122
+ end
123
+
124
+ def test_calculate_domestic_response_error
125
+ error = assert_raises(ActiveShipping::ResponseError) do
126
+ @carrier.calculate_rates(@sydney, @melbourne, package_fixtures[:wii], 'INT_PARCEL_COR_OWN_PACKAGING')
127
+ end
128
+
129
+ assert_equal 'Please enter a valid Service code.', error.message
130
+ end
131
+
132
+ def test_calculate_international_response_error
133
+ error = assert_raises(ActiveShipping::ResponseError) do
134
+ @carrier.calculate_rates(@sydney, @ottawa, package_fixtures[:wii], 'AUS_PARCEL_EXPRESS')
135
+ end
136
+
137
+ assert_equal 'Please enter a valid Service code.', error.message
138
+ end
139
+
140
+ end
@@ -245,7 +245,19 @@ module ActiveShipping::Test
245
245
  :city => 'Groningen',
246
246
  :address1 => 'Aquamarijnstraat 349',
247
247
  :postal_code => '9743 PJ',
248
- :state => 'Groningen')
248
+ :state => 'Groningen'),
249
+ :sydney => Location.new(
250
+ :country => 'AUS',
251
+ :city => 'Sydney',
252
+ :state => 'NSW',
253
+ :address1 => '192 George Street',
254
+ :postal_code => '2000'),
255
+ :melbourne => Location.new(
256
+ :country => 'AUS',
257
+ :city => 'Melbourne',
258
+ :state => 'VIC',
259
+ :address1 => '192 George Street',
260
+ :postal_code => '3108')
249
261
  }
250
262
  end
251
263
 
@@ -0,0 +1,181 @@
1
+ require 'test_helper'
2
+
3
+ class AustraliaPostTest < Minitest::Test
4
+ include ActiveShipping::Test::Fixtures
5
+
6
+ def setup
7
+ @carrier = AustraliaPost.new(api_key: '4d9dc0f0-dda0-012e-066f-000c29b44ac0')
8
+ @sydney = location_fixtures[:sydney]
9
+ @melbourne = location_fixtures[:melbourne]
10
+ @ottawa = location_fixtures[:ottawa]
11
+ end
12
+
13
+ def test_service_domestic_simple_request
14
+ url = 'https://digitalapi.auspost.com.au/postage/parcel/domestic/service.json?from_postcode=2000&height=2&length=19&to_postcode=3108&weight=0.25&width=14'
15
+ @carrier.expects(:commit).with(url).returns(json_fixture('australia_post/service_domestic'))
16
+ @carrier.find_rates(@sydney, @melbourne, package_fixtures[:book])
17
+ end
18
+
19
+ def test_service_domestic_combined_request
20
+ url_1 = 'https://digitalapi.auspost.com.au/postage/parcel/domestic/service.json?from_postcode=2000&height=2&length=19&to_postcode=3108&weight=0.25&width=14'
21
+ url_2 = 'https://digitalapi.auspost.com.au/postage/parcel/domestic/service.json?from_postcode=2000&height=2.54&length=2.54&to_postcode=3108&weight=0.23&width=2.54'
22
+ @carrier.expects(:commit).with(url_1).returns(json_fixture('australia_post/service_domestic'))
23
+ @carrier.expects(:commit).with(url_2).returns(json_fixture('australia_post/service_domestic_2'))
24
+ @carrier.find_rates(@sydney, @melbourne, package_fixtures.values_at(:book, :small_half_pound))
25
+ end
26
+
27
+ def test_service_domestic_simple_response
28
+ @carrier.expects(:commit).returns(json_fixture('australia_post/service_domestic'))
29
+ response = @carrier.find_rates(@sydney, @melbourne, package_fixtures[:book])
30
+ prices = [2855, 1480, 1615, 1340]
31
+ assert_equal prices, response.rates.map(&:price)
32
+ service_codes = ['AUS_PARCEL_EXPRESS', 'AUS_PARCEL_EXPRESS_SATCHEL_3KG', 'AUS_PARCEL_REGULAR', 'AUS_PARCEL_REGULAR_SATCHEL_3KG']
33
+ assert_equal service_codes, response.rates.map(&:service_code)
34
+ service_names = ['Express Post', 'Express Post Medium (3Kg) Satchel', 'Parcel Post', 'Parcel Post Medium Satchel']
35
+ assert_equal service_names, response.rates.map(&:service_name)
36
+ end
37
+
38
+ def test_service_domestic_combined_response
39
+ @carrier.expects(:commit).returns(json_fixture('australia_post/service_domestic'))
40
+ @carrier.expects(:commit).returns(json_fixture('australia_post/service_domestic_2'))
41
+ response = @carrier.find_rates(@sydney, @melbourne, package_fixtures.values_at(:book, :small_half_pound))
42
+ prices = [3875, 2360]
43
+ assert_equal prices, response.rates.map(&:price)
44
+ service_codes = ['AUS_PARCEL_EXPRESS', 'AUS_PARCEL_REGULAR']
45
+ assert_equal service_codes, response.rates.map(&:service_code)
46
+ service_names = ['Express Post', 'Parcel Post']
47
+ assert_equal service_names, response.rates.map(&:service_name)
48
+ end
49
+
50
+ def test_service_international_simple_request
51
+ url = 'https://digitalapi.auspost.com.au/postage/parcel/international/service.json?country_code=CA&weight=0.25'
52
+ @carrier.expects(:commit).with(url).returns(json_fixture('australia_post/service_international'))
53
+ @carrier.find_rates(@sydney, @ottawa, package_fixtures[:book])
54
+ end
55
+
56
+ def test_service_international_combined_request
57
+ url_1 = 'https://digitalapi.auspost.com.au/postage/parcel/international/service.json?country_code=CA&weight=0.25'
58
+ url_2 = 'https://digitalapi.auspost.com.au/postage/parcel/international/service.json?country_code=CA&weight=0.23'
59
+ @carrier.expects(:commit).with(url_1).returns(json_fixture('australia_post/service_international'))
60
+ @carrier.expects(:commit).with(url_2).returns(json_fixture('australia_post/service_international_2'))
61
+ @carrier.find_rates(@sydney, @ottawa, package_fixtures.values_at(:book, :small_half_pound))
62
+ end
63
+
64
+ def test_service_international_simple_response
65
+ @carrier.expects(:commit).returns(json_fixture('australia_post/service_international'))
66
+ response = @carrier.find_rates(@sydney, @ottawa, package_fixtures[:book])
67
+ prices = [15417, 8917, 8417, 4680]
68
+ assert_equal prices, response.rates.map(&:price)
69
+ service_codes = ['INT_PARCEL_COR_OWN_PACKAGING', 'INT_PARCEL_EXP_OWN_PACKAGING', 'INT_PARCEL_STD_OWN_PACKAGING', 'INT_PARCEL_SEA_OWN_PACKAGING']
70
+ assert_equal service_codes, response.rates.map(&:service_code)
71
+ service_names = ['Courier', 'Express', 'Standard', 'Economy Sea']
72
+ assert_equal service_names, response.rates.map(&:service_name)
73
+ end
74
+
75
+ def test_service_international_combined_response
76
+ @carrier.expects(:commit).returns(json_fixture('australia_post/service_international'))
77
+ @carrier.expects(:commit).returns(json_fixture('australia_post/service_international_2'))
78
+ response = @carrier.find_rates(@sydney, @melbourne, package_fixtures.values_at(:book, :small_half_pound))
79
+ prices = [17204, 15537, 8834]
80
+ assert_equal prices, response.rates.map(&:price)
81
+ service_codes = ['INT_PARCEL_EXP_OWN_PACKAGING', 'INT_PARCEL_STD_OWN_PACKAGING', 'INT_PARCEL_SEA_OWN_PACKAGING']
82
+ assert_equal service_codes, response.rates.map(&:service_code)
83
+ service_names = ['Express', 'Standard', 'Economy Sea']
84
+ assert_equal service_names, response.rates.map(&:service_name)
85
+ end
86
+
87
+ def test_service_response_error
88
+ error = assert_raises(ActiveShipping::ResponseError) do
89
+ raise_error = ActiveShipping::ResponseError.new
90
+ raise_error.expects(:response).returns(OpenStruct.new(body: json_fixture('australia_post/error_message')))
91
+ @carrier.expects(:ssl_get).raises raise_error
92
+ @carrier.find_rates(@sydney, @melbourne, package_fixtures[:book])
93
+ end
94
+ assert_equal 'Please enter From postcode.', error.response.message
95
+ end
96
+
97
+ def test_calculate_domestic_simple_request
98
+ url = 'https://digitalapi.auspost.com.au/postage/parcel/domestic/calculate.json?from_postcode=2000&height=2&length=19&service_code=AUS_PARCEL_EXPRESS&to_postcode=3108&weight=0.25&width=14'
99
+ @carrier.expects(:commit).with(url).returns(json_fixture('australia_post/calculate_domestic'))
100
+ @carrier.calculate_rates(@sydney, @melbourne, package_fixtures[:book], 'AUS_PARCEL_EXPRESS')
101
+ end
102
+
103
+ def test_calculate_domestic_combined_request
104
+ url_1 = 'https://digitalapi.auspost.com.au/postage/parcel/domestic/calculate.json?from_postcode=2000&height=2&length=19&service_code=AUS_PARCEL_EXPRESS&to_postcode=3108&weight=0.25&width=14'
105
+ url_2 = 'https://digitalapi.auspost.com.au/postage/parcel/domestic/calculate.json?from_postcode=2000&height=2.54&length=2.54&service_code=AUS_PARCEL_EXPRESS&to_postcode=3108&weight=0.23&width=2.54'
106
+ @carrier.expects(:commit).with(url_1).returns(json_fixture('australia_post/calculate_domestic'))
107
+ @carrier.expects(:commit).with(url_2).returns(json_fixture('australia_post/calculate_domestic_2'))
108
+ @carrier.calculate_rates(@sydney, @melbourne, package_fixtures.values_at(:book, :small_half_pound), 'AUS_PARCEL_EXPRESS')
109
+ end
110
+
111
+ def test_calculate_domestic_simple_response
112
+ @carrier.expects(:commit).returns(json_fixture('australia_post/calculate_domestic'))
113
+ response = @carrier.calculate_rates(@sydney, @melbourne, package_fixtures[:book], 'AUS_PARCEL_EXPRESS')
114
+ prices = [1020]
115
+ assert_equal prices, response.rates.map(&:price)
116
+ service_codes = ['AUS_PARCEL_EXPRESS']
117
+ assert_equal service_codes, response.rates.map(&:service_code)
118
+ service_names = ['Express Post']
119
+ assert_equal service_names, response.rates.map(&:service_name)
120
+ end
121
+
122
+ def test_calculate_domestic_combined_response
123
+ @carrier.expects(:commit).returns(json_fixture('australia_post/calculate_domestic'))
124
+ @carrier.expects(:commit).returns(json_fixture('australia_post/calculate_domestic_2'))
125
+ response = @carrier.calculate_rates(@sydney, @melbourne, package_fixtures.values_at(:book, :small_half_pound), 'AUS_PARCEL_EXPRESS')
126
+ prices = [2490]
127
+ assert_equal prices, response.rates.map(&:price)
128
+ service_codes = ['AUS_PARCEL_EXPRESS']
129
+ assert_equal service_codes, response.rates.map(&:service_code)
130
+ service_names = ['Express Post']
131
+ assert_equal service_names, response.rates.map(&:service_name)
132
+ end
133
+
134
+ def test_calculate_international_simple_request
135
+ url = 'https://digitalapi.auspost.com.au/postage/parcel/international/calculate.json?country_code=CA&service_code=INT_PARCEL_COR_OWN_PACKAGING&weight=0.25'
136
+ @carrier.expects(:commit).with(url).returns(json_fixture('australia_post/calculate_international'))
137
+ @carrier.calculate_rates(@sydney, @ottawa, package_fixtures[:book], 'INT_PARCEL_COR_OWN_PACKAGING')
138
+ end
139
+
140
+ def test_calculate_international_combined_request
141
+ url_1 = 'https://digitalapi.auspost.com.au/postage/parcel/international/calculate.json?country_code=CA&service_code=INT_PARCEL_COR_OWN_PACKAGING&weight=0.25'
142
+ url_2 = 'https://digitalapi.auspost.com.au/postage/parcel/international/calculate.json?country_code=CA&service_code=INT_PARCEL_COR_OWN_PACKAGING&weight=0.23'
143
+ @carrier.expects(:commit).with(url_1).returns(json_fixture('australia_post/calculate_international'))
144
+ @carrier.expects(:commit).with(url_2).returns(json_fixture('australia_post/calculate_international_2'))
145
+ @carrier.calculate_rates(@sydney, @ottawa, package_fixtures.values_at(:book, :small_half_pound), 'INT_PARCEL_COR_OWN_PACKAGING')
146
+ end
147
+
148
+ def test_calculate_international_simple_response
149
+ @carrier.expects(:commit).returns(json_fixture('australia_post/calculate_international'))
150
+ response = @carrier.calculate_rates(@sydney, @ottawa, package_fixtures[:book], 'INT_PARCEL_COR_OWN_PACKAGING')
151
+ prices = [8736]
152
+ assert_equal prices, response.rates.map(&:price)
153
+ service_codes = ['INT_PARCEL_COR_OWN_PACKAGING']
154
+ assert_equal service_codes, response.rates.map(&:service_code)
155
+ service_names = ['Courier']
156
+ assert_equal service_names, response.rates.map(&:service_name)
157
+ end
158
+
159
+ def test_calculate_international_combined_response
160
+ @carrier.expects(:commit).returns(json_fixture('australia_post/calculate_international'))
161
+ @carrier.expects(:commit).returns(json_fixture('australia_post/calculate_international_2'))
162
+ response = @carrier.calculate_rates(@sydney, @melbourne, package_fixtures.values_at(:book, :small_half_pound), 'INT_PARCEL_COR_OWN_PACKAGING')
163
+ prices = [17472]
164
+ assert_equal prices, response.rates.map(&:price)
165
+ service_codes = ['INT_PARCEL_COR_OWN_PACKAGING']
166
+ assert_equal service_codes, response.rates.map(&:service_code)
167
+ service_names = ['Courier']
168
+ assert_equal service_names, response.rates.map(&:service_name)
169
+ end
170
+
171
+ def test_calculate_response_error
172
+ error = assert_raises(ActiveShipping::ResponseError) do
173
+ raise_error = ActiveShipping::ResponseError.new
174
+ raise_error.expects(:response).returns(OpenStruct.new(body: json_fixture('australia_post/error_message')))
175
+ @carrier.expects(:ssl_get).raises raise_error
176
+ @carrier.calculate_rates(@sydney, @melbourne, package_fixtures[:book], 'AUS_PARCEL_EXPRESS')
177
+ end
178
+ assert_equal 'Please enter From postcode.', error.response.message
179
+ end
180
+
181
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_shipping
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.2
4
+ version: 1.7.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - James MacAulay
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2016-05-19 00:00:00.000000000 Z
14
+ date: 2016-06-02 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: quantified
@@ -185,6 +185,7 @@ files:
185
185
  - lib/active_shipping.rb
186
186
  - lib/active_shipping/carrier.rb
187
187
  - lib/active_shipping/carriers.rb
188
+ - lib/active_shipping/carriers/australia_post.rb
188
189
  - lib/active_shipping/carriers/benchmark_carrier.rb
189
190
  - lib/active_shipping/carriers/bogus_carrier.rb
190
191
  - lib/active_shipping/carriers/canada_post.rb
@@ -222,6 +223,15 @@ files:
222
223
  - test/credentials.yml
223
224
  - test/fixtures/files/label1.pdf
224
225
  - test/fixtures/files/ups-shipping-label.gif
226
+ - test/fixtures/json/australia_post/calculate_domestic.json
227
+ - test/fixtures/json/australia_post/calculate_domestic_2.json
228
+ - test/fixtures/json/australia_post/calculate_international.json
229
+ - test/fixtures/json/australia_post/calculate_international_2.json
230
+ - test/fixtures/json/australia_post/error_message.json
231
+ - test/fixtures/json/australia_post/service_domestic.json
232
+ - test/fixtures/json/australia_post/service_domestic_2.json
233
+ - test/fixtures/json/australia_post/service_international.json
234
+ - test/fixtures/json/australia_post/service_international_2.json
225
235
  - test/fixtures/json/newzealandpost/domestic_book.json
226
236
  - test/fixtures/json/newzealandpost/domestic_default.json
227
237
  - test/fixtures/json/newzealandpost/domestic_error.json
@@ -364,6 +374,7 @@ files:
364
374
  - test/fixtures/xml/usps/world_rate_request_without_value.xml
365
375
  - test/fixtures/xml/usps_returns/external_return_label_response.xml
366
376
  - test/fixtures/xml/usps_returns/external_return_label_response_failure.xml
377
+ - test/remote/australia_post_test.rb
367
378
  - test/remote/canada_post_pws_platform_test.rb
368
379
  - test/remote/canada_post_pws_test.rb
369
380
  - test/remote/canada_post_test.rb
@@ -378,6 +389,7 @@ files:
378
389
  - test/remote/usps_returns_test.rb
379
390
  - test/remote/usps_test.rb
380
391
  - test/test_helper.rb
392
+ - test/unit/carriers/australia_post_test.rb
381
393
  - test/unit/carriers/benchmark_test.rb
382
394
  - test/unit/carriers/canada_post_pws_rating_test.rb
383
395
  - test/unit/carriers/canada_post_pws_register_test.rb
@@ -431,6 +443,15 @@ test_files:
431
443
  - test/credentials.yml
432
444
  - test/fixtures/files/label1.pdf
433
445
  - test/fixtures/files/ups-shipping-label.gif
446
+ - test/fixtures/json/australia_post/calculate_domestic.json
447
+ - test/fixtures/json/australia_post/calculate_domestic_2.json
448
+ - test/fixtures/json/australia_post/calculate_international.json
449
+ - test/fixtures/json/australia_post/calculate_international_2.json
450
+ - test/fixtures/json/australia_post/error_message.json
451
+ - test/fixtures/json/australia_post/service_domestic.json
452
+ - test/fixtures/json/australia_post/service_domestic_2.json
453
+ - test/fixtures/json/australia_post/service_international.json
454
+ - test/fixtures/json/australia_post/service_international_2.json
434
455
  - test/fixtures/json/newzealandpost/domestic_book.json
435
456
  - test/fixtures/json/newzealandpost/domestic_default.json
436
457
  - test/fixtures/json/newzealandpost/domestic_error.json
@@ -573,6 +594,7 @@ test_files:
573
594
  - test/fixtures/xml/usps/world_rate_request_without_value.xml
574
595
  - test/fixtures/xml/usps_returns/external_return_label_response.xml
575
596
  - test/fixtures/xml/usps_returns/external_return_label_response_failure.xml
597
+ - test/remote/australia_post_test.rb
576
598
  - test/remote/canada_post_pws_platform_test.rb
577
599
  - test/remote/canada_post_pws_test.rb
578
600
  - test/remote/canada_post_test.rb
@@ -587,6 +609,7 @@ test_files:
587
609
  - test/remote/usps_returns_test.rb
588
610
  - test/remote/usps_test.rb
589
611
  - test/test_helper.rb
612
+ - test/unit/carriers/australia_post_test.rb
590
613
  - test/unit/carriers/benchmark_test.rb
591
614
  - test/unit/carriers/canada_post_pws_rating_test.rb
592
615
  - test/unit/carriers/canada_post_pws_register_test.rb