test/test_workbook.rb in writeexcel-0.5.0 vs test/test_workbook.rb in writeexcel-0.6.0

- old
+ new

@@ -1,139 +1,139 @@ -# -*- coding: utf-8 -*- -require 'helper' -require "stringio" - -class TC_Workbook < Test::Unit::TestCase - - def setup - @test_file = StringIO.new - @workbook = Workbook.new(@test_file) - end - - def teardown - @workbook.close - end - - def test_new - assert_kind_of(Workbook, @workbook) - end - - def test_add_worksheet - sheetnames = ['sheet1', 'sheet2'] - (0 .. sheetnames.size-1).each do |i| - sheets = @workbook.sheets - assert_equal(i, sheets.size) - @workbook.add_worksheet(sheetnames[i]) - sheets = @workbook.sheets - assert_equal(i+1, sheets.size) - end - end - - def test_set_tempdir_after_sheet_added - # after shees added, call set_tempdir raise RuntimeError - @workbook.add_worksheet('name') - assert_raise(RuntimeError, "already sheet exists, but set_tempdir() doesn't raise"){ - @workbook.set_tempdir - } - end - - def test_set_tempdir_with_invalid_dir - # invalid dir raise RuntimeError - while true do - dir = Time.now.to_s - break unless FileTest.directory?(dir) - sleep 0.1 - end - assert_raise(RuntimeError, "set_tempdir() doesn't raise invalid dir:#{dir}."){ - @workbook.set_tempdir(dir) - } - end - -=begin -# -# Comment out because Workbook#check_sheetname was set to private method. -# - def test_check_sheetname - valids = valid_sheetname - invalids = invalid_sheetname - worksheet1 = @workbook.add_worksheet # implicit name 'Sheet1' - worksheet2 = @workbook.add_worksheet # implicit name 'Sheet2' - worksheet3 = @workbook.add_worksheet 'Sheet3' # implicit name 'Sheet3' - worksheet1 = @workbook.add_worksheet 'Sheetz' # implicit name 'Sheetz' - - valids.each do |test| - target = test[0] - sheetname = test[1] - caption = test[2] - assert_nothing_raised { @workbook.check_sheetname(sheetname) } - end - invalids.each do |test| - target = test[0] - sheetname = test[1] - caption = test[2] - assert_raise(RuntimeError, "sheetname: #{sheetname}") { - @workbook.check_sheetname(sheetname) - } - end - end -=end - - def test_raise_set_compatibility_after_sheet_creation - @workbook.add_worksheet - assert_raise(RuntimeError) { @workbook.compatibility_mode } - end - - def valid_sheetname - [ - # Tests for valid names - [ 'PASS', nil, 'No worksheet name' ], - [ 'PASS', '', 'Blank worksheet name' ], - [ 'PASS', 'Sheet10', 'Valid worksheet name' ], - [ 'PASS', 'a' * 31, 'Valid 31 char name' ] - ] - end - - def invalid_sheetname - [ - # Tests for invalid names - [ 'FAIL', 'Sheet1', 'Caught duplicate name' ], - [ 'FAIL', 'Sheet2', 'Caught duplicate name' ], - [ 'FAIL', 'Sheet3', 'Caught duplicate name' ], - [ 'FAIL', 'sheet1', 'Caught case-insensitive name'], - [ 'FAIL', 'SHEET1', 'Caught case-insensitive name'], - [ 'FAIL', 'sheetz', 'Caught case-insensitive name'], - [ 'FAIL', 'SHEETZ', 'Caught case-insensitive name'], - [ 'FAIL', 'a' * 32, 'Caught long name' ], - [ 'FAIL', '[', 'Caught invalid char' ], - [ 'FAIL', ']', 'Caught invalid char' ], - [ 'FAIL', ':', 'Caught invalid char' ], - [ 'FAIL', '*', 'Caught invalid char' ], - [ 'FAIL', '?', 'Caught invalid char' ], - [ 'FAIL', '/', 'Caught invalid char' ], - [ 'FAIL', '\\', 'Caught invalid char' ] - ] - end - - def test_add_format_must_accept_one_or_more_hash_params - font = { - :font => 'MS 明朝', - :size => 12, - :color => 'blue', - :bold => 1 - } - shading = { - :bg_color => 'green', - :pattern => 1 - } - properties = font.merge(shading) - - format1 = @workbook.add_format(properties) - format2 = @workbook.add_format(font, shading) - assert(format_equal?(format1, format2)) - end - - def format_equal?(f1, f2) - require 'yaml' - re = /xf_index: \d+\n/ - YAML.dump(f1).sub(re, '') == YAML.dump(f2).sub(re, '') - end -end +# -*- coding: utf-8 -*- +require 'helper' +require "stringio" + +class TC_Workbook < Test::Unit::TestCase + + def setup + @test_file = StringIO.new + @workbook = Workbook.new(@test_file) + end + + def teardown + @workbook.close + end + + def test_new + assert_kind_of(Workbook, @workbook) + end + + def test_add_worksheet + sheetnames = ['sheet1', 'sheet2'] + (0 .. sheetnames.size-1).each do |i| + sheets = @workbook.sheets + assert_equal(i, sheets.size) + @workbook.add_worksheet(sheetnames[i]) + sheets = @workbook.sheets + assert_equal(i+1, sheets.size) + end + end + + def test_set_tempdir_after_sheet_added + # after shees added, call set_tempdir raise RuntimeError + @workbook.add_worksheet('name') + assert_raise(RuntimeError, "already sheet exists, but set_tempdir() doesn't raise"){ + @workbook.set_tempdir + } + end + + def test_set_tempdir_with_invalid_dir + # invalid dir raise RuntimeError + while true do + dir = Time.now.to_s + break unless FileTest.directory?(dir) + sleep 0.1 + end + assert_raise(RuntimeError, "set_tempdir() doesn't raise invalid dir:#{dir}."){ + @workbook.set_tempdir(dir) + } + end + +=begin +# +# Comment out because Workbook#check_sheetname was set to private method. +# + def test_check_sheetname + valids = valid_sheetname + invalids = invalid_sheetname + worksheet1 = @workbook.add_worksheet # implicit name 'Sheet1' + worksheet2 = @workbook.add_worksheet # implicit name 'Sheet2' + worksheet3 = @workbook.add_worksheet 'Sheet3' # implicit name 'Sheet3' + worksheet1 = @workbook.add_worksheet 'Sheetz' # implicit name 'Sheetz' + + valids.each do |test| + target = test[0] + sheetname = test[1] + caption = test[2] + assert_nothing_raised { @workbook.check_sheetname(sheetname) } + end + invalids.each do |test| + target = test[0] + sheetname = test[1] + caption = test[2] + assert_raise(RuntimeError, "sheetname: #{sheetname}") { + @workbook.check_sheetname(sheetname) + } + end + end +=end + + def test_raise_set_compatibility_after_sheet_creation + @workbook.add_worksheet + assert_raise(RuntimeError) { @workbook.compatibility_mode } + end + + def valid_sheetname + [ + # Tests for valid names + [ 'PASS', nil, 'No worksheet name' ], + [ 'PASS', '', 'Blank worksheet name' ], + [ 'PASS', 'Sheet10', 'Valid worksheet name' ], + [ 'PASS', 'a' * 31, 'Valid 31 char name' ] + ] + end + + def invalid_sheetname + [ + # Tests for invalid names + [ 'FAIL', 'Sheet1', 'Caught duplicate name' ], + [ 'FAIL', 'Sheet2', 'Caught duplicate name' ], + [ 'FAIL', 'Sheet3', 'Caught duplicate name' ], + [ 'FAIL', 'sheet1', 'Caught case-insensitive name'], + [ 'FAIL', 'SHEET1', 'Caught case-insensitive name'], + [ 'FAIL', 'sheetz', 'Caught case-insensitive name'], + [ 'FAIL', 'SHEETZ', 'Caught case-insensitive name'], + [ 'FAIL', 'a' * 32, 'Caught long name' ], + [ 'FAIL', '[', 'Caught invalid char' ], + [ 'FAIL', ']', 'Caught invalid char' ], + [ 'FAIL', ':', 'Caught invalid char' ], + [ 'FAIL', '*', 'Caught invalid char' ], + [ 'FAIL', '?', 'Caught invalid char' ], + [ 'FAIL', '/', 'Caught invalid char' ], + [ 'FAIL', '\\', 'Caught invalid char' ] + ] + end + + def test_add_format_must_accept_one_or_more_hash_params + font = { + :font => 'MS 明朝', + :size => 12, + :color => 'blue', + :bold => 1 + } + shading = { + :bg_color => 'green', + :pattern => 1 + } + properties = font.merge(shading) + + format1 = @workbook.add_format(properties) + format2 = @workbook.add_format(font, shading) + assert(format_equal?(format1, format2)) + end + + def format_equal?(f1, f2) + require 'yaml' + re = /xf_index: \d+\n/ + YAML.dump(f1).sub(re, '') == YAML.dump(f2).sub(re, '') + end +end