walmart_open 0.0.8 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (33) hide show
  1. data/README.md +0 -101
  2. data/lib/walmart_open/client.rb +0 -17
  3. data/lib/walmart_open/config.rb +1 -17
  4. data/lib/walmart_open/connection_manager.rb +5 -15
  5. data/lib/walmart_open/errors.rb +0 -6
  6. data/lib/walmart_open/request.rb +13 -6
  7. data/lib/walmart_open/requests/feed.rb +2 -2
  8. data/lib/walmart_open/requests/lookup.rb +2 -2
  9. data/lib/walmart_open/requests/search.rb +2 -2
  10. data/lib/walmart_open/requests/taxonomy.rb +2 -2
  11. data/lib/walmart_open/version.rb +1 -1
  12. data/spec/walmart_open/client_spec.rb +0 -18
  13. data/spec/walmart_open/config_spec.rb +2 -9
  14. data/spec/walmart_open/connection_manager_spec.rb +3 -10
  15. metadata +2 -27
  16. data/lib/walmart_open/auth_token.rb +0 -25
  17. data/lib/walmart_open/commerce_request.rb +0 -23
  18. data/lib/walmart_open/order.rb +0 -55
  19. data/lib/walmart_open/order_item.rb +0 -17
  20. data/lib/walmart_open/order_results.rb +0 -40
  21. data/lib/walmart_open/order_xml_builder.rb +0 -62
  22. data/lib/walmart_open/ordered_item.rb +0 -31
  23. data/lib/walmart_open/product_request.rb +0 -28
  24. data/lib/walmart_open/requests/place_order.rb +0 -58
  25. data/lib/walmart_open/requests/token.rb +0 -30
  26. data/lib/walmart_open/shipping_address.rb +0 -46
  27. data/spec/walmart_open/auth_token_spec.rb +0 -53
  28. data/spec/walmart_open/order_item_spec.rb +0 -43
  29. data/spec/walmart_open/order_results_spec.rb +0 -83
  30. data/spec/walmart_open/order_spec.rb +0 -130
  31. data/spec/walmart_open/requests/place_order_spec.rb +0 -151
  32. data/spec/walmart_open/requests/token_spec.rb +0 -49
  33. data/spec/walmart_open/shipping_address_spec.rb +0 -142
