checkout_ru 0.0.1
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 +7 -0
- data/.gitignore +17 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +72 -0
- data/Rakefile +9 -0
- data/checkout_ru.gemspec +32 -0
- data/lib/checkout_ru/address.rb +12 -0
- data/lib/checkout_ru/delivery.rb +19 -0
- data/lib/checkout_ru/entity.rb +14 -0
- data/lib/checkout_ru/item.rb +21 -0
- data/lib/checkout_ru/order.rb +34 -0
- data/lib/checkout_ru/session.rb +46 -0
- data/lib/checkout_ru/user.rb +9 -0
- data/lib/checkout_ru/version.rb +3 -0
- data/lib/checkout_ru.rb +147 -0
- data/test/checkout_ru/session_test.rb +82 -0
- data/test/checkout_ru_test.rb +124 -0
- data/test/fixtures/calculation.yml +4279 -0
- data/test/fixtures/create_order.yml +39 -0
- data/test/fixtures/get_place_by_postal_code.yml +37 -0
- data/test/fixtures/get_places_by_query.yml +46 -0
- data/test/fixtures/get_postal_code_by_address.yml +34 -0
- data/test/fixtures/get_streets_by_query.yml +41 -0
- data/test/fixtures/get_ticket.yml +32 -0
- data/test/fixtures/get_ticket_invalid_api_key.yml +35 -0
- data/test/fixtures/populated_status_history.yml +70 -0
- data/test/fixtures/status.yml +34 -0
- data/test/fixtures/status_history.yml +42 -0
- data/test/fixtures/update_order.yml +39 -0
- data/test/test_helper.rb +8 -0
- metadata +230 -0
@@ -0,0 +1,124 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class CheckoutRuTest < MiniTest::Test
|
4
|
+
def build_order
|
5
|
+
CheckoutRu::Order.new(
|
6
|
+
:goods => [
|
7
|
+
CheckoutRu::Item.new(
|
8
|
+
:name => 'blue tshirt',
|
9
|
+
:code => 'blt',
|
10
|
+
:variant_code => 'blue',
|
11
|
+
:quantity => 2,
|
12
|
+
:assessed_cost => 1000,
|
13
|
+
:pay_cost => 750,
|
14
|
+
:weight => 0.5
|
15
|
+
)
|
16
|
+
],
|
17
|
+
|
18
|
+
:delivery => CheckoutRu::Delivery.new(
|
19
|
+
:delivery_id => 2,
|
20
|
+
:place_fias_id => '0c5b2444-70a0-4932-980c-b4dc0d3f02b5',
|
21
|
+
:address_pvz => 'Энтузиастов ш., д. 54',
|
22
|
+
:type => 'postamat',
|
23
|
+
:cost => 224.41,
|
24
|
+
:min_term => 2,
|
25
|
+
:max_term => 11
|
26
|
+
),
|
27
|
+
|
28
|
+
:user => CheckoutRu::User.new(
|
29
|
+
:fullname => 'Вася Пупкин',
|
30
|
+
:email => 'vasyapupkin@example.com',
|
31
|
+
:phone => '555'
|
32
|
+
),
|
33
|
+
|
34
|
+
:comment => 'test order',
|
35
|
+
:shop_order_id => '777',
|
36
|
+
:payment_method => 'cash'
|
37
|
+
)
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_get_ticket_returns_valid_ticket
|
41
|
+
VCR.use_cassette('get_ticket') do
|
42
|
+
assert_equal 'valid-ticket',
|
43
|
+
CheckoutRu.get_ticket(:api_key => 'valid-api-key')
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def test_get_ticket_with_invalid_api_key_raises_invalid_key_error
|
48
|
+
VCR.use_cassette('get_ticket_invalid_api_key') do
|
49
|
+
assert_raises CheckoutRu::Error do
|
50
|
+
CheckoutRu.get_ticket(:api_key => 'invalid-api-key')
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
def test_create_order
|
56
|
+
order = build_order
|
57
|
+
|
58
|
+
VCR.use_cassette('create_order') do
|
59
|
+
response = CheckoutRu.create_order(order, :api_key => 'valid-api-key')
|
60
|
+
|
61
|
+
assert_equal 75, response.order.id
|
62
|
+
assert_equal 2, response.delivery.id
|
63
|
+
assert_equal 'PickPoint', response.delivery.service_name
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
def test_update_order
|
68
|
+
order = build_order
|
69
|
+
order.user.fullname = 'Петя Пупкин'
|
70
|
+
|
71
|
+
VCR.use_cassette('update_order') do
|
72
|
+
response = CheckoutRu.update_order(75, order, :api_key => 'valid-api-key')
|
73
|
+
|
74
|
+
assert_equal 75, response.order.id
|
75
|
+
assert_equal 2, response.delivery.id
|
76
|
+
assert_equal 'PickPoint', response.delivery.service_name
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
def test_status
|
81
|
+
VCR.use_cassette('status') do
|
82
|
+
response = CheckoutRu.status \
|
83
|
+
75, :cancelled_before_shipment, :api_key => 'valid-api-key'
|
84
|
+
assert_equal '', response
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
def test_status_history
|
89
|
+
VCR.use_cassette('status_history') do
|
90
|
+
response = CheckoutRu.status_history(777, :api_key => 'valid-api-key')
|
91
|
+
|
92
|
+
assert_equal '75', response.order.id
|
93
|
+
assert_equal Date.parse('2014-02-01'), response.order.date
|
94
|
+
assert_equal 1724.41, response.order.total_cost
|
95
|
+
assert_equal nil, response.order.approximate_delivery_date
|
96
|
+
assert_equal 'Петя Пупкин', response.user.fullname
|
97
|
+
assert_equal 'г. Москва', response.user.address.place
|
98
|
+
assert_equal 'PickPoint', response.delivery_name
|
99
|
+
assert_equal [], response.delivery_history
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
def test_populated_status_history
|
104
|
+
VCR.use_cassette('populated_status_history') do
|
105
|
+
response = CheckoutRu.status_history(64, :api_key => 'valid-api-key')
|
106
|
+
|
107
|
+
assert_equal '64', response.order.id
|
108
|
+
assert_equal Date.parse('2013-10-14'), response.order.date
|
109
|
+
assert_equal 1136.33, response.order.total_cost
|
110
|
+
assert_equal nil, response.order.approximate_delivery_date
|
111
|
+
|
112
|
+
assert_equal 'ввв', response.user.fullname
|
113
|
+
assert_equal 'г. Волгоград (Волгоградская область)',
|
114
|
+
response.user.address.place
|
115
|
+
|
116
|
+
assert_equal 'DPD', response.delivery_name
|
117
|
+
|
118
|
+
assert_equal 9, response.delivery_history.size
|
119
|
+
assert_equal 'Посылка находится на терминале DPD, который осуществлял ' +
|
120
|
+
'её приём у отправителя', response.delivery_history[0].status
|
121
|
+
assert_equal '10.09.2013 17:19:13', response.delivery_history[0].date
|
122
|
+
end
|
123
|
+
end
|
124
|
+
end
|