File: test_sheets.rb

package info (click to toggle)
ruby-roo 3.0.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 8,216 kB
  • sloc: ruby: 6,529; xml: 88; makefile: 6
file content (55 lines) | stat: -rw-r--r-- 2,174 bytes parent folder | download | duplicates (5)
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
# 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