walmart_open 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- 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=
|