walmart_open 0.0.3 → 0.0.4
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 +12 -13
- data/lib/walmart_open/order.rb +15 -17
- data/lib/walmart_open/order_item.rb +2 -2
- data/lib/walmart_open/order_xml_builder.rb +6 -6
- data/lib/walmart_open/shipping_address.rb +19 -8
- data/lib/walmart_open/version.rb +1 -1
- data/spec/walmart_open/order_item_spec.rb +28 -3
- data/spec/walmart_open/order_spec.rb +77 -87
- data/spec/walmart_open/shipping_address_spec.rb +98 -28
- metadata +33 -15
- checksums.yaml +0 -15
data/README.md
CHANGED
@@ -109,25 +109,24 @@ taxonomies = client.taxonomy
|
|
109
109
|
### Making Commerce API Calls
|
110
110
|
```ruby
|
111
111
|
# Placing an Order
|
112
|
-
order = WalmartOpen::Order.new(
|
113
|
-
|
114
|
-
|
112
|
+
order = WalmartOpen::Order.new(billing_id: 1, partner_order_id: "38",
|
113
|
+
partner_order_time: "16:15:47",
|
114
|
+
first_name: "James", last_name: "Fong",
|
115
|
+
street1: "200 Blossom Ln",
|
116
|
+
street2: "100 Flynn Avenue",
|
117
|
+
city: "Mountain View",
|
118
|
+
state: "CA", zipcode: "94043", country: "USA")
|
115
119
|
# required fields:
|
116
|
-
# billing_id: long, first_name: string
|
120
|
+
# billing_id: long, first_name: string, street1: string, city: string,
|
121
|
+
state: string, zipcode: string, country: string, phone: string
|
117
122
|
# optional fields:
|
118
123
|
# last_name: string
|
119
124
|
# partner_order_time: string in format of HH:MM:SS, default to Time.now
|
120
125
|
# partner_order_id: string, default to "Order-#{HASH_OF_RAND_AND_ORDER_TIME}"
|
121
126
|
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
# optional:
|
126
|
-
# street2: string
|
127
|
-
|
128
|
-
# add_item method 1, add_item(item_id, item_price, shipping_price = nil, quantity = 1)
|
129
|
-
order.add_item(10371356, 5, 22.94)
|
130
|
-
order.add_item(25174174, 214.99)
|
127
|
+
# add_item method 1, add_item(item_id, quantity = 1, item_price = nil, shipping_price = nil )
|
128
|
+
order.add_item(10371356)
|
129
|
+
order.add_item(25174174)
|
131
130
|
|
132
131
|
# add_item method 2, add_item(item, quantity = 1)
|
133
132
|
order.add_item(client.lookup(10371356))
|
data/lib/walmart_open/order.rb
CHANGED
@@ -6,9 +6,8 @@ require "securerandom"
|
|
6
6
|
module WalmartOpen
|
7
7
|
class Order
|
8
8
|
|
9
|
-
attr_reader :shipping_address
|
10
|
-
attr_accessor :
|
11
|
-
:partner_order_id, :phone, :items
|
9
|
+
attr_reader :shipping_address, :items
|
10
|
+
attr_accessor :billing_record_id, :partner_order_time, :partner_order_id
|
12
11
|
|
13
12
|
def initialize(params)
|
14
13
|
params = params.each_with_object({}) do |pair, obj|
|
@@ -17,36 +16,35 @@ module WalmartOpen
|
|
17
16
|
|
18
17
|
@shipping_address = nil
|
19
18
|
@items = []
|
20
|
-
@
|
21
|
-
@first_name = params[:first_name]
|
22
|
-
@last_name = params[:last_name]
|
23
|
-
@phone = params[:phone]
|
19
|
+
@billing_record_id = params[:billing_record_id]
|
24
20
|
@partner_order_id = params[:partner_order_id] || "Order-#{Digest::SHA1.hexdigest("#{Time.now.to_i}:#{SecureRandom.hex(16)}")[0..19].upcase}"
|
25
21
|
@partner_order_time = params[:partner_order_time] || Time.now
|
22
|
+
@shipping_address = add_shipping_address(params)
|
26
23
|
end
|
27
24
|
|
28
|
-
def
|
29
|
-
@shipping_address = ShippingAddress.new(params)
|
30
|
-
end
|
31
|
-
|
32
|
-
def add_item(item_or_item_id, *args)
|
25
|
+
def add_item(item_or_item_id, quantity = 1, *args)
|
33
26
|
if item_or_item_id.is_a?(Item)
|
34
27
|
# add_item(item, quantity = 1)
|
35
|
-
@items << OrderItem.new(item_or_item_id.id, item_or_item_id.price, item_or_item_id.shipping_rate
|
28
|
+
@items << OrderItem.new(item_or_item_id.id, quantity, item_or_item_id.price, item_or_item_id.shipping_rate)
|
36
29
|
else
|
37
|
-
# add_item(item_id,
|
38
|
-
@items << OrderItem.new(item_or_item_id, args[0], args[1]
|
30
|
+
# add_item(item_id, quantity = 1, item_price = nil, shipping_price = nil)
|
31
|
+
@items << OrderItem.new(item_or_item_id, quantity, args[0], args[1])
|
39
32
|
end
|
40
33
|
end
|
41
34
|
|
42
35
|
def valid?
|
43
|
-
base_values_valid? &&
|
36
|
+
base_values_valid? && items_valid? &&
|
37
|
+
shipping_address && shipping_address.valid?
|
44
38
|
end
|
45
39
|
|
46
40
|
private
|
47
41
|
|
42
|
+
def add_shipping_address(params)
|
43
|
+
ShippingAddress.new(params)
|
44
|
+
end
|
45
|
+
|
48
46
|
def base_values_valid?
|
49
|
-
|
47
|
+
!!(billing_record_id && partner_order_time && partner_order_id)
|
50
48
|
end
|
51
49
|
|
52
50
|
def items_valid?
|
@@ -3,7 +3,7 @@ module WalmartOpen
|
|
3
3
|
|
4
4
|
attr_accessor :item_id, :quantity, :item_price, :shipping_price
|
5
5
|
|
6
|
-
def initialize(item_id,
|
6
|
+
def initialize(item_id, quantity, item_price = nil, shipping_price = nil)
|
7
7
|
@item_id = item_id
|
8
8
|
@quantity = quantity
|
9
9
|
@item_price = item_price
|
@@ -11,7 +11,7 @@ module WalmartOpen
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def valid?
|
14
|
-
!!(item_id && quantity
|
14
|
+
!!(item_id && quantity)
|
15
15
|
end
|
16
16
|
end
|
17
17
|
end
|
@@ -32,21 +32,21 @@ module WalmartOpen
|
|
32
32
|
|
33
33
|
def shipping_address(xml)
|
34
34
|
xml.shippingAddress do |xml|
|
35
|
-
xml.firstName(order.first_name)
|
36
|
-
xml.lastName(order.last_name)
|
35
|
+
xml.firstName(order.shipping_address.first_name)
|
36
|
+
xml.lastName(order.shipping_address.last_name) if order.shipping_address.last_name
|
37
37
|
xml.street1(order.shipping_address.street1)
|
38
38
|
xml.street2(order.shipping_address.street2) if order.shipping_address.street2
|
39
39
|
xml.city(order.shipping_address.city)
|
40
40
|
xml.state(order.shipping_address.state)
|
41
41
|
xml.zip(order.shipping_address.zipcode)
|
42
42
|
xml.country(order.shipping_address.country)
|
43
|
-
xml.phone(order.phone)
|
43
|
+
xml.phone(order.shipping_address.phone)
|
44
44
|
end
|
45
45
|
end
|
46
46
|
|
47
47
|
def payment(xml)
|
48
48
|
xml.payment do |xml|
|
49
|
-
xml.billingRecordId(order.
|
49
|
+
xml.billingRecordId(order.billing_record_id)
|
50
50
|
end
|
51
51
|
end
|
52
52
|
|
@@ -54,8 +54,8 @@ module WalmartOpen
|
|
54
54
|
xml.item do |xml|
|
55
55
|
xml.itemId(order_item.item_id)
|
56
56
|
xml.quantity(order_item.quantity)
|
57
|
-
xml.itemPrice(order_item.item_price)
|
58
|
-
xml.shippingPrice(order_item.shipping_price)
|
57
|
+
xml.itemPrice(order_item.item_price) if order_item.item_price
|
58
|
+
xml.shippingPrice(order_item.shipping_price) if order_item.shipping_price
|
59
59
|
end
|
60
60
|
end
|
61
61
|
end
|
@@ -1,13 +1,22 @@
|
|
1
1
|
module WalmartOpen
|
2
2
|
class ShippingAddress
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
3
|
+
REQUIRED_ATTRIBUTES = [
|
4
|
+
:first_name,
|
5
|
+
:street1,
|
6
|
+
:city,
|
7
|
+
:state,
|
8
|
+
:zipcode,
|
9
|
+
:country,
|
10
|
+
:phone
|
10
11
|
]
|
12
|
+
|
13
|
+
OPTIONAL_ATTRIBUTES = [
|
14
|
+
:last_name,
|
15
|
+
:street2,
|
16
|
+
]
|
17
|
+
|
18
|
+
ATTRIBUTES = REQUIRED_ATTRIBUTES + OPTIONAL_ATTRIBUTES
|
19
|
+
|
11
20
|
attr_reader *ATTRIBUTES
|
12
21
|
|
13
22
|
def initialize(params)
|
@@ -19,7 +28,9 @@ module WalmartOpen
|
|
19
28
|
end
|
20
29
|
|
21
30
|
def valid?
|
22
|
-
|
31
|
+
REQUIRED_ATTRIBUTES.map do |attr|
|
32
|
+
public_send(attr).to_s.empty?
|
33
|
+
end.none?
|
23
34
|
end
|
24
35
|
|
25
36
|
private
|
data/lib/walmart_open/version.rb
CHANGED
@@ -6,13 +6,38 @@ describe WalmartOpen::OrderItem do
|
|
6
6
|
it "sets value correctly" do
|
7
7
|
item_id = 10371356
|
8
8
|
item_price = 1.23
|
9
|
-
|
9
|
+
item_shipping_price = 2.20
|
10
|
+
order_item = WalmartOpen::OrderItem.new(item_id, 1, item_price, item_shipping_price)
|
10
11
|
|
11
12
|
expect(order_item.item_id).to eq(item_id)
|
12
|
-
expect(order_item.item_price).to eq(item_price)
|
13
|
-
expect(order_item.shipping_price).to eq(0)
|
14
13
|
expect(order_item.quantity).to eq(1)
|
14
|
+
expect(order_item.item_price).to eq(item_price)
|
15
|
+
expect(order_item.shipping_price).to eq(item_shipping_price)
|
15
16
|
expect(order_item).to be_valid
|
16
17
|
end
|
18
|
+
|
19
|
+
context "#valid?" do
|
20
|
+
context "when required field are present" do
|
21
|
+
it "returns true" do
|
22
|
+
item_id = 10371356
|
23
|
+
order_item = WalmartOpen::OrderItem.new(item_id, 1)
|
24
|
+
|
25
|
+
expect(order_item.item_id).to eq(item_id)
|
26
|
+
expect(order_item.quantity).to eq(1)
|
27
|
+
expect(order_item).to be_valid
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
context "when required field are not present" do
|
32
|
+
it "returns false" do
|
33
|
+
item_id = nil
|
34
|
+
order_item = WalmartOpen::OrderItem.new(item_id, 1)
|
35
|
+
|
36
|
+
expect(order_item.item_id).to eq(item_id)
|
37
|
+
expect(order_item.quantity).to eq(1)
|
38
|
+
expect(order_item).not_to be_valid
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
17
42
|
end
|
18
43
|
end
|
@@ -2,65 +2,68 @@ require "spec_helper"
|
|
2
2
|
require "walmart_open/order"
|
3
3
|
|
4
4
|
describe WalmartOpen::Order do
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
partner_order_time: Time.now
|
14
|
-
}
|
15
|
-
end
|
5
|
+
# mix symbol key and string key for testing purpose
|
6
|
+
let(:basic_order_params) do
|
7
|
+
{
|
8
|
+
billing_record_id: 1,
|
9
|
+
partner_order_id: "42",
|
10
|
+
partner_order_time: Time.now
|
11
|
+
}
|
12
|
+
end
|
16
13
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
14
|
+
let(:shipping_addr_params) do
|
15
|
+
{
|
16
|
+
first_name: "Testfirstname",
|
17
|
+
last_name: "Fong",
|
18
|
+
street1: "Listia Inc, 200 Blossom Ln",
|
19
|
+
street2: "street2 test",
|
20
|
+
city: "Mountain View",
|
21
|
+
state: "CA",
|
22
|
+
zipcode: "94043",
|
23
|
+
country: "USA",
|
24
|
+
phone: "606-478-0850"
|
25
|
+
}
|
26
|
+
end
|
27
|
+
|
28
|
+
let(:required_attrs) do
|
29
|
+
[:billing_record_id, :first_name, :street1, :city, :state, :zipcode, :country, :phone]
|
30
|
+
end
|
27
31
|
|
28
|
-
|
32
|
+
let(:valid_order_params) { basic_order_params.merge(shipping_addr_params)}
|
33
|
+
|
34
|
+
context "create order" do
|
35
|
+
let(:order) { WalmartOpen::Order.new(valid_order_params) }
|
29
36
|
|
30
37
|
context ".new" do
|
31
38
|
it "sets value correctly" do
|
32
|
-
expect(order.
|
39
|
+
expect(order.billing_record_id).to eql(valid_order_params[:billing_record_id])
|
40
|
+
expect(order.partner_order_time).to eq(valid_order_params[:partner_order_time])
|
41
|
+
expect(order.partner_order_id).to eq(valid_order_params[:partner_order_id])
|
42
|
+
|
43
|
+
expect(order.shipping_address).to be_valid
|
44
|
+
expect(order.shipping_address.first_name).to eql(valid_order_params[:first_name])
|
45
|
+
expect(order.shipping_address.last_name).to eql(valid_order_params[:last_name])
|
46
|
+
expect(order.shipping_address.phone).to eql(valid_order_params[:phone])
|
47
|
+
|
33
48
|
expect(order.items).to be_empty
|
34
|
-
expect(order.billing_id).to eql(order_params[:billing_id])
|
35
|
-
expect(order.first_name).to eql(order_params[:first_name])
|
36
|
-
expect(order.last_name).to eql(order_params[:last_name])
|
37
|
-
expect(order.phone).to eql(order_params[:phone])
|
38
|
-
expect(order.partner_order_id).to eq(order_params[:partner_order_id])
|
39
|
-
expect(order.partner_order_time).to eq(order_params[:partner_order_time])
|
40
49
|
end
|
41
50
|
|
42
51
|
it "accepts string keys" do
|
43
|
-
|
52
|
+
stringified_valid_attrs = valid_order_params.each_with_object({}) do |pair, obj|
|
44
53
|
obj[pair.first.to_s] = pair.last
|
45
54
|
end
|
46
|
-
WalmartOpen::Order.new(
|
55
|
+
order = WalmartOpen::Order.new(stringified_valid_attrs)
|
47
56
|
|
48
|
-
expect(order.
|
49
|
-
expect(order.
|
50
|
-
expect(order.
|
51
|
-
expect(order.first_name).to eql(order_params[:first_name])
|
52
|
-
expect(order.last_name).to eql(order_params[:last_name])
|
53
|
-
expect(order.phone).to eql(order_params[:phone])
|
54
|
-
expect(order.partner_order_id).to eq(order_params[:partner_order_id])
|
55
|
-
expect(order.partner_order_time).to eq(order_params[:partner_order_time])
|
56
|
-
end
|
57
|
-
end
|
57
|
+
expect(order.billing_record_id).to eql(valid_order_params[:billing_record_id])
|
58
|
+
expect(order.partner_order_time).to eq(valid_order_params[:partner_order_time])
|
59
|
+
expect(order.partner_order_id).to eq(valid_order_params[:partner_order_id])
|
58
60
|
|
59
|
-
|
60
|
-
|
61
|
-
order.
|
61
|
+
expect(order.shipping_address).to be_valid
|
62
|
+
expect(order.shipping_address.first_name).to eql(valid_order_params[:first_name])
|
63
|
+
expect(order.shipping_address.last_name).to eql(valid_order_params[:last_name])
|
64
|
+
expect(order.shipping_address.phone).to eql(valid_order_params[:phone])
|
62
65
|
|
63
|
-
expect(order.
|
66
|
+
expect(order.items).to be_empty
|
64
67
|
end
|
65
68
|
end
|
66
69
|
|
@@ -72,68 +75,55 @@ describe WalmartOpen::Order do
|
|
72
75
|
end
|
73
76
|
|
74
77
|
it "adds item by id" do
|
75
|
-
order.add_item(1
|
78
|
+
order.add_item(1)
|
76
79
|
expect(order.items).not_to be_empty
|
77
80
|
end
|
78
81
|
end
|
79
82
|
end
|
80
83
|
|
81
84
|
context "#valid?" do
|
82
|
-
|
83
|
-
{
|
84
|
-
first_name: "James",
|
85
|
-
billing_id: 1
|
86
|
-
}
|
87
|
-
end
|
88
|
-
|
89
|
-
let(:order) do
|
90
|
-
WalmartOpen::Order.new(valid_attrs).tap do |order|
|
91
|
-
order.add_shipping_address({})
|
92
|
-
order.add_item(10371356, 27.94)
|
93
|
-
end
|
94
|
-
end
|
95
|
-
|
96
|
-
context "when shipping address is valid" do
|
85
|
+
context "when required order params are present" do
|
97
86
|
before do
|
98
|
-
|
87
|
+
valid_order_params.delete(:last_name)
|
88
|
+
valid_order_params.delete("street2")
|
89
|
+
@order = WalmartOpen::Order.new(valid_order_params)
|
90
|
+
@order.add_item(1)
|
99
91
|
end
|
100
92
|
|
101
|
-
|
102
|
-
|
103
|
-
it "returns true" do
|
104
|
-
expect(order).to be_valid
|
105
|
-
end
|
106
|
-
end
|
107
|
-
|
108
|
-
context "when items are not valid" do
|
109
|
-
before do
|
110
|
-
order.add_item(12345)
|
111
|
-
end
|
112
|
-
|
113
|
-
it "returns false" do
|
114
|
-
expect(order).to_not be_valid
|
115
|
-
end
|
116
|
-
end
|
93
|
+
it "returns true" do
|
94
|
+
expect(@order).to be_valid
|
117
95
|
end
|
96
|
+
end
|
118
97
|
|
119
|
-
|
98
|
+
context "when required order params are not present" do
|
99
|
+
shared_examples_for "missing required key" do |optional_key|
|
120
100
|
before do
|
121
|
-
|
101
|
+
valid_order_params.delete(optional_key) if optional_key
|
122
102
|
end
|
123
103
|
|
124
104
|
it "returns false" do
|
125
|
-
|
105
|
+
order = WalmartOpen::Order.new(valid_order_params)
|
106
|
+
order.add_item(item_id) if item_id
|
107
|
+
|
108
|
+
expect(order).not_to be_valid
|
126
109
|
end
|
127
110
|
end
|
128
|
-
end
|
129
111
|
|
130
|
-
|
131
|
-
|
132
|
-
|
112
|
+
context "when order item present" do
|
113
|
+
let(:item_id) { 1 }
|
114
|
+
it_behaves_like "missing required key", :billing_record_id
|
115
|
+
it_behaves_like "missing required key", :first_name
|
116
|
+
it_behaves_like "missing required key", :street1
|
117
|
+
it_behaves_like "missing required key", :city
|
118
|
+
it_behaves_like "missing required key", :state
|
119
|
+
it_behaves_like "missing required key", :zipcode
|
120
|
+
it_behaves_like "missing required key", :country
|
121
|
+
it_behaves_like "missing required key", :phone
|
133
122
|
end
|
134
123
|
|
135
|
-
|
136
|
-
|
124
|
+
context "when order item not present" do
|
125
|
+
let(:item_id) {nil}
|
126
|
+
it_behaves_like "missing required key", nil
|
137
127
|
end
|
138
128
|
end
|
139
129
|
end
|
@@ -4,31 +4,24 @@ require "walmart_open/shipping_address"
|
|
4
4
|
describe WalmartOpen::ShippingAddress do
|
5
5
|
let(:valid_attrs) do
|
6
6
|
{
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
7
|
+
first_name: "Testfirstname",
|
8
|
+
last_name: "Testlastname",
|
9
|
+
street1: "Foo Bar, Maple St.",
|
10
|
+
street2: "Apt #100",
|
11
|
+
city: "Mountain View",
|
12
|
+
state: "CA",
|
13
|
+
zipcode: "94043",
|
14
|
+
country: "USA",
|
15
|
+
phone: "1234567"
|
13
16
|
}
|
14
17
|
end
|
15
18
|
|
16
|
-
let(:
|
17
|
-
[
|
18
|
-
:street1,
|
19
|
-
:city,
|
20
|
-
:state,
|
21
|
-
:zipcode,
|
22
|
-
:country
|
23
|
-
]
|
24
|
-
end
|
19
|
+
let(:shipping_address) { WalmartOpen::ShippingAddress.new(valid_attrs) }
|
25
20
|
|
26
21
|
context ".new" do
|
27
22
|
it "sets attributes" do
|
28
|
-
|
29
|
-
|
30
|
-
WalmartOpen::ShippingAddress::ATTRIBUTES.each do |attr|
|
31
|
-
expect(shipping_address.public_send(attr)).to eq(valid_attrs[attr])
|
23
|
+
WalmartOpen::ShippingAddress::ATTRIBUTES.each do |key|
|
24
|
+
expect(shipping_address.public_send(key.to_sym)).to eq(valid_attrs[key])
|
32
25
|
end
|
33
26
|
end
|
34
27
|
|
@@ -45,26 +38,103 @@ describe WalmartOpen::ShippingAddress do
|
|
45
38
|
end
|
46
39
|
|
47
40
|
context "#valid?" do
|
48
|
-
|
41
|
+
shared_examples_for "missing optional key" do |optional_key|
|
42
|
+
before do
|
43
|
+
valid_attrs.delete(optional_key)
|
44
|
+
end
|
45
|
+
|
49
46
|
it "returns true" do
|
50
47
|
shipping_address = WalmartOpen::ShippingAddress.new(valid_attrs)
|
51
48
|
|
52
49
|
expect(shipping_address).to be_valid
|
53
50
|
end
|
51
|
+
end
|
54
52
|
|
55
|
-
|
56
|
-
|
57
|
-
|
53
|
+
context "when valid" do
|
54
|
+
context "when all required field are present" do
|
55
|
+
it "returns true" do
|
56
|
+
shipping_address = WalmartOpen::ShippingAddress.new(valid_attrs)
|
58
57
|
|
59
|
-
|
58
|
+
expect(shipping_address).to be_valid
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
context "missing optional key" do
|
63
|
+
context "when no last name" do
|
64
|
+
it "returns true" do
|
65
|
+
valid_attrs.delete(:last_name)
|
66
|
+
expect(shipping_address).to be_valid
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
context "when no street2" do
|
71
|
+
it "returns true" do
|
72
|
+
valid_attrs.delete(:street2)
|
73
|
+
expect(shipping_address).to be_valid
|
74
|
+
end
|
75
|
+
end
|
60
76
|
end
|
61
77
|
end
|
62
78
|
|
63
79
|
context "when not valid" do
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
80
|
+
shared_examples_for "missing required key" do |optional_key|
|
81
|
+
before do
|
82
|
+
valid_attrs.delete(optional_key) || valid_attrs.delete(optional_key.to_s)
|
83
|
+
end
|
84
|
+
|
85
|
+
it "returns false" do
|
86
|
+
shipping_address = WalmartOpen::ShippingAddress.new(valid_attrs)
|
87
|
+
|
88
|
+
expect(shipping_address).not_to be_valid
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
context "missing required first_name" do
|
93
|
+
it "returns false" do
|
94
|
+
valid_attrs.delete(:first_name)
|
95
|
+
expect(shipping_address).not_to be_valid
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
context "missing required street1" do
|
100
|
+
it "returns false" do
|
101
|
+
valid_attrs.delete(:street1)
|
102
|
+
expect(shipping_address).not_to be_valid
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
context "missing required city" do
|
107
|
+
it "returns false" do
|
108
|
+
valid_attrs.delete(:city)
|
109
|
+
expect(shipping_address).not_to be_valid
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
context "missing required state" do
|
114
|
+
it "returns false" do
|
115
|
+
valid_attrs.delete(:state)
|
116
|
+
expect(shipping_address).not_to be_valid
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
context "missing required zipcode" do
|
121
|
+
it "returns false" do
|
122
|
+
valid_attrs.delete(:zipcode)
|
123
|
+
expect(shipping_address).not_to be_valid
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
127
|
+
context "missing required country" do
|
128
|
+
it "returns false" do
|
129
|
+
valid_attrs.delete(:country)
|
130
|
+
expect(shipping_address).not_to be_valid
|
131
|
+
end
|
132
|
+
end
|
133
|
+
|
134
|
+
context "missing required phone" do
|
135
|
+
it "returns false" do
|
136
|
+
valid_attrs.delete(:phone)
|
137
|
+
expect(shipping_address).not_to be_valid
|
68
138
|
end
|
69
139
|
end
|
70
140
|
end
|
metadata
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: walmart_open
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease:
|
5
|
+
version: 0.0.4
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Ngan Pham
|
@@ -9,120 +10,136 @@ authors:
|
|
9
10
|
autorequire:
|
10
11
|
bindir: bin
|
11
12
|
cert_chain: []
|
12
|
-
date: 2013-12-
|
13
|
+
date: 2013-12-17 00:00:00.000000000 Z
|
13
14
|
dependencies:
|
14
15
|
- !ruby/object:Gem::Dependency
|
15
|
-
type: :runtime
|
16
|
-
prerelease: false
|
17
16
|
name: httparty
|
18
17
|
version_requirements: !ruby/object:Gem::Requirement
|
18
|
+
none: false
|
19
19
|
requirements:
|
20
20
|
- - ~>
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: '0.10'
|
23
23
|
requirement: !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
24
25
|
requirements:
|
25
26
|
- - ~>
|
26
27
|
- !ruby/object:Gem::Version
|
27
28
|
version: '0.10'
|
28
|
-
- !ruby/object:Gem::Dependency
|
29
29
|
type: :runtime
|
30
30
|
prerelease: false
|
31
|
+
- !ruby/object:Gem::Dependency
|
31
32
|
name: builder
|
32
33
|
version_requirements: !ruby/object:Gem::Requirement
|
34
|
+
none: false
|
33
35
|
requirements:
|
34
36
|
- - ! '>='
|
35
37
|
- !ruby/object:Gem::Version
|
36
38
|
version: 3.0.0
|
37
39
|
requirement: !ruby/object:Gem::Requirement
|
40
|
+
none: false
|
38
41
|
requirements:
|
39
42
|
- - ! '>='
|
40
43
|
- !ruby/object:Gem::Version
|
41
44
|
version: 3.0.0
|
42
|
-
|
43
|
-
type: :development
|
45
|
+
type: :runtime
|
44
46
|
prerelease: false
|
47
|
+
- !ruby/object:Gem::Dependency
|
45
48
|
name: bundler
|
46
49
|
version_requirements: !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
47
51
|
requirements:
|
48
52
|
- - ~>
|
49
53
|
- !ruby/object:Gem::Version
|
50
54
|
version: '1.3'
|
51
55
|
requirement: !ruby/object:Gem::Requirement
|
56
|
+
none: false
|
52
57
|
requirements:
|
53
58
|
- - ~>
|
54
59
|
- !ruby/object:Gem::Version
|
55
60
|
version: '1.3'
|
56
|
-
- !ruby/object:Gem::Dependency
|
57
61
|
type: :development
|
58
62
|
prerelease: false
|
63
|
+
- !ruby/object:Gem::Dependency
|
59
64
|
name: rake
|
60
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
none: false
|
61
67
|
requirements:
|
62
68
|
- - ! '>='
|
63
69
|
- !ruby/object:Gem::Version
|
64
70
|
version: '0'
|
65
71
|
requirement: !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
66
73
|
requirements:
|
67
74
|
- - ! '>='
|
68
75
|
- !ruby/object:Gem::Version
|
69
76
|
version: '0'
|
70
|
-
- !ruby/object:Gem::Dependency
|
71
77
|
type: :development
|
72
78
|
prerelease: false
|
79
|
+
- !ruby/object:Gem::Dependency
|
73
80
|
name: rspec
|
74
81
|
version_requirements: !ruby/object:Gem::Requirement
|
82
|
+
none: false
|
75
83
|
requirements:
|
76
84
|
- - ~>
|
77
85
|
- !ruby/object:Gem::Version
|
78
86
|
version: 3.0.0.beta1
|
79
87
|
requirement: !ruby/object:Gem::Requirement
|
88
|
+
none: false
|
80
89
|
requirements:
|
81
90
|
- - ~>
|
82
91
|
- !ruby/object:Gem::Version
|
83
92
|
version: 3.0.0.beta1
|
84
|
-
- !ruby/object:Gem::Dependency
|
85
93
|
type: :development
|
86
94
|
prerelease: false
|
95
|
+
- !ruby/object:Gem::Dependency
|
87
96
|
name: debugger
|
88
97
|
version_requirements: !ruby/object:Gem::Requirement
|
98
|
+
none: false
|
89
99
|
requirements:
|
90
100
|
- - ~>
|
91
101
|
- !ruby/object:Gem::Version
|
92
102
|
version: '1.6'
|
93
103
|
requirement: !ruby/object:Gem::Requirement
|
104
|
+
none: false
|
94
105
|
requirements:
|
95
106
|
- - ~>
|
96
107
|
- !ruby/object:Gem::Version
|
97
108
|
version: '1.6'
|
98
|
-
- !ruby/object:Gem::Dependency
|
99
109
|
type: :development
|
100
110
|
prerelease: false
|
111
|
+
- !ruby/object:Gem::Dependency
|
101
112
|
name: timecop
|
102
113
|
version_requirements: !ruby/object:Gem::Requirement
|
114
|
+
none: false
|
103
115
|
requirements:
|
104
116
|
- - ~>
|
105
117
|
- !ruby/object:Gem::Version
|
106
118
|
version: '0.7'
|
107
119
|
requirement: !ruby/object:Gem::Requirement
|
120
|
+
none: false
|
108
121
|
requirements:
|
109
122
|
- - ~>
|
110
123
|
- !ruby/object:Gem::Version
|
111
124
|
version: '0.7'
|
112
|
-
- !ruby/object:Gem::Dependency
|
113
125
|
type: :development
|
114
126
|
prerelease: false
|
127
|
+
- !ruby/object:Gem::Dependency
|
115
128
|
name: webmock
|
116
129
|
version_requirements: !ruby/object:Gem::Requirement
|
130
|
+
none: false
|
117
131
|
requirements:
|
118
132
|
- - ~>
|
119
133
|
- !ruby/object:Gem::Version
|
120
134
|
version: 1.16.0
|
121
135
|
requirement: !ruby/object:Gem::Requirement
|
136
|
+
none: false
|
122
137
|
requirements:
|
123
138
|
- - ~>
|
124
139
|
- !ruby/object:Gem::Version
|
125
140
|
version: 1.16.0
|
141
|
+
type: :development
|
142
|
+
prerelease: false
|
126
143
|
description: Ruby implementation for Walmart Open API.
|
127
144
|
email:
|
128
145
|
- ngan@listia.com
|
@@ -177,26 +194,27 @@ files:
|
|
177
194
|
homepage: https://github.com/listia/walmart_open
|
178
195
|
licenses:
|
179
196
|
- MIT
|
180
|
-
metadata: {}
|
181
197
|
post_install_message:
|
182
198
|
rdoc_options: []
|
183
199
|
require_paths:
|
184
200
|
- lib
|
185
201
|
required_ruby_version: !ruby/object:Gem::Requirement
|
202
|
+
none: false
|
186
203
|
requirements:
|
187
204
|
- - ! '>='
|
188
205
|
- !ruby/object:Gem::Version
|
189
206
|
version: '0'
|
190
207
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
208
|
+
none: false
|
191
209
|
requirements:
|
192
210
|
- - ! '>='
|
193
211
|
- !ruby/object:Gem::Version
|
194
212
|
version: '0'
|
195
213
|
requirements: []
|
196
214
|
rubyforge_project:
|
197
|
-
rubygems_version:
|
215
|
+
rubygems_version: 1.8.25
|
198
216
|
signing_key:
|
199
|
-
specification_version:
|
217
|
+
specification_version: 3
|
200
218
|
summary: Ruby implementation for Walmart Open API
|
201
219
|
test_files:
|
202
220
|
- spec/spec_helper.rb
|
checksums.yaml
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
---
|
2
|
-
!binary "U0hBMQ==":
|
3
|
-
metadata.gz: !binary |-
|
4
|
-
NTAwODg3ZDIxMDFmYjVmZGRmMjFmOGYwOTk3NzQ3ODc1ZjVlYjU2Zg==
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
NmY5MTY3NmJkOTgwNGJkMDg1MDI4MWRkYWQwZTU3MzE5ODgyMzMwOQ==
|
7
|
-
SHA512:
|
8
|
-
metadata.gz: !binary |-
|
9
|
-
NGI5M2EwMzhlZjRiZWNiNjVjYmY2ZjYxYjQzMWE1YjRjODVjNzg1ZGNlYmRi
|
10
|
-
YTA1YWUyMzE2YTAzZDI4NTI3Njk5OWM3YzYxYzc4MTkzM2Q2MDhjNGM5ZWYz
|
11
|
-
OWE3YmI5ZGRhMjZiMDFjMDgyNThjODQzZGQzNGQ0N2M1ZjQ3MGM=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
Yjg0M2JiNWIyNzhkZmRjN2I5YTU0MDRjMWUwZjU1Y2JhMjU5Njk3YzQ3M2U4
|
14
|
-
ZGZjNTRhMDMwMWExZDNmY2NmYjFhM2UwYjIyYjNiZmJjOGQwNTZkNjU0MzUz
|
15
|
-
YTAzNGI0ZTI1ZDk4MDBjZDcxYmI3NzQ5ODkyMmY3ZTJhOTU0NDQ=
|