@@ -1,43 +0,0 @@
1
- require "spec_helper"
2
- require "walmart_open/order_item"
3
-
4
- describe WalmartOpen::OrderItem do
5
- context ".new" do
6
- it "sets value correctly" do
7
- item_id = 10371356
8
- item_price = 1.23
9
- item_shipping_price = 2.20
10
- order_item = WalmartOpen::OrderItem.new(item_id, 1, item_price, item_shipping_price)
11
-
12
- expect(order_item.item_id).to eq(item_id)
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)
16
- expect(order_item).to be_valid
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
42
- end
43
- end
@@ -1,83 +0,0 @@
1
- require "spec_helper"
2
- require "walmart_open/order_results"
3
-
4
- describe WalmartOpen::OrderResults do
5
- let(:order_results_1_item_attrs) do
6
- {
7
- "response" => {
8
- "orderId" =>"2677921715556",
9
- "partnerOrderId" =>"43",
10
- "items" => {
11
- "item" => {
12
- "itemId"=>"10371356",
13
- "quantity"=>"1",
14
- "itemPrice"=>"22.97"
15
- }
16
- },
17
- "total" => "29.95",
18
- "itemTotal" => "22.97",
19
- "shipping" =>"4.97",
20
- "salesTax" =>"2.01",
21
- "surcharge" =>"0.00"
22
- }
23
- }
24
- end
25
-
26
- let(:order_results_2_item_attrs) do
27
- {
28
- "response" => {
29
- "orderId" => "2677922016720",
30
- "partnerOrderId" => "44",
31
- "items" => {
32
- "item" => [
33
- {
34
- "itemId" => "20658394",
35
- "quantity" => "1",
36
- "itemPrice" => "12.99"
37
- },
38
- {
39
- "itemId" => "10371356",
40
- "quantity" => "1",
41
- "itemPrice" => "22.97"
42
- }
43
- ]
44
- },
45
- "total" => "39.11",
46
- "itemTotal" => "35.96",
47
- "shipping" => "0",
48
- "salesTax" => "3.15",
49
- "surcharge" => "0.00"
50
- }
51
- }
52
- end
53
-
54
- context ".new" do
55
- it "sets value correctly with one item" do
56
- res = WalmartOpen::OrderResults.new(order_results_1_item_attrs)
57
-
58
- expect(res.order_id).to eq(order_results_1_item_attrs["response"]["orderId"])
59
- expect(res.partner_order_id).to eq(order_results_1_item_attrs["response"]["partnerOrderId"])
60
- expect(res.total).to eq(order_results_1_item_attrs["response"]["itemTotal"])
61
- expect(res.shipping).to eq(order_results_1_item_attrs["response"]["shipping"])
62
- expect(res.sales_tax).to eq(order_results_1_item_attrs["response"]["salesTax"])
63
- expect(res.surcharge).to eq(order_results_1_item_attrs["response"]["surcharge"])
64
- expect(res.raw_attributes).to eq(order_results_1_item_attrs)
65
- expect(res.items.count).to eq(1)
66
- expect(res).not_to be_error
67
- end
68
-
69
- it "sets value correctly with multiple items" do
70
- res = WalmartOpen::OrderResults.new(order_results_2_item_attrs)
71
-
72
- expect(res.order_id).to eq(order_results_2_item_attrs["response"]["orderId"])
73
- expect(res.partner_order_id).to eq(order_results_2_item_attrs["response"]["partnerOrderId"])
74
- expect(res.total).to eq(order_results_2_item_attrs["response"]["itemTotal"])
75
- expect(res.shipping).to eq(order_results_2_item_attrs["response"]["shipping"])
76
- expect(res.sales_tax).to eq(order_results_2_item_attrs["response"]["salesTax"])
77
- expect(res.surcharge).to eq(order_results_2_item_attrs["response"]["surcharge"])
78
- expect(res.raw_attributes).to eq(order_results_2_item_attrs)
79
- expect(res.items.count).to eq(2)
80
- expect(res).not_to be_error
81
- end
82
- end
83
- end
@@ -1,130 +0,0 @@
1
- require "spec_helper"
2
- require "walmart_open/order"
3
-
4
- describe WalmartOpen::Order do
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
13
-
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
31
-
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) }
36
-
37
- context ".new" do
38
- it "sets value correctly" do
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
-
48
- expect(order.items).to be_empty
49
- end
50
-
51
- it "accepts string keys" do
52
- stringified_valid_attrs = valid_order_params.each_with_object({}) do |pair, obj|
53
- obj[pair.first.to_s] = pair.last
54
- end
55
- order = WalmartOpen::Order.new(stringified_valid_attrs)
56
-
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])
60
-
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])
65
-
66
- expect(order.items).to be_empty
67
- end
68
- end
69
-
70
- context "#add_item" do
71
- it "adds item object" do
72
- item = double
73
- order.add_item(item)
74
- expect(order.items).not_to be_empty
75
- end
76
-
77
- it "adds item by id" do
78
- order.add_item(1)
79
- expect(order.items).not_to be_empty
80
- end
81
- end
82
- end
83
-
84
- context "#valid?" do
85
- context "when required order params are present" do
86
- before do
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)
91
- end
92
-
93
- it "returns true" do
94
- expect(@order).to be_valid
95
- end
96
- end
97
-
98
- context "when required order params are not present" do
99
- shared_examples_for "missing required key" do |optional_key|
100
- before do
101
- valid_order_params.delete(optional_key) if optional_key
102
- end
103
-
104
- it "returns false" do
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
109
- end
110
- end
111
-
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
122
- end
123
-
124
- context "when order item not present" do
125
- let(:item_id) {nil}
126
- it_behaves_like "missing required key", nil
127
- end
128
- end
129
- end
130
- end
@@ -1,151 +0,0 @@
1
- require "spec_helper"
2
- require "walmart_open/requests/place_order"
3
- require "walmart_open/order"
4
- require "walmart_open/client"
5
- require "walmart_open/errors"
6
-
7
- describe WalmartOpen::Requests::PlaceOrder do
8
- context "#submit" do
9
- let(:order_attrs) do
10
- {
11
- billing_id: 1,
12
- first_name: "James",
13
- last_name: "Fong",
14
- partner_order_id: "44",
15
- phone: "606-478-0850"
16
- }
17
- end
18
-
19
- let(:multiple_order_response) do
20
- {
21
- "response" => {
22
- "orderId" => "2677911169085",
23
- "partnerOrderId" => "8",
24
- "items" => {
25
- "item" => [
26
- {
27
- "itemId" => "25174174",
28
- "quantity" => "1",
29
- "itemPrice" => "214.99"
30
- },
31
- {
32
- "itemId" => "10371356",
33
- "quantity" => "1",
34
- "itemPrice" => "22.97"
35
- }
36
- ]
37
- },
38
- "total" => "259.38",
39
- "itemTotal" => "237.96",
40
- "shipping" => "0",
41
- "salesTax" => "21.42",
42
- "surcharge" => "0.00"
43
- }
44
- }
45
- end
46
-
47
- let(:single_order_response) do
48
- {
49
- "response" => {
50
- "orderId" => "2677913310915",
51
- "partnerOrderId" => "20",
52
- "items" => {
53
- "item" => {
54
- "itemId" => "10371356",
55
- "quantity" => "1",
56
- "itemPrice" => "22.97"
57
- }
58
- },
59
- "total" => "29.95",
60
- "itemTotal" => "22.97",
61
- "shipping" => "4.97",
62
- "salesTax" => "2.01",
63
- "surcharge" => "0.00"
64
- }
65
- }
66
- end
67
-
68
- let(:client) { WalmartOpen::Client.new }
69
- let(:order) { WalmartOpen::Order.new(order_attrs) }
70
- let(:order_req) { WalmartOpen::Requests::PlaceOrder.new(order) }
71
- let(:success_response) { double(success?: true) }
72
- let(:fail_response) { double(success?: false) }
73
-
74
- before do
75
- allow(order_req).to receive(:request_options).and_return({})
76
- end
77
-
78
- context "when response is success" do
79
- before do
80
- allow(HTTParty).to receive(:post).and_return(success_response)
81
- allow(success_response).to receive(:code).and_return(200)
82
- end
83
-
84
- context "when multiple orders" do
85
- before do
86
- allow(success_response).to receive(:parsed_response).and_return(multiple_order_response)
87
- end
88
-
89
- it "return response" do
90
- order = order_req.submit(client)
91
- expect(order.raw_attributes).to eq(multiple_order_response)
92
- end
93
- end
94
-
95
- context "when one order" do
96
- before do
97
- allow(success_response).to receive(:parsed_response).and_return(single_order_response)
98
- end
99
-
100
- it "return response" do
101
- order = order_req.submit(client)
102
- expect(order.raw_attributes).to eq(single_order_response)
103
- end
104
- end
105
- end
106
-
107
- context "when response is not success" do
108
- before do
109
- allow(HTTParty).to receive(:post).and_return(fail_response)
110
- end
111
-
112
- context "response has http code 400" do
113
- before do
114
- allow(fail_response).to receive(:code).and_return(400)
115
- allow(fail_response).to receive(:parsed_response).and_return({
116
- "errors" => {
117
- "error" => {
118
- "code" => "10020",
119
- "message" => "This order has already been executed"
120
- }
121
- }
122
- })
123
- end
124
-
125
- it "raises order error" do
126
- expect{
127
- order_req.submit(client)
128
- }.to raise_error(WalmartOpen::OrderError)
129
- end
130
- end
131
-
132
- context "response has http code not 400" do
133
- before do
134
- allow(fail_response).to receive(:code).and_return(403)
135
- allow(fail_response).to receive(:parsed_response).and_return({
136
- "errors" => [{
137
- "code" => 403,
138
- "message" => "Account Inactive"
139
- }]
140
- })
141
- end
142
-
143
- it "raises authentication error" do
144
- expect {
145
- order_req.submit(client)
146
- }.to raise_error(WalmartOpen::ServerError)
147
- end
148
- end
149
- end
150
- end
151
- end
@@ -1,49 +0,0 @@
1
- require "spec_helper"
2
- require "walmart_open/requests/token"
3
- require "walmart_open/client"
4
- require "walmart_open/errors"
5
-
6
- describe WalmartOpen::Requests::Token do
7
- context "#submit" do
8
- let(:client) {WalmartOpen::Client.new}
9
- let(:token_req) { WalmartOpen::Requests::Token.new }
10
- let(:success_response) { double(success?: true) }
11
- let(:fail_response) { double(success?: false) }
12
-
13
- context "when response is success" do
14
- before do
15
- allow(HTTParty).to receive(:post).and_return(success_response)
16
- attrs = {
17
- "token_type" => "bearer",
18
- "mapi" => "8tbvkxd6gu6zjzp6qbyeewb6",
19
- "access_token" => "k5pzg6jqtetygmrkm5y6qqnr",
20
- "expires_in" => 600
21
- }
22
- allow(success_response).to receive(:parsed_response).and_return(attrs)
23
- header_attrs = {"date"=> "Sun, 01 Dec 2013 07:25:35 GMT"}
24
- allow(success_response).to receive(:headers).and_return(header_attrs)
25
- end
26
-
27
- it "get response" do
28
- token = token_req.submit(client)
29
-
30
- expect(token.token_type).to eq("bearer")
31
- expect(token.access_token).to eq("k5pzg6jqtetygmrkm5y6qqnr")
32
- expect(token.time).to eq(Time.parse("Sun, 01 Dec 2013 07:25:35 GMT"))
33
- end
34
- end
35
-
36
- context "when response is not success" do
37
- before do
38
- allow(HTTParty).to receive(:post).and_return(fail_response)
39
- allow(fail_response).to receive(:parsed_response).and_return({"errors"=>[{"code"=>403, "message"=>"Account Inactive"}]})
40
- end
41
-
42
- it "get authentication error" do
43
- expect{
44
- token_req.submit(client)
45
- }.to raise_error(WalmartOpen::ServerError)
46
- end
47
- end
48
- end
49
- end