1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
|
# frozen_string_literal: true
require 'tc_helper'
class TestValidators < Test::Unit::TestCase
def setup; end
def teardown; end
def test_validators
# unsigned_int
assert_nothing_raised { Axlsx.validate_unsigned_int 1 }
assert_nothing_raised { Axlsx.validate_unsigned_int(+1) }
assert_raise(ArgumentError) { Axlsx.validate_unsigned_int(-1) }
assert_raise(ArgumentError) { Axlsx.validate_unsigned_int('1') }
# int
assert_nothing_raised { Axlsx.validate_int(1) }
assert_nothing_raised { Axlsx.validate_int(-1) }
assert_raise(ArgumentError) { Axlsx.validate_int('a') }
assert_raise(ArgumentError) { Axlsx.validate_int(Array) }
# boolean (as 0 or 1, :true, :false, true, false, or "true," "false")
[0, 1, :true, :false, true, false, "true", "false"].each do |v|
assert_nothing_raised { Axlsx.validate_boolean v }
end
assert_raise(ArgumentError) { Axlsx.validate_boolean 2 }
# string
assert_nothing_raised { Axlsx.validate_string "1" }
assert_raise(ArgumentError) { Axlsx.validate_string 2 }
assert_raise(ArgumentError) { Axlsx.validate_string false }
# float
assert_nothing_raised { Axlsx.validate_float 1.0 }
assert_raise(ArgumentError) { Axlsx.validate_float 2 }
assert_raise(ArgumentError) { Axlsx.validate_float false }
# pattern_type
assert_nothing_raised { Axlsx.validate_pattern_type :none }
assert_raise(ArgumentError) { Axlsx.validate_pattern_type "none" }
assert_raise(ArgumentError) { Axlsx.validate_pattern_type "crazy_pattern" }
assert_raise(ArgumentError) { Axlsx.validate_pattern_type false }
# gradient_type
assert_nothing_raised { Axlsx.validate_gradient_type :path }
assert_raise(ArgumentError) { Axlsx.validate_gradient_type nil }
assert_raise(ArgumentError) { Axlsx.validate_gradient_type "fractal" }
assert_raise(ArgumentError) { Axlsx.validate_gradient_type false }
# horizontal alignment
assert_nothing_raised { Axlsx.validate_horizontal_alignment :general }
assert_raise(ArgumentError) { Axlsx.validate_horizontal_alignment nil }
assert_raise(ArgumentError) { Axlsx.validate_horizontal_alignment "wavy" }
assert_raise(ArgumentError) { Axlsx.validate_horizontal_alignment false }
# vertical alignment
assert_nothing_raised { Axlsx.validate_vertical_alignment :top }
assert_raise(ArgumentError) { Axlsx.validate_vertical_alignment nil }
assert_raise(ArgumentError) { Axlsx.validate_vertical_alignment "dynamic" }
assert_raise(ArgumentError) { Axlsx.validate_vertical_alignment false }
# contentType
assert_nothing_raised { Axlsx.validate_content_type Axlsx::WORKBOOK_CT }
assert_raise(ArgumentError) { Axlsx.validate_content_type nil }
assert_raise(ArgumentError) { Axlsx.validate_content_type "http://some.url" }
assert_raise(ArgumentError) { Axlsx.validate_content_type false }
# relationshipType
assert_nothing_raised { Axlsx.validate_relationship_type Axlsx::WORKBOOK_R }
assert_raise(ArgumentError) { Axlsx.validate_relationship_type nil }
assert_raise(ArgumentError) { Axlsx.validate_relationship_type "http://some.url" }
assert_raise(ArgumentError) { Axlsx.validate_relationship_type false }
# number_with_unit
assert_nothing_raised { Axlsx.validate_number_with_unit "210mm" }
assert_nothing_raised { Axlsx.validate_number_with_unit "8.5in" }
assert_nothing_raised { Axlsx.validate_number_with_unit "29.7cm" }
assert_nothing_raised { Axlsx.validate_number_with_unit "120pt" }
assert_nothing_raised { Axlsx.validate_number_with_unit "0pc" }
assert_nothing_raised { Axlsx.validate_number_with_unit "12.34pi" }
assert_raise(ArgumentError) { Axlsx.validate_number_with_unit nil }
assert_raise(ArgumentError) { Axlsx.validate_number_with_unit "210" }
assert_raise(ArgumentError) { Axlsx.validate_number_with_unit 210 }
assert_raise(ArgumentError) { Axlsx.validate_number_with_unit "mm" }
assert_raise(ArgumentError) { Axlsx.validate_number_with_unit "-29cm" }
# scale_10_400
assert_nothing_raised { Axlsx.validate_scale_10_400 10 }
assert_nothing_raised { Axlsx.validate_scale_10_400 100 }
assert_nothing_raised { Axlsx.validate_scale_10_400 400 }
assert_raise(ArgumentError) { Axlsx.validate_scale_10_400 9 }
assert_raise(ArgumentError) { Axlsx.validate_scale_10_400 10.0 }
assert_raise(ArgumentError) { Axlsx.validate_scale_10_400 400.1 }
assert_raise(ArgumentError) { Axlsx.validate_scale_10_400 "99" }
# scale_0_10_400
assert_nothing_raised { Axlsx.validate_scale_0_10_400 0 }
assert_nothing_raised { Axlsx.validate_scale_0_10_400 10 }
assert_nothing_raised { Axlsx.validate_scale_0_10_400 100 }
assert_nothing_raised { Axlsx.validate_scale_0_10_400 400 }
assert_raise(ArgumentError) { Axlsx.validate_scale_0_10_400 9 }
assert_raise(ArgumentError) { Axlsx.validate_scale_0_10_400 10.0 }
assert_raise(ArgumentError) { Axlsx.validate_scale_0_10_400 400.1 }
assert_raise(ArgumentError) { Axlsx.validate_scale_0_10_400 "99" }
# page_orientation
assert_nothing_raised { Axlsx.validate_page_orientation :default }
assert_nothing_raised { Axlsx.validate_page_orientation :landscape }
assert_nothing_raised { Axlsx.validate_page_orientation :portrait }
assert_raise(ArgumentError) { Axlsx.validate_page_orientation nil }
assert_raise(ArgumentError) { Axlsx.validate_page_orientation 1 }
assert_raise(ArgumentError) { Axlsx.validate_page_orientation "landscape" }
# data_validation_error_style
[:information, :stop, :warning].each do |sym|
assert_nothing_raised { Axlsx.validate_data_validation_error_style sym }
end
assert_raise(ArgumentError) { Axlsx.validate_data_validation_error_style :other_symbol }
assert_raise(ArgumentError) { Axlsx.validate_data_validation_error_style 'warning' }
assert_raise(ArgumentError) { Axlsx.validate_data_validation_error_style 0 }
# data_validation_operator
[:lessThan, :lessThanOrEqual, :equal, :notEqual, :greaterThanOrEqual, :greaterThan, :between, :notBetween].each do |sym|
assert_nothing_raised { Axlsx.validate_data_validation_operator sym }
end
assert_raise(ArgumentError) { Axlsx.validate_data_validation_error_style :other_symbol }
assert_raise(ArgumentError) { Axlsx.validate_data_validation_error_style 'lessThan' }
assert_raise(ArgumentError) { Axlsx.validate_data_validation_error_style 0 }
# data_validation_type
[:custom, :data, :decimal, :list, :none, :textLength, :date, :time, :whole].each do |sym|
assert_nothing_raised { Axlsx.validate_data_validation_type sym }
end
assert_raise(ArgumentError) { Axlsx.validate_data_validation_error_style :other_symbol }
assert_raise(ArgumentError) { Axlsx.validate_data_validation_error_style 'decimal' }
assert_raise(ArgumentError) { Axlsx.validate_data_validation_error_style 0 }
# sheet_view_type
[:normal, :page_break_preview, :page_layout].each do |sym|
assert_nothing_raised { Axlsx.validate_sheet_view_type sym }
end
assert_raise(ArgumentError) { Axlsx.validate_data_validation_error_style :other_symbol }
assert_raise(ArgumentError) { Axlsx.validate_data_validation_error_style 'page_layout' }
assert_raise(ArgumentError) { Axlsx.validate_data_validation_error_style 0 }
# active_pane_type
[:bottom_left, :bottom_right, :top_left, :top_right].each do |sym|
assert_nothing_raised { Axlsx.validate_pane_type sym }
end
assert_raise(ArgumentError) { Axlsx.validate_pane_type :other_symbol }
assert_raise(ArgumentError) { Axlsx.validate_pane_type 'bottom_left' }
assert_raise(ArgumentError) { Axlsx.validate_pane_type 0 }
# split_state_type
[:frozen, :frozen_split, :split].each do |sym|
assert_nothing_raised { Axlsx.validate_split_state_type sym }
end
assert_raise(ArgumentError) { Axlsx.validate_split_state_type :other_symbol }
assert_raise(ArgumentError) { Axlsx.validate_split_state_type 'frozen_split' }
assert_raise(ArgumentError) { Axlsx.validate_split_state_type 0 }
# display_blanks_as
[:gap, :span, :zero].each do |sym|
assert_nothing_raised { Axlsx.validate_display_blanks_as sym }
end
assert_raise(ArgumentError) { Axlsx.validate_display_blanks_as :other_symbol }
assert_raise(ArgumentError) { Axlsx.validate_display_blanks_as 'other_blank' }
assert_raise(ArgumentError) { Axlsx.validate_display_blanks_as 0 }
# view_visibility
[:visible, :hidden, :very_hidden].each do |sym|
assert_nothing_raised { Axlsx.validate_view_visibility sym }
end
assert_raise(ArgumentError) { Axlsx.validate_view_visibility :other_symbol }
assert_raise(ArgumentError) { Axlsx.validate_view_visibility 'other_visibility' }
assert_raise(ArgumentError) { Axlsx.validate_view_visibility 0 }
# marker_symbol
[:default, :circle, :dash, :diamond, :dot, :picture, :plus, :square, :star, :triangle, :x].each do |sym|
assert_nothing_raised { Axlsx.validate_marker_symbol sym }
end
assert_raise(ArgumentError) { Axlsx.validate_marker_symbol :other_symbol }
assert_raise(ArgumentError) { Axlsx.validate_marker_symbol 'other_marker' }
assert_raise(ArgumentError) { Axlsx.validate_marker_symbol 0 }
end
def test_validate_integerish
assert_raise(ArgumentError) { Axlsx.validate_integerish Axlsx }
[1, 1.4, "a"].each { |test_value| assert_nothing_raised { Axlsx.validate_integerish test_value } }
end
def test_validate_family
assert_raise(ArgumentError) { Axlsx.validate_family 0 }
(1..5).each do |item|
assert_nothing_raised { Axlsx.validate_family item }
end
end
def test_validate_u
assert_raise(ArgumentError) { Axlsx.validate_cell_u :hoge }
[:none, :single, :double, :singleAccounting, :doubleAccounting].each do |sym|
assert_nothing_raised { Axlsx.validate_cell_u sym }
end
end
def test_range_validation
# exclusive
assert_raise(ArgumentError) { Axlsx::RangeValidator.validate('foo', 1, 10, 10, false) }
# inclusive by default
assert_nothing_raised { Axlsx::RangeValidator.validate('foo', 1, 10, 10) }
end
end
|