xmlss 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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