test/cell_test.rb in osheet-0.5.0 vs test/cell_test.rb in osheet-0.6.0

- old
+ new

@@ -1,85 +1,125 @@ require "test/helper" require 'osheet/cell' module Osheet - class CellTest < Test::Unit::TestCase + class CellTest < Test::Unit::TestCase context "Osheet::Cell" do subject { Cell.new } should_be_a_styled_element(Cell) should_be_a_worksheet_element(Cell) should_be_a_workbook_element(Cell) - should_have_instance_methods :data, :format, :colspan, :rowspan, :href + should_have_instance_methods :data, :format, :colspan, :rowspan, :href, :index should "set it's defaults" do assert_equal nil, subject.send(:get_ivar, "data") assert_kind_of Format::General, subject.send(:get_ivar, "format") assert_equal 1, subject.send(:get_ivar, "colspan") assert_equal 1, subject.send(:get_ivar, "rowspan") assert_equal nil, subject.send(:get_ivar, "href") + assert_equal nil, subject.send(:get_ivar, "index") end - context "that has attributes" do - subject do - Cell.new do - style_class 'more poo' - data "Poo" - format :number - colspan 4 - rowspan 2 - href "http://www.google.com" - end - end + end + end - should "should set them correctly" do - assert_equal "Poo", subject.send(:get_ivar, "data") - assert_kind_of Format::Number, subject.send(:get_ivar, "format") - assert_equal 4, subject.send(:get_ivar, "colspan") - assert_equal 2, subject.send(:get_ivar, "rowspan") - assert_equal "http://www.google.com", subject.send(:get_ivar, "href") + class CellAttributeTest < Test::Unit::TestCase + context "a celll that has attributes" do + subject do + Cell.new do + style_class 'more poo' + data "Poo" + format :number + colspan 4 + rowspan 2 + index 3 + href "http://www.google.com" end + end - should "know it's attribute(s)" do - [:style_class, :data, :format, :rowspan, :colspan, :href].each do |a| - assert subject.attributes.has_key?(a) - end - assert_equal "more poo", subject.attributes[:style_class] - assert_equal "Poo", subject.attributes[:data] - assert_kind_of Format::Number, subject.attributes[:format] - assert_equal 4, subject.attributes[:colspan] - assert_equal 2, subject.attributes[:rowspan] - assert_equal "http://www.google.com", subject.attributes[:href] + should "should set them correctly" do + assert_equal "Poo", subject.send(:get_ivar, "data") + assert_kind_of Format::Number, subject.send(:get_ivar, "format") + assert_equal 4, subject.send(:get_ivar, "colspan") + assert_equal 2, subject.send(:get_ivar, "rowspan") + assert_equal 3, subject.send(:get_ivar, "index") + assert_equal "http://www.google.com", subject.send(:get_ivar, "href") + end + + should "know it's attribute(s)" do + [:style_class, :data, :format, :rowspan, :colspan, :index, :href].each do |a| + assert subject.attributes.has_key?(a) end + + assert_equal "more poo", subject.attributes[:style_class] + assert_equal "Poo", subject.attributes[:data] + assert_kind_of Format::Number, subject.attributes[:format] + assert_equal 4, subject.attributes[:colspan] + assert_equal 2, subject.attributes[:rowspan] + assert_equal 3, subject.attributes[:index] + assert_equal "http://www.google.com", subject.attributes[:href] end + end + end + + class CellDataTest < Test::Unit::TestCase + context "A cell" do + subject { Cell.new } + should "type cast data strings/symbols" do ['a string', :symbol].each do |thing| cell = Cell.new{data thing} assert_kind_of ::String, cell.send(:get_ivar, "data") end end + should "type cast data dates" do cell = Cell.new{data Date.today} assert_kind_of ::Date, cell.send(:get_ivar, "data") end + should "type cast data numerics" do [1, 1.0].each do |thing| cell = Cell.new{data thing} assert_kind_of ::Numeric, cell.send(:get_ivar, "data") end end + should "type cast all other data to string" do [Osheet, [:a, 'Aye'], {:a => 'Aye'}].each do |thing| cell = Cell.new{data thing} assert_kind_of ::String, cell.send(:get_ivar, "data") end end end + end + class CellPartialTest < Test::Unit::TestCase + context "A workbook that defines column partials" do + subject do + Workbook.new { + partial(:cell_stuff) { + style_class 'more poo' + data "Poo" + } + + worksheet { row { cell { + add :cell_stuff + } } } + } + end + + should "add it's partials to it's markup" do + assert_equal 'more poo', subject.worksheets.first.rows.first.cells.first.attributes[:style_class] + assert_equal 'Poo', subject.worksheets.first.rows.first.cells.first.attributes[:data] + end + + end end class CellBindingTest < Test::Unit::TestCase context "a cell defined w/ a block" do should "access instance vars from that block's binding" do