-
Notifications
You must be signed in to change notification settings - Fork 44
/
xlsx_utils_test.rb
122 lines (89 loc) · 3.95 KB
/
xlsx_utils_test.rb
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
require 'test_helper'
class XlsxUtilsTest < ActiveSupport::TestCase
klass = SpreadsheetArchitect::Utils::XLSX
def setup
end
def teardown
end
test "convert_styles_to_axlsx" do
xlsx_styles = klass.convert_styles_to_axlsx({background_color: '333333', color: '000000', align: true, bold: true, font_size: 14, italic: true, underline: true, test: true})
assert_equal(xlsx_styles, {bg_color: '333333', fg_color: '000000', alignment: {horizontal: true}, b: true, sz: 14, i: true, u: true, test: true})
end
test "get_type" do
assert_equal(klass.get_type('string'), :string)
assert_equal(klass.get_type(123.01), :float)
assert_equal(klass.get_type(BigDecimal('123.01')), :float)
assert_equal(klass.get_type(10), :integer)
assert_equal(klass.get_type(:test), :string)
assert_equal(klass.get_type(Time.now.to_date), :date)
assert_equal(klass.get_type(DateTime.now), :time)
assert_equal(klass.get_type(Time.now), :time)
end
test "range_hash_to_str" do
num_columns = 26
num_rows = 10
assert_raise SpreadsheetArchitect::Exceptions::InvalidRangeStylesOptionError do
klass.range_hash_to_str({}, num_columns, num_rows)
end
assert_raise SpreadsheetArchitect::Exceptions::InvalidRangeStylesOptionError do
klass.range_hash_to_str({columns: 1}, num_columns, num_rows)
end
assert_raise SpreadsheetArchitect::Exceptions::InvalidRangeStylesOptionError do
klass.range_hash_to_str({rows: 1}, num_columns, num_rows)
end
assert_raise SpreadsheetArchitect::Exceptions::InvalidRangeStylesOptionError do
klass.range_hash_to_str({columns: [1,2,3], rows: 1}, num_columns, num_rows)
end
assert_raise SpreadsheetArchitect::Exceptions::InvalidRangeStylesOptionError do
klass.range_hash_to_str({columns: 1, rows: [1,2,3]}, num_columns, num_rows)
end
assert_equal klass.range_hash_to_str({columns: 0, rows: 1}, num_columns, num_rows), "A1:A1"
assert_equal klass.range_hash_to_str({columns: (0..2), rows: (1..3)}, num_columns, num_rows), "A1:C3"
assert_equal klass.range_hash_to_str({columns: ('A'..'C'), rows: (1..3)}, num_columns, num_rows), "A1:C3"
assert_equal klass.range_hash_to_str({columns: :all, rows: :all}, num_columns, num_rows), "A1:Z10"
assert_raise SpreadsheetArchitect::Exceptions::InvalidRangeError do
assert_equal klass.range_hash_to_str({columns: ('foobar'..'asd'), rows: (1..3)}, num_columns, num_rows), "foobar1:asd3"
end
end
test "verify_range" do
num_rows = 10
klass.verify_range("A1:Z10", num_rows)
assert_raise SpreadsheetArchitect::Exceptions::InvalidRangeError do
klass.verify_range(:foo, num_rows)
end
assert_raise SpreadsheetArchitect::Exceptions::InvalidRangeError do
klass.verify_range("A1Z10", num_rows)
end
assert_raise SpreadsheetArchitect::Exceptions::InvalidRangeError do
klass.verify_range("A1:A11", num_rows)
end
#assert_raise SpreadsheetArchitect::Exceptions::InvalidRangeError do
klass.verify_range("A1:AAA1", num_rows)
#end
end
test "verify_column" do
num_columns = 26
klass.verify_column(1, num_columns)
klass.verify_column("A", num_columns)
assert_raise SpreadsheetArchitect::Exceptions::InvalidColumnError do
klass.verify_column(-1, num_columns)
end
assert_raise SpreadsheetArchitect::Exceptions::InvalidColumnError do
klass.verify_column(99, num_columns)
end
assert_raise SpreadsheetArchitect::Exceptions::InvalidColumnError do
klass.verify_column("foobar", num_columns)
end
assert_raise SpreadsheetArchitect::Exceptions::InvalidColumnError do
klass.verify_column([], num_columns)
end
#assert_raise SpreadsheetArchitect::Exceptions::InvalidColumnError do
klass.verify_column("ZZ", num_columns)
#end
end
test "constants" do
assert_equal klass::COL_NAMES.count, 16384
assert_equal klass::COL_NAMES.first, 'A'
assert_equal klass::COL_NAMES.last, 'XFD'
end
end