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,37 @@
1
+ require 'test/unit'
2
+ require 'axlsx.rb'
3
+
4
+ class TestTitle < 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,37 @@
1
+ require 'test/unit'
2
+ require 'axlsx.rb'
3
+
4
+ class TestTwoCellAnchor < 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
+ @anchor = @chart.graphic_frame.anchor
12
+ end
13
+
14
+ def teardown
15
+ end
16
+
17
+ def test_initialization
18
+ assert(@anchor.from.col == 0)
19
+ assert(@anchor.from.row == 0)
20
+ assert(@anchor.to.col == 5)
21
+ assert(@anchor.to.row == 10)
22
+ end
23
+
24
+ def test_start_at
25
+ @anchor.start_at 5, 10
26
+ assert(@anchor.from.col == 5)
27
+ assert(@anchor.from.row == 10)
28
+ end
29
+
30
+ def test_end_at
31
+ @anchor.end_at 10, 15
32
+ assert(@anchor.to.col == 10)
33
+ assert(@anchor.to.row == 15)
34
+ end
35
+
36
+
37
+ end
@@ -0,0 +1,35 @@
1
+ require 'test/unit'
2
+ require 'axlsx.rb'
3
+
4
+ class TestTwoCellAnchor < 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
+ @anchor = @chart.anchor
12
+ end
13
+
14
+ def teardown
15
+ end
16
+
17
+ def test_initialization
18
+ assert(@title.text == "")
19
+ assert(@title.cell == nil)
20
+ end
21
+
22
+ def test_text
23
+ assert_raise(ArgumentError, "text must be a string") { @title.text = 123 }
24
+ @title.cell = @row.cells.first
25
+ @title.text = "bob"
26
+ assert(@title.cell == nil, "setting title with text clears the cell")
27
+ end
28
+
29
+ def test_cell
30
+ assert_raise(ArgumentError, "cell must be a Cell") { @title.cell = "123" }
31
+ @title.cell = @row.cells.first
32
+ assert(@title.text == "one")
33
+ end
34
+
35
+ end
@@ -0,0 +1,20 @@
1
+ require 'test/unit'
2
+ require 'axlsx.rb'
3
+
4
+ class TestValAxis < Test::Unit::TestCase
5
+ def setup
6
+ @axis = Axlsx::ValAxis.new 12345, 54321
7
+ end
8
+ def teardown
9
+ end
10
+
11
+ def test_initialization
12
+ assert_equal(@axis.crossBetween, :between, "axis crossBetween default incorrect")
13
+ end
14
+
15
+ def test_crossBetween
16
+ assert_raise(ArgumentError, "requires valid crossBetween") { @axis.crossBetween = :my_eyes }
17
+ assert_nothing_raised("accepts valid crossBetween") { @axis.crossBetween = :midCat }
18
+ end
19
+
20
+ end
@@ -0,0 +1,32 @@
1
+ require 'test/unit'
2
+ require 'axlsx.rb'
3
+
4
+ class TestValAxis < Test::Unit::TestCase
5
+ def setup
6
+ @axis = Axlsx::ValAxis.new 12345, 54321
7
+ end
8
+ def teardown
9
+ end
10
+
11
+ def test_initialization
12
+ assert_equal(@axis.auto, true, "axis auto default incorrect")
13
+ assert_equal(@axis.lblAlgn, :ctr, "label align default incorrect")
14
+ assert_equal(@axis.lblOffset, "100%", "label offset default incorrect")
15
+ end
16
+
17
+ def test_auto
18
+ assert_raise(ArgumentError, "requires valid auto") { @axis.auto = :nowhere }
19
+ assert_nothing_raised("accepts valid auto") { @axis.auto = false }
20
+ end
21
+
22
+ def test_lblAlgn
23
+ assert_raise(ArgumentError, "requires valid label alignment") { @axis.lblAlgn = :nowhere }
24
+ assert_nothing_raised("accepts valid label alignment") { @axis.lblAlgn = :r }
25
+ end
26
+
27
+ def test_lblOffset
28
+ assert_raise(ArgumentError, "requires valid label offset") { @axis.lblOffset = 100 }
29
+ assert_nothing_raised("accepts valid label offset") { @axis.lblOffset = "20%" }
30
+ end
31
+
32
+ end
@@ -0,0 +1,46 @@
1
+ require 'test/unit'
2
+ require 'axlsx.rb'
3
+
4
+ class TestView3D < Test::Unit::TestCase
5
+ def setup
6
+ @view = Axlsx::View3D.new
7
+ end
8
+
9
+ def teardown
10
+ end
11
+
12
+
13
+ def test_rotX
14
+ assert_raise(ArgumentError) {@view.rotX = "bob"}
15
+ assert_nothing_raised {@view.rotX = -90}
16
+ end
17
+
18
+ def test_rotY
19
+ assert_raise(ArgumentError) {@view.rotY = "bob"}
20
+ assert_nothing_raised {@view.rotY = 90}
21
+ end
22
+
23
+ def test_hPercent
24
+ assert_raise(ArgumentError) {@view.hPercent = "bob"}
25
+ assert_nothing_raised {@view.hPercent = "500%"}
26
+ end
27
+
28
+ def test_depthPercent
29
+ assert_raise(ArgumentError) {@view.depthPercent = "bob"}
30
+ assert_nothing_raised {@view.depthPercent = "20%"}
31
+ end
32
+
33
+
34
+ def test_rAngAx
35
+ assert_raise(ArgumentError) {@view.rAngAx = "bob"}
36
+ assert_nothing_raised {@view.rAngAx = true}
37
+ end
38
+
39
+ def test_perspective
40
+ assert_raise(ArgumentError) {@view.perspective = "bob"}
41
+ assert_nothing_raised {@view.perspective = 30}
42
+ end
43
+
44
+
45
+
46
+ end
@@ -0,0 +1,37 @@
1
+ require 'test/unit'
2
+ require 'axlsx.rb'
3
+
4
+ class TestTwoCellAnchor < 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
+ @anchor = @chart.graphic_frame.anchor
12
+ end
13
+
14
+ def teardown
15
+ end
16
+
17
+ def test_initialization
18
+ assert(@anchor.from.col == 0)
19
+ assert(@anchor.from.row == 0)
20
+ assert(@anchor.to.col == 5)
21
+ assert(@anchor.to.row == 10)
22
+ end
23
+
24
+ def test_start_at
25
+ @anchor.start_at 5, 10
26
+ assert(@anchor.from.col == 5)
27
+ assert(@anchor.from.row == 10)
28
+ end
29
+
30
+ def test_end_at
31
+ @anchor.end_at 10, 15
32
+ assert(@anchor.to.col == 10)
33
+ assert(@anchor.to.row == 15)
34
+ end
35
+
36
+
37
+ end
@@ -0,0 +1,16 @@
1
+ require 'test/unit'
2
+ require 'axlsx.rb'
3
+
4
+ class TestRelationships < Test::Unit::TestCase
5
+ def setup
6
+ end
7
+
8
+ def teardown
9
+ end
10
+
11
+ def test_type
12
+ assert_raise(ArgumentError) { Axlsx::Relationship.new 'type', 'target' }
13
+ assert_nothing_raised { Axlsx::Relationship.new Axlsx::WORKSHEET_R, 'target' }
14
+ end
15
+
16
+ end
@@ -0,0 +1,39 @@
1
+ require 'test/unit'
2
+ require 'axlsx.rb'
3
+
4
+ class TestRelationships < Test::Unit::TestCase
5
+ def setup
6
+ end
7
+
8
+ def teardown
9
+ end
10
+
11
+ def test_type
12
+ assert_raise(ArgumentError) { Axlsx::Relationship.new 'type', 'target'
13
+ end
14
+ def test_valid_document
15
+ schema = Nokogiri::XML::Schema(File.open(Axlsx::RELS_XSD))
16
+ doc = Nokogiri::XML(@rels.to_xml)
17
+ errors = []
18
+ schema.validate(doc).each do |error|
19
+ puts error.message
20
+ errors << error
21
+ end
22
+
23
+ @rels << Axlsx::Relationship.new(Axlsx::WORKSHEET_R, "bar")
24
+ doc = Nokogiri::XML(@rels.to_xml)
25
+ errors = []
26
+ schema.validate(doc).each do |error|
27
+ puts error.message
28
+ errors << error
29
+ end
30
+
31
+ assert(errors.size == 0)
32
+ end
33
+
34
+ def test_require_valid_relationship_type
35
+ assert_raise(ArgumentError) { Axlsx::Relationship.new("Unknown", "bar" ) }
36
+ assert_nothing_raised { Axlsx::Relationship.new(Axlsx::CHART_R, "bar") }
37
+ end
38
+
39
+ end
@@ -0,0 +1,32 @@
1
+ require 'test/unit'
2
+ require 'axlsx.rb'
3
+
4
+ class TestRelationships < Test::Unit::TestCase
5
+ def setup
6
+ @rels = Axlsx::Relationships.new
7
+ end
8
+
9
+ def teardown
10
+ end
11
+
12
+ def test_valid_document
13
+ schema = Nokogiri::XML::Schema(File.open(Axlsx::RELS_XSD))
14
+ doc = Nokogiri::XML(@rels.to_xml)
15
+ errors = []
16
+ schema.validate(doc).each do |error|
17
+ puts error.message
18
+ errors << error
19
+ end
20
+
21
+ @rels << Axlsx::Relationship.new(Axlsx::WORKSHEET_R, "bar")
22
+ doc = Nokogiri::XML(@rels.to_xml)
23
+ errors = []
24
+ schema.validate(doc).each do |error|
25
+ puts error.message
26
+ errors << error
27
+ end
28
+
29
+ assert(errors.size == 0)
30
+ end
31
+
32
+ end
@@ -0,0 +1,37 @@
1
+ require 'test/unit'
2
+ require 'axlsx.rb'
3
+
4
+ class TestRelationships < Test::Unit::TestCase
5
+ def setup
6
+ @rels = Axlsx::Relationships.new
7
+ end
8
+
9
+ def teardown
10
+ end
11
+
12
+ def test_valid_document
13
+ schema = Nokogiri::XML::Schema(File.open(Axlsx::RELS_XSD))
14
+ doc = Nokogiri::XML(@rels.to_xml)
15
+ errors = []
16
+ schema.validate(doc).each do |error|
17
+ puts error.message
18
+ errors << error
19
+ end
20
+
21
+ @rels << Axlsx::Relationship.new(Axlsx::WORKSHEET_R, "bar")
22
+ doc = Nokogiri::XML(@rels.to_xml)
23
+ errors = []
24
+ schema.validate(doc).each do |error|
25
+ puts error.message
26
+ errors << error
27
+ end
28
+
29
+ assert(errors.size == 0)
30
+ end
31
+
32
+ def test_require_valid_relationship_type
33
+ assert_raise(ArgumentError) { Axlsx::Relationship.new("Unknown", "bar" ) }
34
+ assert_nothing_raised { Axlsx::Relationship.new(Axlsx::CHART_R, "bar") }
35
+ end
36
+
37
+ end
@@ -0,0 +1,38 @@
1
+ require 'test/unit'
2
+ require 'axlsx.rb'
3
+
4
+ class TestBorder < Test::Unit::TestCase
5
+ def setup
6
+ @b = Axlsx::Border.new
7
+ end
8
+ def teardown
9
+ end
10
+ def test_initialiation
11
+ assert_equal(@b.diagonalUp, nil)
12
+ assert_equal(@b.diagonalDown, nil)
13
+ assert_equal(@b.outline, nil)
14
+ assert(@b.prs.is_a?(Axlsx::SimpleTypedList))
15
+ end
16
+
17
+ def test_diagonalUp
18
+ assert_raise(ArgumentError) { @b.diagonalUp = :red }
19
+ assert_nothing_raised { @b.diagonalUp = true }
20
+ assert_equal(@b.diagonalUp, true )
21
+ end
22
+
23
+ def test_diagonalDown
24
+ assert_raise(ArgumentError) { @b.diagonalDown = :red }
25
+ assert_nothing_raised { @b.diagonalDown = true }
26
+ assert_equal(@b.diagonalDown, true )
27
+ end
28
+
29
+ def test_outline
30
+ assert_raise(ArgumentError) { @b.outline = :red }
31
+ assert_nothing_raised { @b.outline = true }
32
+ assert_equal(@b.outline, true )
33
+ end
34
+
35
+ def test_prs
36
+ assert_nothing_raised { @b.prs << Axlsx::BorderPr.new(:name=>:top, :style=>:thin, :color => Axlsx::Color.new(:rgb=>"FF0000FF")) }
37
+ end
38
+ end
@@ -0,0 +1,31 @@
1
+ require 'test/unit'
2
+ require 'axlsx.rb'
3
+
4
+ class TestBorder < Test::Unit::TestCase
5
+ def setup
6
+ @bpr = Axlsx::Border.new
7
+ end
8
+ def teardown
9
+ end
10
+ def test_initialiation
11
+ assert_equal(@bpr.color, nil)
12
+ assert_equal(@bpr.style, nil)
13
+ assert_equal(@bpr.name, nil)
14
+ end
15
+
16
+ def test_color
17
+ assert_raise(ArgumentError) { @bpr.color = :red }
18
+ assert_nothing_raised { @bpr.color = Axlsx::Color.new :rgb=>"FF000000" }
19
+ end
20
+
21
+ def test_style
22
+ assert_raise(ArgumentError) { @bpr.style = :red }
23
+ assert_nothing_raised { @bpr.style = :thin }
24
+ end
25
+
26
+ def test_name
27
+ assert_raise(ArgumentError) { @bpr.name = :red }
28
+ assert_nothing_raised { @bpr.name = :top }
29
+
30
+ end
31
+ end