rs.ge 0.0.17 → 0.1.0.beta1

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.
@@ -1,149 +0,0 @@
1
- # -*- encoding : utf-8 -*-
2
- require 'spec_helper'
3
- require 'rs'
4
-
5
- def validable_test(cntxt, validable, field, has_errors)
6
- describe cntxt do
7
- before(:all) do
8
- yield(validable) if block_given?
9
- validable.validate
10
- end
11
- subject { validable.validation_errors[field] }
12
- if has_errors
13
- it("Errors for #{field} not nil") { should_not be_nil }
14
- it("Errors for #{field} not empty") { should_not be_empty }
15
- else
16
- it("Errors for #{field} are nil") { should be_nil }
17
- end
18
- end
19
- end
20
-
21
- describe 'waybill validation' do
22
- before(:all) do
23
- @waybill = RS::Waybill.new
24
- @waybill.validate
25
- end
26
- subject { @waybill }
27
- it { should_not be_valid }
28
- specify do
29
- # buyer TIN
30
- validable_test('buyer tin errors', @waybill, :buyer_tin, true)
31
- validable_test('fix buyer tin errors incorrectly', @waybill, :buyer_tin, true) do |waybill|
32
- waybill.buyer_tin = '123'
33
- waybill.check_buyer_tin = true
34
- end
35
- validable_test('fix buyer tin errors correctly', @waybill, :buyer_tin, false) do |waybill|
36
- waybill.buyer_tin = '123456789'
37
- waybill.check_buyer_tin = true
38
- end
39
- # buyer name
40
- validable_test('buyer name error', @waybill, :buyer_name, true) do |waybill|
41
- waybill.check_buyer_tin = false
42
- end
43
- validable_test('fix buyer name error', @waybill, :buyer_name, false) do |waybill|
44
- waybill.buyer_name = 'dimitri'
45
- end
46
- # car number
47
- validable_test('car number error', @waybill, :car_number, true) do |waybill|
48
- waybill.transport_type_id = RS::TransportType::VEHICLE
49
- end
50
- validable_test('fix car number error', @waybill, :car_number, false) do |waybill|
51
- waybill.car_number = 'WDW842'
52
- end
53
- # driver name
54
- validable_test('driver name error', @waybill, :driver_name, true) do |waybill|
55
- waybill.transport_type_id = RS::TransportType::VEHICLE
56
- end
57
- validable_test('fix driver name error', @waybill, :driver_name, false) do |waybill|
58
- waybill.driver_name = 'Dimitri Kurashvili'
59
- end
60
- # driver TIN
61
- validable_test('driver tin error', @waybill, :driver_tin, true)
62
- validable_test('driver tin error fix', @waybill, :driver_tin, false) do |waybill|
63
- waybill.driver_tin = '123456789'
64
- end
65
- validable_test('driver tin error again: when checking TIN', @waybill, :driver_tin, true) do |waybill|
66
- waybill.check_driver_tin = true
67
- end
68
- # transport name for RS::TransportType::OTHERS
69
- validable_test('transport name missing', @waybill, :transport_type_name, true) do |waybill|
70
- waybill.transport_type_id = RS::TransportType::OTHERS
71
- end
72
- validable_test('transport name missing: fix', @waybill, :transport_type_name, false) do |waybill|
73
- waybill.transport_type_name = 'horse'
74
- end
75
- # start/end address
76
- validable_test('start address is missing', @waybill, :start_address, true)
77
- validable_test('end address is missing', @waybill, :end_address, true)
78
- validable_test('fixing start address', @waybill, :start_address, false) do |waybill|
79
- waybill.start_address = 'Tbilisi'
80
- end
81
- validable_test('fixing end address', @waybill, :end_address, false) do |waybill|
82
- waybill.end_address = 'Sokhumi'
83
- end
84
- validable_test('waybill_type == WITHOUT_TRANSPORTATION', @waybill, :type, true) do |waybill|
85
- waybill.type = RS::WaybillType::WITHOUT_TRANSPORTATION
86
- end
87
- # items
88
- validable_test('items are missing', @waybill, :items, true)
89
- end
90
- end
91
-
92
- describe 'waybill item validation' do
93
- before(:all) do
94
- @item = RS::WaybillItem.new
95
- @item.validate
96
- end
97
- subject { @item }
98
- it { should_not be_valid }
99
- specify do
100
- validable_test('prod_name is missing', @item, :prod_name, true)
101
- validable_test('bar_code is missing', @item, :bar_code, true)
102
- validable_test('unit is missing', @item, :unit_id, true)
103
- validable_test('unit name missing is ok', @item, :unit_name, false)
104
- validable_test('quantity is missing', @item, :quantity, true)
105
- validable_test('price is missing', @item, :price, true)
106
- validable_test('prod_name added', @item, :prod_name, false) do |item|
107
- item.prod_name = 'პამიდორი'
108
- end
109
- validable_test('bar_code added', @item, :bar_code, false) do |item|
110
- item.bar_code = '123'
111
- end
112
- validable_test('unit_id added', @item, :unit_id, false) do |item|
113
- item.unit_id = RS::WaybillUnit::OTHERS
114
- end
115
- validable_test('unit name not defined: it is a problem now', @item, :unit_name, true)
116
- validable_test('unit name added', @item, :unit_name, false) do |item|
117
- item.unit_name = 'kg'
118
- end
119
- validable_test('quant < 0', @item, :quantity, true) do |item|
120
- item.quantity = -1
121
- end
122
- validable_test('quant > 0', @item, :quantity, false) do |item|
123
- item.quantity = 1
124
- end
125
- validable_test('price < 0', @item, :price, true) do |item|
126
- item.price = -10
127
- end
128
- validable_test('price > 0', @item, :price, false) do |item|
129
- item.price = 10
130
- end
131
- end
132
- end
133
-
134
- describe 'validation with remote' do
135
- before(:all) do
136
- @waybill = waybill_skeleton(:driver_tin => '02001000490', :driver_name => 'Dimitri Kurashvili', :check_driver_tin => true, :buyer_tin => '02001000490', :buyer_name => 'Dimitri Kurashvili')
137
- @waybill.validate(RS.su_params.merge(:remote => true))
138
- #puts @waybill.validation_errors[:driver_name]
139
- #puts @waybill.validation_errors[:driver_tin]
140
- #puts @waybill.validation_errors[:buyer_name]
141
- #puts @waybill.validation_errors[:buyer_tin]
142
- end
143
- subject { @waybill.validation_errors }
144
- it { should_not be_empty }
145
- it("should have illegal driver_name") { subject[:driver_name].should_not be_nil }
146
- it("driver_tin is OK") { subject[:driver_tin].should be_nil }
147
- it("should have illegal buyer name") { subject[:buyer_name].should_not be_nil }
148
- it("buyer_tin is OK") { subject[:buyer_tin].should be_nil }
149
- end