axlsx 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) hide show
  1. data/Rakefile +13 -0
  2. data/lib/axlsx.rb +38 -0
  3. data/lib/axlsx/content_type/content_type.rb +23 -0
  4. data/lib/axlsx/content_type/default.rb +32 -0
  5. data/lib/axlsx/content_type/override.rb +30 -0
  6. data/lib/axlsx/doc_props/app.rb +148 -0
  7. data/lib/axlsx/doc_props/core.rb +34 -0
  8. data/lib/axlsx/drawing/axis.rb +78 -0
  9. data/lib/axlsx/drawing/bar_3D_chart.rb +138 -0
  10. data/lib/axlsx/drawing/bar_series.rb +91 -0
  11. data/lib/axlsx/drawing/cat_axis.rb +58 -0
  12. data/lib/axlsx/drawing/chart.rb +120 -0
  13. data/lib/axlsx/drawing/drawing.rb +121 -0
  14. data/lib/axlsx/drawing/graphic_frame.rb +55 -0
  15. data/lib/axlsx/drawing/marker.rb +57 -0
  16. data/lib/axlsx/drawing/pie_3D_chart.rb +59 -0
  17. data/lib/axlsx/drawing/pie_series.rb +88 -0
  18. data/lib/axlsx/drawing/scaling.rb +53 -0
  19. data/lib/axlsx/drawing/series.rb +70 -0
  20. data/lib/axlsx/drawing/title.rb +69 -0
  21. data/lib/axlsx/drawing/two_cell_anchor.rb +88 -0
  22. data/lib/axlsx/drawing/val_axis.rb +34 -0
  23. data/lib/axlsx/drawing/view_3D.rb +72 -0
  24. data/lib/axlsx/package.rb +181 -0
  25. data/lib/axlsx/rels/relationship.rb +43 -0
  26. data/lib/axlsx/rels/relationships.rb +25 -0
  27. data/lib/axlsx/stylesheet/border.rb +52 -0
  28. data/lib/axlsx/stylesheet/border_pr.rb +65 -0
  29. data/lib/axlsx/stylesheet/cell_alignment.rb +96 -0
  30. data/lib/axlsx/stylesheet/cell_protection.rb +33 -0
  31. data/lib/axlsx/stylesheet/cell_style.rb +60 -0
  32. data/lib/axlsx/stylesheet/color.rb +57 -0
  33. data/lib/axlsx/stylesheet/fill.rb +31 -0
  34. data/lib/axlsx/stylesheet/font.rb +128 -0
  35. data/lib/axlsx/stylesheet/gradient_fill.rb +70 -0
  36. data/lib/axlsx/stylesheet/gradient_stop.rb +31 -0
  37. data/lib/axlsx/stylesheet/num_fmt.rb +61 -0
  38. data/lib/axlsx/stylesheet/pattern_fill.rb +64 -0
  39. data/lib/axlsx/stylesheet/styles.rb +296 -0
  40. data/lib/axlsx/stylesheet/table_style.rb +44 -0
  41. data/lib/axlsx/stylesheet/table_style_element.rb +66 -0
  42. data/lib/axlsx/stylesheet/table_styles.rb +39 -0
  43. data/lib/axlsx/stylesheet/xf.rb +117 -0
  44. data/lib/axlsx/util/constants.rb +189 -0
  45. data/lib/axlsx/util/simple_typed_list.rb +150 -0
  46. data/lib/axlsx/util/validators.rb +132 -0
  47. data/lib/axlsx/workbook/workbook.rb +130 -0
  48. data/lib/axlsx/workbook/worksheet/cell.rb +184 -0
  49. data/lib/axlsx/workbook/worksheet/row.rb +92 -0
  50. data/lib/axlsx/workbook/worksheet/worksheet.rb +194 -0
  51. data/lib/schema/dc.xsd +118 -0
  52. data/lib/schema/dcmitype.xsd +50 -0
  53. data/lib/schema/dcterms.xsd +331 -0
  54. data/lib/schema/dml-chart.xsd +1499 -0
  55. data/lib/schema/dml-chartDrawing.xsd +146 -0
  56. data/lib/schema/dml-compatibility.xsd +14 -0
  57. data/lib/schema/dml-diagram.xsd +1091 -0
  58. data/lib/schema/dml-lockedCanvas.xsd +11 -0
  59. data/lib/schema/dml-main.xsd +3048 -0
  60. data/lib/schema/dml-picture.xsd +23 -0
  61. data/lib/schema/dml-spreadsheetDrawing.xsd +185 -0
  62. data/lib/schema/dml-wordprocessingDrawing.xsd +185 -0
  63. data/lib/schema/opc-contentTypes.xsd +42 -0
  64. data/lib/schema/opc-coreProperties.xsd +50 -0
  65. data/lib/schema/opc-digSig.xsd +49 -0
  66. data/lib/schema/opc-relationships.xsd +33 -0
  67. data/lib/schema/pml.xsd +1676 -0
  68. data/lib/schema/shared-additionalCharacteristics.xsd +28 -0
  69. data/lib/schema/shared-bibliography.xsd +144 -0
  70. data/lib/schema/shared-commonSimpleTypes.xsd +166 -0
  71. data/lib/schema/shared-customXmlDataProperties.xsd +25 -0
  72. data/lib/schema/shared-customXmlSchemaProperties.xsd +18 -0
  73. data/lib/schema/shared-documentPropertiesCustom.xsd +59 -0
  74. data/lib/schema/shared-documentPropertiesExtended.xsd +56 -0
  75. data/lib/schema/shared-documentPropertiesVariantTypes.xsd +195 -0
  76. data/lib/schema/shared-math.xsd +582 -0
  77. data/lib/schema/shared-relationshipReference.xsd +25 -0
  78. data/lib/schema/sml.xsd +4430 -0
  79. data/lib/schema/vml-main.xsd +569 -0
  80. data/lib/schema/vml-officeDrawing.xsd +509 -0
  81. data/lib/schema/vml-presentationDrawing.xsd +12 -0
  82. data/lib/schema/vml-spreadsheetDrawing.xsd +108 -0
  83. data/lib/schema/vml-wordprocessingDrawing.xsd +96 -0
  84. data/lib/schema/wml.xsd +3644 -0
  85. data/lib/schema/xml.xsd +117 -0
  86. data/test/content_type/tc_content_type.rb +81 -0
  87. data/test/content_type/tc_content_type.rb~ +81 -0
  88. data/test/content_type/tc_default.rb +40 -0
  89. data/test/content_type/tc_default.rb~ +40 -0
  90. data/test/content_type/tc_override.rb +40 -0
  91. data/test/content_type/tc_override.rb~ +40 -0
  92. data/test/doc_props/tc_app.rb +19 -0
  93. data/test/doc_props/tc_app.rb~ +19 -0
  94. data/test/doc_props/tc_core.rb +34 -0
  95. data/test/drawing/tc_axis.rb +39 -0
  96. data/test/drawing/tc_axis.rb~ +0 -0
  97. data/test/drawing/tc_bar_3D_chart.rb +66 -0
  98. data/test/drawing/tc_bar_3D_chart.rb~ +4 -0
  99. data/test/drawing/tc_bar_series.rb +34 -0
  100. data/test/drawing/tc_bar_series.rb~ +31 -0
  101. data/test/drawing/tc_cat_axis.rb +32 -0
  102. data/test/drawing/tc_cat_axis.rb~ +39 -0
  103. data/test/drawing/tc_chart.rb +59 -0
  104. data/test/drawing/tc_chart.rb~ +58 -0
  105. data/test/drawing/tc_drawing.rb +71 -0
  106. data/test/drawing/tc_graphic_frame.rb +26 -0
  107. data/test/drawing/tc_graphic_frame.rb~ +21 -0
  108. data/test/drawing/tc_marker.rb +45 -0
  109. data/test/drawing/tc_marker.rb~ +26 -0
  110. data/test/drawing/tc_pie_3D_chart.rb +33 -0
  111. data/test/drawing/tc_pie_3D_chart.rb~ +58 -0
  112. data/test/drawing/tc_pie_series.rb +35 -0
  113. data/test/drawing/tc_pie_series.rb~ +26 -0
  114. data/test/drawing/tc_scaling.rb +37 -0
  115. data/test/drawing/tc_scaling.rb~ +45 -0
  116. data/test/drawing/tc_series.rb +24 -0
  117. data/test/drawing/tc_series.rb~ +31 -0
  118. data/test/drawing/tc_title.rb +34 -0
  119. data/test/drawing/tc_title.rb~ +37 -0
  120. data/test/drawing/tc_two_cell_anchor.rb +37 -0
  121. data/test/drawing/tc_two_cell_anchor.rb~ +35 -0
  122. data/test/drawing/tc_val_axis.rb +20 -0
  123. data/test/drawing/tc_val_axis.rb~ +32 -0
  124. data/test/drawing/tc_view_3D.rb +46 -0
  125. data/test/drawing/tc_view_3D.rb~ +37 -0
  126. data/test/rels/tc_relationship.rb +16 -0
  127. data/test/rels/tc_relationship.rb~ +39 -0
  128. data/test/rels/tc_relationships.rb +32 -0
  129. data/test/rels/tc_relationships.rb~ +37 -0
  130. data/test/stylesheet/tc_border.rb +38 -0
  131. data/test/stylesheet/tc_border.rb~ +31 -0
  132. data/test/stylesheet/tc_border_pr.rb +33 -0
  133. data/test/stylesheet/tc_border_pr.rb~ +31 -0
  134. data/test/stylesheet/tc_cell_alignment.rb +77 -0
  135. data/test/stylesheet/tc_cell_alignment.rb~ +38 -0
  136. data/test/stylesheet/tc_cell_protection.rb +30 -0
  137. data/test/stylesheet/tc_cell_protection.rb~ +77 -0
  138. data/test/stylesheet/tc_cell_style.rb +58 -0
  139. data/test/stylesheet/tc_cell_style.rb~ +30 -0
  140. data/test/stylesheet/tc_color.rb +38 -0
  141. data/test/stylesheet/tc_color.rb~ +38 -0
  142. data/test/stylesheet/tc_fill.rb +19 -0
  143. data/test/stylesheet/tc_fill.rb~ +19 -0
  144. data/test/stylesheet/tc_font.rb +114 -0
  145. data/test/stylesheet/tc_font.rb~ +19 -0
  146. data/test/stylesheet/tc_gradient_fill.rb +65 -0
  147. data/test/stylesheet/tc_gradient_fill.rb~ +114 -0
  148. data/test/stylesheet/tc_gradient_stop.rb +32 -0
  149. data/test/stylesheet/tc_gradient_stop.rb~ +65 -0
  150. data/test/stylesheet/tc_num_fmt.rb +31 -0
  151. data/test/stylesheet/tc_num_fmt.rb~ +32 -0
  152. data/test/stylesheet/tc_pattern_fill.rb +38 -0
  153. data/test/stylesheet/tc_pattern_fill.rb~ +31 -0
  154. data/test/stylesheet/tc_styles.rb +64 -0
  155. data/test/stylesheet/tc_table_style.rb +37 -0
  156. data/test/stylesheet/tc_table_style.rb~ +38 -0
  157. data/test/stylesheet/tc_table_style_element.rb +37 -0
  158. data/test/stylesheet/tc_table_style_element.rb~ +37 -0
  159. data/test/stylesheet/tc_table_styles.rb +30 -0
  160. data/test/stylesheet/tc_table_styles.rb~ +37 -0
  161. data/test/stylesheet/tc_xf.rb +121 -0
  162. data/test/stylesheet/tc_xf.rb~ +30 -0
  163. data/test/tc_app.rb~ +19 -0
  164. data/test/tc_border_pr.rb~ +21 -0
  165. data/test/tc_package.rb +70 -0
  166. data/test/tc_package.rb~ +64 -0
  167. data/test/tc_pie_3D_chart.rb~ +66 -0
  168. data/test/tc_relationships.rb~ +37 -0
  169. data/test/tc_series.rb~ +31 -0
  170. data/test/tc_styles.rb~ +64 -0
  171. data/test/tc_validators.rb~ +77 -0
  172. data/test/tc_worksheet.rb~ +85 -0
  173. data/test/util/tc_simple_typed_list.rb +66 -0
  174. data/test/util/tc_validators.rb +76 -0
  175. data/test/workbook/tc_workbook.rb +53 -0
  176. data/test/workbook/worksheet/tc_cell.rb +78 -0
  177. data/test/workbook/worksheet/tc_row.rb +30 -0
  178. data/test/workbook/worksheet/tc_worksheet.rb +85 -0
  179. metadata +378 -0
