summaryrefslogtreecommitdiffhomepage
path: root/test/drawing
diff options
context:
space:
mode:
authorRandy Morgan <[email protected]>2011-11-21 23:42:03 +0900
committerRandy Morgan <[email protected]>2011-11-21 23:42:03 +0900
commit11729af6e1dc9492ba1fadb3681b885a4ff7dbbb (patch)
treec47d5e007b9711066bc46be5914fe73e75bace6c /test/drawing
parente53a0b7223e531046dd263ff5686d6e34196512a (diff)
downloadcaxlsx-11729af6e1dc9492ba1fadb3681b885a4ff7dbbb.tar.gz
caxlsx-11729af6e1dc9492ba1fadb3681b885a4ff7dbbb.zip
Adding in support for line charts, style attribute for all charts and minor bug fixes.
Diffstat (limited to 'test/drawing')
-rw-r--r--test/drawing/tc_bar_series.rb2
-rw-r--r--test/drawing/tc_chart.rb12
-rw-r--r--test/drawing/tc_line_3d_chart.rb48
-rw-r--r--test/drawing/tc_line_series.tc34
-rw-r--r--test/drawing/tc_pie_series.rb2
-rw-r--r--test/drawing/tc_ser_axis.rb23
-rw-r--r--test/drawing/tc_series.rb2
-rw-r--r--test/drawing/tc_series_title.rb34
8 files changed, 149 insertions, 8 deletions
diff --git a/test/drawing/tc_bar_series.rb b/test/drawing/tc_bar_series.rb
index 1f0800f1..afd6004a 100644
--- a/test/drawing/tc_bar_series.rb
+++ b/test/drawing/tc_bar_series.rb
@@ -11,7 +11,7 @@ class TestBarSeries < Test::Unit::TestCase
end
def test_initialize
- assert_equal(@series.title, "bob", "series title has been applied")
+ assert_equal(@series.title.text, "bob", "series title has been applied")
assert_equal(@series.data, [0,1,2], "data option applied")
assert_equal(@series.labels, ["zero", "one","two"], "labels option applied")
assert_equal(@series.shape, :box, "series shape has been applied")
diff --git a/test/drawing/tc_chart.rb b/test/drawing/tc_chart.rb
index 8e26a832..586df2c5 100644
--- a/test/drawing/tc_chart.rb
+++ b/test/drawing/tc_chart.rb
@@ -28,19 +28,21 @@ class TestChart < Test::Unit::TestCase
assert_equal(@chart.title.cell, @row.cells.first)
end
+ def test_style
+ assert_raise(ArgumentError) { @chart.style = 49 }
+ assert_nothing_raised { @chart.style = 2 }
+ assert_equal(@chart.style, 2)
+ end
+
def test_add_series
s = @chart.add_series :data=>[0,1,2,3], :labels => ["one", 1, "anything"], :title=>"bob"
assert_equal(@chart.series.last, s, "series has been added to chart series collection")
- assert_equal(s.title, "bob", "series title has been applied")
+ assert_equal(s.title.text, "bob", "series title has been applied")
assert_equal(s.data, [0,1,2,3], "data option applied")
assert_equal(s.labels, ["one",1,"anything"], "labels option applied")
end
- def test_create_range
-
- end
-
def test_pn
assert_equal(@chart.pn, "charts/chart1.xml")
end
diff --git a/test/drawing/tc_line_3d_chart.rb b/test/drawing/tc_line_3d_chart.rb
new file mode 100644
index 00000000..5c4a3f26
--- /dev/null
+++ b/test/drawing/tc_line_3d_chart.rb
@@ -0,0 +1,48 @@
+require 'test/unit'
+require 'axlsx.rb'
+
+class TestLine3DChart < Test::Unit::TestCase
+
+ def setup
+ @p = Axlsx::Package.new
+ ws = @p.workbook.add_worksheet
+ @row = ws.add_row ["one", 1, Time.now]
+ @chart = ws.add_chart Axlsx::Line3DChart, :title => "fishery"
+ end
+
+ def teardown
+ end
+
+ def test_initialization
+ assert_equal(@chart.grouping, :standard, "grouping defualt incorrect")
+ assert_equal(@chart.series_type, Axlsx::LineSeries, "series type incorrect")
+ assert(@chart.catAxis.is_a?(Axlsx::CatAxis), "category axis not created")
+ assert(@chart.valAxis.is_a?(Axlsx::ValAxis), "value access not created")
+ assert(@chart.serAxis.is_a?(Axlsx::SerAxis), "value access not created")
+ end
+
+ def test_grouping
+ assert_raise(ArgumentError, "require valid grouping") { @chart.grouping = :inverted }
+ assert_nothing_raised("allow valid grouping") { @chart.grouping = :stacked }
+ assert(@chart.grouping == :stacked)
+ end
+
+ def test_gapDepth
+ assert_raise(ArgumentError, "require valid gapDepth") { @chart.gapDepth = 200 }
+ assert_nothing_raised("allow valid gapDepth") { @chart.gapDepth = "200%" }
+ assert(@chart.gapDepth == "200%")
+ end
+
+
+ def test_to_xml
+ schema = Nokogiri::XML::Schema(File.open(Axlsx::DRAWING_XSD))
+ doc = Nokogiri::XML(@chart.to_xml)
+ errors = []
+ schema.validate(doc).each do |error|
+ errors.push error
+ puts error.message
+ end
+ assert(errors.empty?, "error free validation")
+ end
+
+end
diff --git a/test/drawing/tc_line_series.tc b/test/drawing/tc_line_series.tc
new file mode 100644
index 00000000..54cbc256
--- /dev/null
+++ b/test/drawing/tc_line_series.tc
@@ -0,0 +1,34 @@
+require 'test/unit'
+require 'axlsx.rb'
+
+class TestLineSeries < Test::Unit::TestCase
+
+ def setup
+ p = Axlsx::Package.new
+ @ws = p.workbook.add_worksheet :name=>"hmmm"
+ chart = @ws.drawing.add_chart Axlsx::Line3DChart, :title => "fishery"
+ @series = chart.add_series :data=>[0,1,2], :labels=>["zero", "one", "two"], :title=>"bob"
+ end
+
+ def test_initialize
+ assert_equal(@series.title.text, "bob", "series title has been applied")
+ assert_equal(@series.data, [0,1,2], "data option applied")
+ assert_equal(@series.labels, ["zero", "one","two"], "labels option applied")
+ assert_equal(@series.shape, :box, "series shape has been applied")
+ end
+
+ def test_data
+ assert_equal(@series.data, [0,1,2])
+ end
+
+ def test_labels
+ assert_equal(@series.labels, ["zero", "one", "two"])
+ end
+
+ def test_shape
+ assert_raise(ArgumentError, "require valid shape") { @series.shape = :teardropt }
+ assert_nothing_raised("allow valid shape") { @series.shape = :cone }
+ assert(@series.shape == :cone)
+ end
+
+end
diff --git a/test/drawing/tc_pie_series.rb b/test/drawing/tc_pie_series.rb
index e7c5e83b..53799c72 100644
--- a/test/drawing/tc_pie_series.rb
+++ b/test/drawing/tc_pie_series.rb
@@ -11,7 +11,7 @@ class TestPieSeries < Test::Unit::TestCase
end
def test_initialize
- assert_equal(@series.title, "bob", "series title has been applied")
+ assert_equal(@series.title.text, "bob", "series title has been applied")
assert_equal(@series.data, [0,1,2], "data option applied")
assert_equal(@series.labels, ["zero", "one","two"], "labels option applied")
assert_equal(@series.explosion, nil, "series shape has been applied")
diff --git a/test/drawing/tc_ser_axis.rb b/test/drawing/tc_ser_axis.rb
new file mode 100644
index 00000000..1882e1f1
--- /dev/null
+++ b/test/drawing/tc_ser_axis.rb
@@ -0,0 +1,23 @@
+require 'test/unit'
+require 'axlsx.rb'
+
+class TestSerAxis < Test::Unit::TestCase
+ def setup
+ @axis = Axlsx::SerAxis.new 12345, 54321
+ end
+ def teardown
+ end
+
+ def test_tickLblSkip
+ assert_raise(ArgumentError, "requires valid tickLblSkip") { @axis.tickLblSkip = :my_eyes }
+ assert_nothing_raised("accepts valid tickLblSkip") { @axis.tickLblSkip = false }
+ assert_equal(@axis.tickLblSkip, false)
+ end
+
+ def test_tickMarkSkip
+ assert_raise(ArgumentError, "requires valid tickMarkSkip") { @axis.tickMarkSkip = :my_eyes }
+ assert_nothing_raised("accepts valid tickMarkSkip") { @axis.tickMarkSkip = false }
+ assert_equal(@axis.tickMarkSkip, false)
+ end
+
+end
diff --git a/test/drawing/tc_series.rb b/test/drawing/tc_series.rb
index b94ec308..cbbd93d4 100644
--- a/test/drawing/tc_series.rb
+++ b/test/drawing/tc_series.rb
@@ -11,7 +11,7 @@ class TestSeries < Test::Unit::TestCase
end
def test_initialize
- assert_equal(@series.title, "bob", "series title has been applied")
+ assert_equal(@series.title.text, "bob", "series title has been applied")
assert_equal(@series.order, @series.index, "order is index by default")
assert_equal(@series.index, @series.chart.series.index(@series), "index is applied")
end
diff --git a/test/drawing/tc_series_title.rb b/test/drawing/tc_series_title.rb
new file mode 100644
index 00000000..f10370b7
--- /dev/null
+++ b/test/drawing/tc_series_title.rb
@@ -0,0 +1,34 @@
+require 'test/unit'
+require 'axlsx.rb'
+
+class TestSeriesTitle < Test::Unit::TestCase
+ def setup
+ @p = Axlsx::Package.new
+ ws = @p.workbook.add_worksheet
+ @row = ws.add_row ["one", 1, Time.now]
+ @title = Axlsx::SeriesTitle.new
+ @chart = ws.add_chart Axlsx::Bar3DChart
+ end
+
+ def teardown
+ end
+
+ def test_initialization
+ assert(@title.text == "")
+ assert(@title.cell == nil)
+ end
+
+ def test_text
+ assert_raise(ArgumentError, "text must be a string") { @title.text = 123 }
+ @title.cell = @row.cells.first
+ @title.text = "bob"
+ assert(@title.cell == nil, "setting title with text clears the cell")
+ end
+
+ def test_cell
+ assert_raise(ArgumentError, "cell must be a Cell") { @title.cell = "123" }
+ @title.cell = @row.cells.first
+ assert(@title.text == "one")
+ end
+
+end