# NOTE: Putting these tests into modules in order to share them across different # test classes, i.e. both TestRooExcelx and TestRooOpenOffice should run # sheet related tests. # # This will allow me to reuse these test cases when I add new classes for # Roo's future API. # Sheet related tests module TestSheets def test_sheets sheet_names = ["Tabelle1", "Name of Sheet 2", "Sheet3", "Sheet4", "Sheet5"] with_each_spreadsheet(name: "numbers1") do |oo| assert_equal sheet_names, oo.sheets assert_raises(RangeError) { oo.default_sheet = "no_sheet" } assert_raises(TypeError) { oo.default_sheet = [1, 2, 3] } oo.sheets.each do |sheet_name| oo.default_sheet = sheet_name assert_equal sheet_name, oo.default_sheet end end end def test_sheetname bad_sheet_name = "non existing sheet name" with_each_spreadsheet(name: "numbers1") do |oo| oo.default_sheet = "Name of Sheet 2" assert_equal "I am sheet 2", oo.cell("C", 5) assert_raises(RangeError) { oo.default_sheet = bad_sheet_name } assert_raises(RangeError) { oo.default_sheet = bad_sheet_name } assert_raises(RangeError) { oo.cell("C", 5, bad_sheet_name) } assert_raises(RangeError) { oo.celltype("C", 5, bad_sheet_name) } assert_raises(RangeError) { oo.empty?("C", 5, bad_sheet_name) } assert_raises(RangeError) { oo.formula?("C", 5, bad_sheet_name) } assert_raises(RangeError) { oo.formula("C", 5, bad_sheet_name) } assert_raises(RangeError) { oo.set("C", 5, 42, bad_sheet_name) } assert_raises(RangeError) { oo.formulas(bad_sheet_name) } assert_raises(RangeError) { oo.to_yaml({}, 1, 1, 1, 1, bad_sheet_name) } end end def test_info_doesnt_set_default_sheet sheet_name = "Sheet3" with_each_spreadsheet(name: "numbers1") do |oo| oo.default_sheet = sheet_name oo.info assert_equal sheet_name, oo.default_sheet end end def test_bug_numbered_sheet_names options = { name: "bug-numbered-sheet-names", format: :excelx } with_each_spreadsheet(options) do |oo| oo.each_with_pagename {} end end end