xmlss 0.2.0 → 0.2.1

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.
@@ -1,45 +1,41 @@
1
- require "test/helper"
1
+ require "assert"
2
2
  require 'xmlss/style/protection'
3
3
 
4
- class Xmlss::Style::ProtectionTest < Test::Unit::TestCase
4
+ module Xmlss::Style
5
5
 
6
- context "Xmlss::Style::Protection" do
7
- subject { Xmlss::Style::Protection.new }
6
+ class ProtectionTest < Assert::Context
7
+ desc "Xmlss::Style::Protection"
8
+ before { @sp = Xmlss::Style::Protection.new }
9
+ subject { @sp }
8
10
 
9
- should_have_instance_methods :protected?
10
- should_have_accessor :protect
11
+ should have_instance_methods :protected?
12
+ should have_accessor :protect
11
13
 
12
14
  should "set it's defaults" do
13
15
  assert_equal false, subject.protected?
14
16
  end
15
17
 
16
- context "that sets attributes at init" do
17
- subject do
18
- Xmlss::Style::Protection.new({
19
- :protect => true
20
- })
21
- end
18
+ should "set attrs at init time" do
19
+ sp = Xmlss::Style::Protection.new({
20
+ :protect => true
21
+ })
22
+ assert sp.protected?
23
+ end
22
24
 
23
- should "should set them correctly" do
24
- assert subject.protected?
25
- end
25
+ should "set attrs after init time" do
26
+ subject.protect = true
27
+ assert subject.protected?
26
28
  end
27
29
 
28
- context "that sets attributes after init" do
29
- before do
30
- subject.protect = true
31
- end
30
+ end
32
31
 
33
- should "should set them correctly" do
34
- assert subject.protected?
35
- end
36
- end
32
+ class ProtectionXmlTest < ProtectionTest
33
+ desc "for generating XML"
37
34
 
38
- context "for generating XML" do
39
- should_have_reader :xml
40
- should_build_node
41
- should_build_no_attributes_by_default(Xmlss::Style::Alignment)
42
- end
35
+ should have_reader :xml
36
+ should_build_node
37
+ should_build_no_attributes_by_default(Xmlss::Style::Alignment)
43
38
 
44
39
  end
40
+
45
41
  end
data/test/table_test.rb CHANGED
@@ -1,53 +1,56 @@
1
- require "test/helper"
1
+ require "assert"
2
2
  require 'xmlss/table'
3
3
 
4
4
  module Xmlss
5
- class TableTest < Test::Unit::TestCase
6
-
7
- context "Xmlss::Table" do
8
- subject { Table.new }
9
-
10
- should_have_accessor :columns, :rows
11
-
12
- should "set it's defaults" do
13
- assert_equal [], subject.columns
14
- assert_equal [], subject.rows
15
- end
16
-
17
- should "allow defining a rows/columns at init" do
18
- tbl = Table.new({
19
- :columns => [Column.new],
20
- :rows => [Row.new]
21
- })
22
-
23
- assert_equal 1, tbl.columns.size
24
- assert_kind_of Column, tbl.columns.first
25
- assert_equal 1, tbl.rows.size
26
- assert_kind_of Row, tbl.rows.first
27
- end
28
-
29
- context "for generating XML" do
30
- should_have_reader :xml
31
- should_build_node
32
- end
33
-
34
- context "when using rows/columns" do
35
- before do
36
- subject.columns << Column.new
37
- r = Row.new
38
- r.cells << Cell.new
39
- subject.rows << r
40
- end
41
-
42
- should "should build a table object" do
43
- assert_equal 1, subject.columns.size
44
- assert_kind_of Column, subject.columns.first
45
- assert_equal 1, subject.rows.size
46
- assert_kind_of Row, subject.rows.first
47
- end
48
- end
5
+ class TableTest < Assert::Context
6
+ desc "Xmlss::Table"
7
+ before { @tbl = Table.new }
8
+ subject { @tbl }
49
9
 