@@ -0,0 +1,26 @@
1
+ require 'test/unit'
2
+ require 'axlsx.rb'
3
+
4
+ class TestGraphicFrame < Test::Unit::TestCase
5
+ def setup
6
+ p = Axlsx::Package.new
7
+ @ws = p.workbook.add_worksheet
8
+ @chart = @ws.add_chart Axlsx::Chart
9
+ @frame = @chart.graphic_frame
10
+ end
11
+
12
+ def teardown
13
+ end
14
+
15
+ def test_initialization
16
+ assert(@frame.anchor.is_a?(Axlsx::TwoCellAnchor))
17
+ assert_equal(@frame.chart, @chart)
18
+ end
19
+
20
+ def test_rId
21
+ assert_equal(@frame.rId, "rId1")
22
+ chart = @ws.add_chart Axlsx::Chart
23
+ assert_equal(chart.graphic_frame.rId, "rId2")
24
+ end
25
+
26
+ end
@@ -0,0 +1,21 @@
1
+ require 'test/unit'
2
+ require 'axlsx.rb'
3
+
4
+ class TestGraphicFrame < Test::Unit::TestCase
5
+ def setup
6
+ p = Axlsx::Package.new
7
+ @ws = p.workbook.add_worksheet
8
+ end
9
+ def teardown
10
+ end
11
+
12
+ def test_initialization
13
+ assert_equal(@axis.crossBetween, :between, "axis crossBetween default incorrect")
14
+ end
15
+
16
+ def test_crossBetween
17
+ assert_raise(ArgumentError, "requires valid crossBetween") { @axis.crossBetween = :my_eyes }
18
+ assert_nothing_raised("accepts valid crossBetween") { @axis.crossBetween = :midCat }
19
+ end
20
+
21
+ end
@@ -0,0 +1,45 @@
1
+ require 'test/unit'
2
+ require 'axlsx.rb'
3
+
4
+ class TestMarker < Test::Unit::TestCase
5
+ def setup
6
+ @marker = Axlsx::Marker.new
7
+ end
8
+
9
+ def teardown
10
+ end
11
+
12
+ def test_initialization
13
+ assert(@marker.col == 0)
14
+ assert(@marker.colOff == 0)
15
+ assert(@marker.row == 0)
16
+ assert(@marker.rowOff == 0)
17
+ end
18
+
19
+ def test_col
20
+ assert_raise(ArgumentError) { @marker.col = -1}
21
+ assert_nothing_raised {@marker.col = 10}
22
+ end
23
+
24
+ def test_colOff
25
+ assert_raise(ArgumentError) { @marker.colOff = "1"}
26
+ assert_nothing_raised {@marker.colOff = -10}
27
+ end
28
+
29
+ def test_row
30
+ assert_raise(ArgumentError) { @marker.row = -1}
31
+ assert_nothing_raised {@marker.row = 10}
32
+ end
33
+
34
+ def test_rowOff
35
+ assert_raise(ArgumentError) { @marker.rowOff = "1"}
36
+ assert_nothing_raised {@marker.rowOff = -10}
37
+ end
38
+
39
+ def test_coord
40
+ @marker.coord 5, 10
41
+ assert_equal(@marker.col, 5)
42
+ assert_equal(@marker.row, 10)
43
+ end
44
+
45
+ end
@@ -0,0 +1,26 @@
1
+ require 'test/unit'
2
+ require 'axlsx.rb'
3
+
4
+ class TestMarker < Test::Unit::TestCase
5
+ def setup
6
+ p = Axlsx::Package.new
7
+ @ws = p.workbook.add_worksheet
8
+ @chart = @ws.add_chart Axlsx::Chart
9
+ @frame = @chart.graphic_frame
10
+ end
11
+
12
+ def teardown
13
+ end
14
+
15
+ def test_initialization
16
+ assert(@frame.anchor.is_a?(Axlsx::TwoCellAnchor))
17
+ assert_equal(@frame.chart, @chart)
18
+ end
19
+
20
+ def test_rId
21
+ assert_equal(@frame.rId, "rId1")
22
+ chart = @ws.add_chart Axlsx::Chart
23
+ assert_equal(chart.graphic_frame.rId, "rId2")
24
+ end
25
+
26
+ end
@@ -0,0 +1,33 @@
1
+ require 'test/unit'
2
+ require 'axlsx.rb'
3
+
4
+ class TestPie3DChart < Test::Unit::TestCase
5
+
6
+ def setup
7
+ p = Axlsx::Package.new
8
+ ws = p.workbook.add_worksheet
9
+ @row = ws.add_row :values=>["one", 1, Time.now]
10
+ @chart = ws.drawing.add_chart Axlsx::Pie3DChart, :title => "fishery"
11
+ end
12
+
13
+ def teardown
14
+ end
15
+
16
+ def test_initialization
17
+ assert_equal(@chart.view3D.rotX, 30, "view 3d default rotX incorrect")
18
+ assert_equal(@chart.view3D.perspective, 30, "view 3d default perspective incorrect")
19
+ assert_equal(@chart.series_type, Axlsx::PieSeries, "series type incorrect")
20
+ end
21
+
22
+ def test_to_xml
23
+ schema = Nokogiri::XML::Schema(File.open(Axlsx::DRAWING_XSD))
24
+ doc = Nokogiri::XML(@chart.to_xml)
25
+ errors = []
26
+ schema.validate(doc).each do |error|
27
+ errors.push error
28
+ puts error.message
29
+ end
30
+ assert(errors.empty?, "error free validation")
31
+ end
32
+
33
+ end
@@ -0,0 +1,58 @@
1
+ require 'test/unit'
2
+ require 'axlsx.rb'
3
+
4
+ class TestPie3DChart < Test::Unit::TestCase
5
+
6
+ def setup
7
+ p = Axlsx::Package.new
8
+ ws = p.workbook.add_worksheet
9
+ @row = ws.add_row :values=>["one", 1, Time.now]
10
+ @chart = ws.drawing.add_chart Axlsx::Pie3DChart, :title => "fishery"
11
+ end
12
+
13
+ def teardown
14
+ end
15
+
16
+ def test_initialization
17
+ assert_equal(@chart.graphic_frame.anchor.drawing.worksheet.workbook.charts.last,@chart, "the chart is in the workbook")
18
+ assert_equal(@chart.title.text, "fishery", "the title option has been applied")
19
+ assert((@chart.series.is_a?(Axlsx::SimpleTypedList) && @chart.series.empty?), "The series is initialized and empty")
20
+ end
21
+
22
+ def test_title
23
+ @chart.title.text = 'wowzer'
24
+ assert_equal(@chart.title.text, "wowzer", "the title text via a string")
25
+ assert_equal(@chart.title.cell, nil, "the title cell is nil as we set the title with text.")
26
+ @chart.title.cell = @row.cells.first
27
+ assert_equal(@chart.title.text, "one", "the title text was set via cell reference")
28
+ assert_equal(@chart.title.cell, @row.cells.first)
29
+ end
30
+
31
+ def test_add_series
32
+ s = @chart.add_series :data=>[0,1,2,3], :labels => ["one", 1, "anything"], :title=>"bob"
33
+ assert_equal(@chart.series.last, s, "series has been added to chart series collection")
34
+ assert_equal(s.title, "bob", "series title has been applied")
35
+ assert_equal(s.data, [0,1,2,3], "data option applied")
36
+ assert_equal(s.labels, ["one",1,"anything"], "labels option applied")
37
+ end
38
+
39
+ def test_create_range
40
+
41
+ end
42
+
43
+ def test_pn
44
+ assert_equal(@chart.pn, "charts/chart1.xml")
45
+ end
46
+
47
+ def test_to_xml
48
+ schema = Nokogiri::XML::Schema(File.open(Axlsx::DRAWING_XSD))
49
+ doc = Nokogiri::XML(@chart.to_xml)
50
+ errors = []
51
+ schema.validate(doc).each do |error|
52
+ errors.push error
53
+ puts error.message
54
+ end
55
+ assert(errors.empty?, "error free validation")
56
+ end
57
+
58
+ end
@@ -0,0 +1,35 @@
1
+ require 'test/unit'
2
+ require 'axlsx.rb'
3
+
4
+ class TestPieSeries < Test::Unit::TestCase
5
+
6
+ def setup
7
+ p = Axlsx::Package.new
8
+ @ws = p.workbook.add_worksheet :name=>"hmmm"
9
+ chart = @ws.drawing.add_chart Axlsx::Pie3DChart, :title => "fishery"
10
+ @series = chart.add_series :data=>[0,1,2], :labels=>["zero", "one", "two"], :title=>"bob"
11
+ end
12
+
13
+ def test_initialize
14
+ assert_equal(@series.title, "bob", "series title has been applied")
15
+ assert_equal(@series.data, [0,1,2], "data option applied")
16
+ assert_equal(@series.labels, ["zero", "one","two"], "labels option applied")
17
+ assert_equal(@series.explosion, nil, "series shape has been applied")
18
+ end
19
+
20
+ def test_data
21
+ assert_equal(@series.data, [0,1,2])
22
+ end
23
+
24
+ def test_labels
25
+ assert_equal(@series.labels, ["zero", "one", "two"])
26
+
27
+ end
28
+
29
+ def test_explosion
30
+ assert_raise(ArgumentError, "require valid explosion") { @series.explosion = :lots }
31
+ assert_nothing_raised("allow valid explosion") { @series.explosion = 20 }
32
+ assert(@series.explosion == 20)
33
+ end
34
+
35
+ end
@@ -0,0 +1,26 @@
1
+ require 'test/unit'
2
+ require 'axlsx.rb'
3
+
4
+ class TestPieSeries < Test::Unit::TestCase
5
+
6
+ def setup
7
+ p = Axlsx::Package.new
8
+ @ws = p.workbook.add_worksheet :name=>"hmmm"
9
+ chart = @ws.drawing.add_chart Axlsx::Bar3DChart, :title => "fishery"
10
+ @series = chart.add_series :data=>[0,1,2], :labels=>["zero", "one", "two"], :title=>"bob"
11
+ end
12
+
13
+ def test_initialize
14
+ assert_equal(@series.title, "bob", "series title has been applied")
15
+ assert_equal(@series.data, [0,1,2], "data option applied")
16
+ assert_equal(@series.labels, ["zero", "one","two"], "labels option applied")
17
+ assert_equal(@series.shape, :box, "series shape has been applied")
18
+ end
19
+
20
+ def test_shape
21
+ assert_raise(ArgumentError, "require valid shape") { @series.shape = :teardropt }
22
+ assert_nothing_raised("allow valid shape") { @series.shape = :cone }
23
+ assert(@series.shape == :cone)
24
+ end
25
+
26
+ end
@@ -0,0 +1,37 @@
1
+ require 'test/unit'
2
+ require 'axlsx.rb'
3
+
4
+ class TestScaling < Test::Unit::TestCase
5
+ def setup
6
+ @scaling = Axlsx::Scaling.new
7
+ end
8
+
9
+ def teardown
10
+ end
11
+
12
+ def test_initialization
13
+ assert(@scaling.orientation == :minMax)
14
+ end
15
+
16
+ def test_logBase
17
+ assert_raise(ArgumentError) { @scaling.logBase = 1}
18
+ assert_nothing_raised {@scaling.logBase = 10}
19
+ end
20
+
21
+ def test_orientation
22
+ assert_raise(ArgumentError) { @scaling.orientation = "1"}
23
+ assert_nothing_raised {@scaling.orientation = :maxMin}
24
+ end
25
+
26
+
27
+ def test_max
28
+ assert_raise(ArgumentError) { @scaling.max = 1}
29
+ assert_nothing_raised {@scaling.max = 10.5}
30
+ end
31
+
32
+ def test_min
33
+ assert_raise(ArgumentError) { @scaling.min = 1}
34
+ assert_nothing_raised {@scaling.min = 10.5}
35
+ end
36
+
37
+ end
@@ -0,0 +1,45 @@
1
+ require 'test/unit'
2
+ require 'axlsx.rb'
3
+
4
+ class TestMarker < Test::Unit::TestCase
5
+ def setup
6
+ @marker = Axlsx::Marker.new
7
+ end
8
+
9
+ def teardown
10
+ end
11
+
12
+ def test_initialization
13
+ assert(@marker.col == 0)
14
+ assert(@marker.colOff == 0)
15
+ assert(@marker.row == 0)
16
+ assert(@marker.rowOff == 0)
17
+ end
18
+
19
+ def test_col
20
+ assert_raise(ArgumentError) { @marker.col = -1}
21
+ assert_nothing_raised {@marker.col = 10}
22
+ end
23
+
24
+ def test_colOff
25
+ assert_raise(ArgumentError) { @marker.colOff = "1"}
26
+ assert_nothing_raised {@marker.colOff = -10}
27
+ end
28
+
29
+ def test_row
30
+ assert_raise(ArgumentError) { @marker.row = -1}
31
+ assert_nothing_raised {@marker.row = 10}
32
+ end
33
+
34
+ def test_rowOff
35
+ assert_raise(ArgumentError) { @marker.rowOff = "1"}
36
+ assert_nothing_raised {@marker.rowOff = -10}
37
+ end
38
+
39
+ def test_coord
40
+ @marker.coord 5, 10
41
+ assert_equal(@marker.col, 5)
42
+ assert_equal(@marker.row, 10)
43
+ end
44
+
45
+ end
@@ -0,0 +1,24 @@
1
+ require 'test/unit'
2
+ require 'axlsx.rb'
3
+
4
+ class TestSeries < Test::Unit::TestCase
5
+
6
+ def setup
7
+ p = Axlsx::Package.new
8
+ @ws = p.workbook.add_worksheet :name=>"hmmm"
9
+ chart = @ws.drawing.add_chart Axlsx::Chart, :title => "fishery"
10
+ @series = chart.add_series :title=>"bob"
11
+ end
12
+
13
+ def test_initialize
14
+ assert_equal(@series.title, "bob", "series title has been applied")
15
+ assert_equal(@series.order, @series.index, "order is index by default")
16
+ assert_equal(@series.index, @series.chart.series.index(@series), "index is applied")
17
+ end
18
+
19
+ def test_order
20
+ @series.order = 2
21
+ assert_equal(@series.order, 2)
22
+ end
23
+
24
+ end
@@ -0,0 +1,31 @@
1
+ require 'test/unit'
2
+ require 'axlsx.rb'
3
+
4
+ class TestSeries < Test::Unit::TestCase
5
+
6
+ def setup
7
+ p = Axlsx::Package.new
8
+ @ws = p.workbook.add_worksheet :name=>"hmmm"
9
+ chart = @ws.drawing.add_chart Axlsx::Pie3DChart, :title => "fishery"
10
+ @series = chart.add_series :data=>[0,1,2], :labels=>["zero", "one", "two"], :title=>"bob"
11
+ end
12
+
13
+ def test_initialize
14
+ assert_equal(@series.title, "bob", "series title has been applied")
15
+ assert_equal(@series.data, [0,1,2], "data option applied")
16
+ assert_equal(@series.labels, ["zero", "one","two"], "labels option applied")
17
+ end
18
+
19
+ def test_range
20
+ labels = @ws.add_row :values=>["one", "two", "three"]
21
+ data = @ws.add_row :values=>[1,2,3]
22
+ s = @series.chart.add_series :data=>data.cells, :labels=>labels.cells
23
+ assert_equal(s.send(:range, s.data), "#{@ws.name}!$A$2:$C$2", "range is created created from cells")
24
+ assert_equal(s.send(:range, s.labels), "#{@ws.name}!$A$1:$C$1", "range is created from cells")
25
+ assert_equal(@series.send(:range, @series.data), "", "no range if the data is a simple array")
26
+ end
27
+
28
+ def test_index
29
+ assert_equal(@series.index, @series.chart.series.index(@series))
30
+ end
31
+ end
@@ -0,0 +1,34 @@
1
+ require 'test/unit'
2
+ require 'axlsx.rb'
3
+
4
+ class TestTitle < Test::Unit::TestCase
5
+ def setup
6
+ @p = Axlsx::Package.new
7
+ ws = @p.workbook.add_worksheet
8
+ @row = ws.add_row :values=>["one", 1, Time.now]
9
+ @title = Axlsx::Title.new
10
+ @chart = ws.add_chart Axlsx::Bar3DChart
11
+ end
12
+
13
+ def teardown
14
+ end
15
+
16
+ def test_initialization
17
+ assert(@title.text == "")
18
+ assert(@title.cell == nil)
19
+ end
20
+
21
+ def test_text
22
+ assert_raise(ArgumentError, "text must be a string") { @title.text = 123 }
23
+ @title.cell = @row.cells.first
24
+ @title.text = "bob"
25
+ assert(@title.cell == nil, "setting title with text clears the cell")
26
+ end
27
+
28
+ def test_cell
29
+ assert_raise(ArgumentError, "cell must be a Cell") { @title.cell = "123" }
30
+ @title.cell = @row.cells.first
31
+ assert(@title.text == "one")
32
+ end
33
+
34
+ end