require 'tc_helper.rb' 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 0 } 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