10
+ should have_accessor :columns, :rows
11
+
12
+ should "set it's defaults" do
13
+ assert_equal [], subject.columns
14
+ assert_equal [], subject.rows
15
+ end
16
+
17
+ should "allow defining a rows/columns at init" do
18
+ tbl = Table.new({
19
+ :columns => [Column.new],
20
+ :rows => [Row.new]
21
+ })
22
+
23
+ assert_equal 1, tbl.columns.size
24
+ assert_kind_of Column, tbl.columns.first
25
+ assert_equal 1, tbl.rows.size
26
+ assert_kind_of Row, tbl.rows.first
27
+ end
28
+
29
+ end
30
+
31
+ class TableXmlTest < TableTest
32
+ desc "for generating XML"
33
+ should have_reader :xml
34
+ should_build_node
35
+
36
+ end
37
+
38
+ class TableRowsColsTest < TableTest
39
+ desc "when using rows/columns"
40
+ before do
41
+ subject.columns << Column.new
42
+ r = Row.new
43
+ r.cells << Cell.new
44
+ subject.rows << r
45
+ end
46
+
47
+ should "should build a table object" do
48
+ assert_equal 1, subject.columns.size
49
+ assert_kind_of Column, subject.columns.first
50
+ assert_equal 1, subject.rows.size
51
+ assert_kind_of Row, subject.rows.first
50
52
  end
51
53
 
52
54
  end
55
+
53
56
  end
@@ -1,62 +1,67 @@
1
- require "test/helper"
1
+ require "assert"
2
2
  require 'xmlss/workbook'
3
3
 
4
4
  module Xmlss
5
- class WorkbookTest < Test::Unit::TestCase
5
+ class WorkbookTest < Assert::Context
6
+ desc "Xmlss::Workbook"
7
+ before { @wkbk = Workbook.new }
8
+ subject { @wkbk }
6
9
 
7
- context "Xmlss::Workbook" do
8
- subject { Workbook.new }
10
+ should have_accessor :styles, :worksheets
11
+ should have_instance_method :to_xml
9
12
 
10
- should_have_accessor :styles, :worksheets
11
- should_have_instance_method :to_xml
13
+ should "set it's defaults" do
14
+ assert_equal [], subject.styles
15
+ assert_equal [], subject.worksheets
16
+ end
12
17
 
13
- should "set it's defaults" do
14
- assert_equal [], subject.styles
15
- assert_equal [], subject.worksheets
16
- end
18
+ end
17
19
 
18
- context "when initializing with attrs" do
19
- subject do
20
- # specifying attrs at init time
21
- Workbook.new({
22
- :worksheets => [Worksheet.new('sheet1')]
23
- })
24
- end
25
- before do
26
- # writing attrs at run time
27
- subject.styles = [
28
- Xmlss::Style::Base.new('title') do
29
- alignment({:horizontal => :left})
30
- font({:size => 14, :bold => true})
31
- end,
32
-
33
- Xmlss::Style::Base.new('header') do
34
- alignment({:horizontal => :left})
35
- font({:bold => true})
36
- [:top, :right, :bottom, :left].each do |p|
37
- border({:position => :p})
38
- end
39
- end
40
- ]
41
- end
20
+ class WorkbookAttrsTest < Assert::Context
21
+ desc "when initializing with attrs"
22
+ subject { @wkbk }
23
+ before do
24
+ # specifying attrs at init time
25
+ @wkbk = Workbook.new({
26
+ :worksheets => [Worksheet.new('sheet1')]
27
+ })
42
28
 
43
- should "build the attrs appropriately" do
44
- [:worksheets, :styles].each do |thing|
45
- assert_kind_of ItemSet, subject.send(thing)
46
- end
47
- assert_kind_of Worksheet, subject.worksheets.first
48
- assert_equal 1, subject.worksheets.size
29
+ # writing attrs at run time
30
+ @wkbk.styles = [
31
+ Xmlss::Style::Base.new('title') do
32
+ alignment({:horizontal => :left})
33
+ font({:size => 14, :bold => true})
34
+ end,
49
35
 
50
- assert_kind_of Style::Base, subject.styles.first
51
- assert_equal 2, subject.styles.size
36
+ Xmlss::Style::Base.new('header') do
37
+ alignment({:horizontal => :left})
38
+ font({:bold => true})
39
+ [:top, :right, :bottom, :left].each do |p|
40
+ border({:position => :p})
41
+ end
52
42
  end
53
- end
43
+ ]
44
+ end
54
45
 
55
- context "for generating XML" do
56
- should_have_reader :xml
57
- should_build_node
46
+ should "build the attrs appropriately" do
47
+ [:worksheets, :styles].each do |thing|
48
+ assert_kind_of ItemSet, subject.send(thing)
58
49
  end
50
+ assert_kind_of Worksheet, subject.worksheets.first
51
+ assert_equal 1, subject.worksheets.size
52
+
53
+ assert_kind_of Style::Base, subject.styles.first
54
+ assert_equal 2, subject.styles.size
59
55
  end
60
56
 
61
57
  end
58
+
59
+ class WorkbookXmlTest < WorkbookTest
60
+ desc "for generating XML"
61
+
62
+ should have_reader :xml
63
+ should_build_node
64
+
65
+ end
66
+
62
67
  end
@@ -1,68 +1,69 @@
1
- require "test/helper"
1
+ require "assert"
2
2
  require 'xmlss/worksheet'
3
3
 
4
4
  module Xmlss
5
- class WorksheetTest < Test::Unit::TestCase
5
+ class WorksheetTest < Assert::Context
6
+ desc "Xmlss::Worksheet"
7
+ before { @wksht = Worksheet.new('sheet') }
8
+ subject { @wksht }
6
9
 
7
- context "Xmlss::Worksheet" do
8
- subject { Worksheet.new('sheet') }
10
+ should have_accessor :name, :table
9
11
 
10
- should_have_accessor :name, :table
11
-
12
- should "set it's defaults" do
13
- assert_equal 'sheet', subject.name
14
- assert_kind_of Table, subject.table
15
- assert_equal [], subject.table.columns
16
- assert_equal [], subject.table.rows
17
- end
12
+ should "set it's defaults" do
13
+ assert_equal 'sheet', subject.name
14
+ assert_kind_of Table, subject.table
15
+ assert_equal [], subject.table.columns
16
+ assert_equal [], subject.table.rows
17
+ end
18
18
 
19
- should "filter name chars" do
20
- # worksheet name cannot contain: /, \, :, ;, * or start with '['
21
- assert_equal "test test", Worksheet.new("test/ test").name
22
- assert_equal "test test", Worksheet.new("tes\\t test").name
23
- assert_equal "test test", Worksheet.new("te:st test:").name
24
- ws = Worksheet.new("te;st ;test")
25
- assert_equal "test test", ws.name
26
- ws.name = "t*est test"
27
- assert_equal "test test", ws.name
28
- ws.name = "[te]st test"
29
- assert_equal "te]st test", ws.name
30
- ws.name = "t[e]st test"
31
- assert_equal "t[e]st test", ws.name
32
- end
19
+ should "filter name chars" do
20
+ # worksheet name cannot contain: /, \, :, ;, * or start with '['
21
+ assert_equal "test test", Worksheet.new("test/ test").name
22
+ assert_equal "test test", Worksheet.new("tes\\t test").name
23
+ assert_equal "test test", Worksheet.new("te:st test:").name
24
+ ws = Worksheet.new("te;st ;test")
25
+ assert_equal "test test", ws.name
26
+ ws.name = "t*est test"
27
+ assert_equal "test test", ws.name
28
+ ws.name = "[te]st test"
29
+ assert_equal "te]st test", ws.name
30
+ ws.name = "t[e]st test"
31
+ assert_equal "t[e]st test", ws.name
32
+ end
33
33
 
34
- should "allow defining a table at init" do
35
- wksht = Worksheet.new('table', {
36
- :table => Table.new({
37
- :columns => [Column.new]
38
- })
34
+ should "allow defining a table at init" do
35
+ wksht = Worksheet.new('table', {
36
+ :table => Table.new({
37
+ :columns => [Column.new]
39
38
  })
39
+ })
40
40
 
41
- assert_equal 1, wksht.table.columns.size
42
- assert_kind_of Column, wksht.table.columns.first
43
- end
41
+ assert_equal 1, wksht.table.columns.size
42
+ assert_kind_of Column, wksht.table.columns.first
43
+ end
44
44
 
45
- should "bark when no name is given" do
46
- assert_raises ArgumentError do
47
- Worksheet.new(nil)
48
- end
49
- assert_raises ArgumentError do
50
- Worksheet.new("")
51
- end
45
+ should "bark when no name is given" do
46
+ assert_raises ArgumentError do
47
+ Worksheet.new(nil)
52
48
  end
53
-
54
- should "bark when setting a table to something other" do
55
- assert_raises ArgumentError do
56
- subject.table = "not a table"
57
- end
49
+ assert_raises ArgumentError do
50
+ Worksheet.new("")
58
51
  end
52
+ end
59
53
 
60
- context "for generating XML" do
61
- should_have_reader :xml
62
- should_build_node
54
+ should "bark when setting a table to something other" do
55
+ assert_raises ArgumentError do
56
+ subject.table = "not a table"
63
57
  end
64
-
65
58
  end
66
59
 
67
60
  end
61
+
62
+ class WorksheetXmlTest < WorksheetTest
63
+ desc "for generating XML"
64
+
65
+ should have_reader :xml
66
+ should_build_node
67
+ end
68
+
68
69
  end
data/test/xml_test.rb CHANGED
@@ -1,80 +1,81 @@
1
- require "test/helper"
1
+ require "assert"
2
2
  require 'test/thing'
3
3
 
4
4
  module Xmlss
5
- class XmlTest < Test::Unit::TestCase
5
+ class XmlTest < Assert::Context
6
+ desc "Xmlss::Xml"
7
+ before { @thing = Thing.new }
8
+ subject { @thing }
6
9
 
7
- context "Xmlss::Xml" do
8
- subject { Thing.new }
9
-
10
- should "should provide proper namespace constants" do
11
- assert_equal "xmlns", Xmlss::XML_NS
12
- assert_equal "ss", Xmlss::SHEET_NS
13
- assert_equal "urn:schemas-microsoft-com:office:spreadsheet", Xmlss::NS_URI
14
- end
10
+ should "should provide proper namespace constants" do
11
+ assert_equal "xmlns", Xmlss::XML_NS
12
+ assert_equal "ss", Xmlss::SHEET_NS
13
+ assert_equal "urn:schemas-microsoft-com:office:spreadsheet", Xmlss::NS_URI
14
+ end
15
15
 
16
- should "bark if you use xml generation without configuring" do
17
- assert_raises ArgumentError do
18
- ::Nokogiri::XML::Builder.new do |builder|
19
- subject.build_node(builder)
20
- end
16
+ should "bark if you use xml generation without configuring" do
17
+ assert_raises ArgumentError do
18
+ ::Nokogiri::XML::Builder.new do |builder|
19
+ subject.build_node(builder)
21
20
  end
22
21
  end
22
+ end
23
23
 
24
- context "with config" do
25
- before do
26
- subject.xml = {
27
- :node => :thing,
28
- :attributes => [:one, :two, :three],
29
- :children => [:child_nodes]
30
- }
31
- subject.one = true
32
- subject.two = "two"
33
- subject.three = ""
34
- end
24
+ end
35
25
 
36
- should "build it's node" do
37
- assert_nothing_raised do
38
- ::Nokogiri::XML::Builder.new do |builder|
39
- subject.build_node(builder)
40
- end
41
- end
42
- end
26
+ class XmlConfigTest < XmlTest
27
+ desc "with config"
28
+ before do
29
+ subject.xml = {
30
+ :node => :thing,
31
+ :attributes => [:one, :two, :three],
32
+ :children => [:child_nodes]
33
+ }
34
+ subject.one = true
35
+ subject.two = "two"
36
+ subject.three = ""
37
+ end
43
38
 
44
- should "build with no whitespace formatting by default" do
45
- assert_equal(
46
- "<?xml version=\"1.0\"?>\n<Thing ss:One=\"1\" ss:Two=\"two\"><Nodes/></Thing>\n",
47
- ::Nokogiri::XML::Builder.new do |builder|
48
- subject.build_node(builder)
49
- end.to_xml({:save_with => subject.xml_save_with})
50
- )
39
+ should "build it's node" do
40
+ assert_nothing_raised do
41
+ ::Nokogiri::XML::Builder.new do |builder|
42
+ subject.build_node(builder)
51
43
  end
44
+ end
45
+ end
52
46
 
53
- should "build with whitespace formatting if specified" do
54
- assert_equal(
55
- "<?xml version=\"1.0\"?>\n<Thing ss:One=\"1\" ss:Two=\"two\">\n <Nodes/>\n</Thing>\n",
56
- ::Nokogiri::XML::Builder.new do |builder|
57
- subject.build_node(builder)
58
- end.to_xml({:save_with => subject.xml_save_with(:format)})
59
- )
60
- end
47
+ should "build with no whitespace formatting by default" do
48
+ assert_equal(
49
+ "<?xml version=\"1.0\"?>\n<Thing ss:One=\"1\" ss:Two=\"two\"><Nodes/></Thing>\n",
50
+ ::Nokogiri::XML::Builder.new do |builder|
51
+ subject.build_node(builder)
52
+ end.to_xml({:save_with => subject.xml_save_with})
53
+ )
54
+ end
61
55
 
62
- should "generate build attributes based on it's own attributes" do
63
- assert_nothing_raised do
64
- subject.send :build_attributes
65
- end
66
- attrs = subject.send :build_attributes
56
+ should "build with whitespace formatting if specified" do
57
+ assert_equal(
58
+ "<?xml version=\"1.0\"?>\n<Thing ss:One=\"1\" ss:Two=\"two\">\n <Nodes/>\n</Thing>\n",
59
+ ::Nokogiri::XML::Builder.new do |builder|
60
+ subject.build_node(builder)
61
+ end.to_xml({:save_with => subject.xml_save_with(:format)})
62
+ )
63
+ end
67
64
 
68
- assert_kind_of ::Hash, attrs
69
- assert attrs.has_key?("#{Xmlss::SHEET_NS}:One")
70
- assert_equal 1, attrs["#{Xmlss::SHEET_NS}:One"]
71
- assert attrs.has_key?("#{Xmlss::SHEET_NS}:Two")
72
- assert_equal 'two', attrs["#{Xmlss::SHEET_NS}:Two"]
73
- assert !attrs.has_key?("#{Xmlss::SHEET_NS}:Three")
74
- end
65
+ should "generate build attributes based on it's own attributes" do
66
+ assert_nothing_raised do
67
+ subject.send :build_attributes
75
68
  end
69
+ attrs = subject.send :build_attributes
76
70
 
71
+ assert_kind_of ::Hash, attrs
72
+ assert attrs.has_key?("#{Xmlss::SHEET_NS}:One")
73
+ assert_equal 1, attrs["#{Xmlss::SHEET_NS}:One"]
74
+ assert attrs.has_key?("#{Xmlss::SHEET_NS}:Two")
75
+ assert_equal 'two', attrs["#{Xmlss::SHEET_NS}:Two"]
76
+ assert !attrs.has_key?("#{Xmlss::SHEET_NS}:Three")
77
77
  end
78
78
 
79
79
  end
80
+
80
81
  end