Skip to content

Commit 71b2b49

Browse files
committed
convert tests to minitest
run using bundle exec rake test
1 parent f1e9f1a commit 71b2b49

20 files changed

+429
-321
lines changed

Rakefile

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,9 @@
11
require "bundler/gem_tasks"
2+
require 'launchy'
3+
task :test do
4+
Dir.glob('./test/*_test.rb').each { |file| require file}
5+
end
6+
7+
task :open do
8+
Dir.glob('./test/result/*.odt').each { |file| Launchy.open(file) }
9+
end

odf-report.gemspec

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ Gem::Specification.new do |s|
2121

2222
s.add_development_dependency "bundler", "~> 1.6"
2323
s.add_development_dependency "rake"
24+
s.add_development_dependency "minitest"
25+
s.add_development_dependency "faker"
26+
s.add_development_dependency "launchy"
2427

2528
s.add_runtime_dependency('rubyzip', "~> 1.1.0")
2629
s.add_runtime_dependency('nokogiri', ">= 1.5.0")

test/fields_inside_text_test.rb

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# coding: UTF-8
2+
require './lib/odf-report'
3+
require 'faker'
4+
require 'launchy'
5+
require 'minitest/autorun'
6+
7+
class TestFieldsInsideSections < Minitest::Test
8+
9+
def setup
10+
11+
@html = <<-HTML
12+
<p>Uniquely promote installed base total linkage via emerging deliverables com <strong>[EVENTO_TEXTO_CARTA]</strong>, unleash cross-media collaboration <strong>[FUNCAO]</strong> [EVENTO_NOME].</p>
13+
14+
<p>Progressively fashion diverse portals nº <strong>[NUMERO_SECAO]</strong> do local <strong>[NOME_LOCAL]</strong>, situado na <strong>[ENDERECO_LOCAL]</strong> methodologies </p>
15+
16+
<p>Assertively orchestrate market positioning bandwidth rather than fully researched total linkage. Interactively architect granular e-markets via clicks-and-mortar ROI. Uniquely aggregate compelling.</p>
17+
18+
<p>Compellingly facilitate functionalized interfaces before wireless models. Compellingly morph parallel systems whereas combinado com o artigo 63, § 2º da Lei nº 9.504/97, abaixo mencionados:</p>
19+
20+
<p style="margin-left:1.76cm;"><em>Art. 120 - § 1º Compellingly envisioneer high standards in niches without best-of-breed leadership. Phosfluorescently unleash go forward methodologies after bricks-and-clicks niches. Authoritatively. </em></p>
21+
22+
<p style="margin-left:1.76cm;"><em>Art. 63 - [...] § 2º Enthusiastically parallel task user friendly functionalities whereas exceptional leadership. </em></p>
23+
24+
<p>Credibly enable multifunctional strategic theme areas and premium communities.</p>
25+
26+
HTML
27+
28+
end
29+
30+
def test_generate
31+
32+
report = ODFReport::Report.new("test/templates/test_fields_inside_text.odt") do |r|
33+
34+
r.add_text(:body, @html)
35+
36+
r.add_field('EVENTO_TEXTO_CARTA', Faker::Lorem.sentence)
37+
r.add_field('FUNCAO', Faker::Lorem.word)
38+
r.add_field('EVENTO_NOME', Faker::Company.name)
39+
40+
r.add_field('NUMERO_SECAO', Faker::Number.number(3))
41+
r.add_field('NOME_LOCAL', Faker::Company.name)
42+
r.add_field('ENDERECO_LOCAL', Faker::Address.street_address)
43+
end
44+
45+
report.generate("test/result/test_fields_inside_text.odt")
46+
47+
end
48+
49+
50+
end

test/nested_tables_test.rb

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# coding: UTF-8
2+
require './lib/odf-report'
3+
require 'faker'
4+
require 'launchy'
5+
require 'minitest/autorun'
6+
7+
class NestedTablesTest < Minitest::Test
8+
9+
class Item
10+
attr_accessor :name, :sid, :children
11+
def initialize(_name, _sid, _children=[])
12+
@name=_name
13+
@sid=_sid
14+
@children=_children
15+
end
16+
end
17+
18+
def setup
19+
20+
@items = []
21+
@items << Item.new("LOST", '007', %w(sawyer juliet hurley locke jack freckles))
22+
@items << Item.new("ALIAS", '302', %w(sidney sloane jack michael marshal))
23+
@items << Item.new("GREY'S ANATOMY", '220', %w(meredith christina izzie alex george))
24+
@items << Item.new("BREAKING BAD", '556', %w(pollos gus mike heisenberg))
25+
26+
end
27+
28+
def test_generate
29+
30+
report = ODFReport::Report.new("test/templates/test_nested_tables.odt") do |r|
31+
32+
r.add_field("TAG_01", Time.now)
33+
r.add_field("TAG_02", "TAG-2 -> New tag")
34+
35+
r.add_table("TABLE_MAIN", @items) do |s|
36+
37+
s.add_column('NAME') { |i| i.name }
38+
39+
s.add_column('SID', :sid)
40+
41+
s.add_table('TABLE_S1', :children, :header=>true) do |t|
42+
t.add_column('NAME1') { |item| "-> #{item}" }
43+
t.add_column('INV') { |item| item.to_s.reverse.upcase }
44+
end
45+
46+
end
47+
48+
end
49+
50+
report.generate("test/result/test_nested_tables.odt")
51+
52+
end
53+
54+
55+
end

test/sections_test.rb

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
require './lib/odf-report'
2+
require 'ostruct'
3+
require 'faker'
4+
require 'launchy'
5+
require 'minitest/autorun'
6+
7+
class TestSections < Minitest::Test
8+
9+
class Item
10+
attr_accessor :name, :sid, :children
11+
def initialize(_name, _sid, _children=[])
12+
@name=_name
13+
@sid=_sid
14+
@children=_children
15+
end
16+
end
17+
18+
def setup
19+
20+
@items = []
21+
@items << Item.new("LOST", '007', %w(sawyer juliet hurley locke jack freckles))
22+
@items << Item.new("ALIAS", '302', %w(sidney sloane jack michael marshal))
23+
@items << Item.new("GREY'S ANATOMY", '220', %w(meredith christina izzie alex george))
24+
@items << Item.new("BREAKING BAD", '556', %w(pollos gus mike heisenberg))
25+
26+
end
27+
28+
def test_generate
29+
30+
report = ODFReport::Report.new("test/templates/test_sections.odt") do |r|
31+
32+
r.add_field("TAG_01", Time.now)
33+
r.add_field("TAG_02", "TAG-2 -> New tag")
34+
35+
r.add_section("SECTION_01", @items) do |s|
36+
37+
s.add_field('NAME') { |i| i.name }
38+
39+
s.add_field('SID', :sid)
40+
41+
s.add_table('TABLE_S1', :children, :header=>true) do |t|
42+
t.add_column('NAME1') { |item| "-> #{item}" }
43+
t.add_column('INV') { |item| item.to_s.reverse.upcase }
44+
end
45+
46+
end
47+
48+
end
49+
50+
report.generate("test/result/test_sections.odt")
51+
52+
end
53+
54+
55+
end

test/sub_sections_test.rb

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
require './lib/odf-report'
2+
require 'ostruct'
3+
require 'faker'
4+
require 'launchy'
5+
require 'minitest/autorun'
6+
7+
class SubSectionsTest < Minitest::Test
8+
9+
class Item
10+
attr_accessor :name, :sid, :children, :subs
11+
def initialize(_name, _sid, _children=[], _subs=[])
12+
@name=_name
13+
@sid=_sid
14+
@children=_children
15+
@subs=_subs
16+
end
17+
end
18+
19+
def setup
20+
21+
subs1 = []
22+
subs1 << Item.new("SAWYER", 1, %w(Your bones don't break))
23+
subs1 << Item.new("HURLEY", 2, %w(Your cells react to bacteria and viruses))
24+
subs1 << Item.new("LOCKE", 3, %W(Do you see any Teletubbies in here))
25+
26+
subs2 = []
27+
subs2 << Item.new("SLOANE", 21, %w(Praesent hendrerit lectus sit amet))
28+
subs2 << Item.new("JACK", 22, %w(Donec nec est eget dolor laoreet))
29+
subs2 << Item.new("MICHAEL", 23, %W(Integer elementum massa at nulla placerat varius))
30+
31+
@items = []
32+
@items << Item.new("LOST", '007', [], subs1)
33+
@items << Item.new("GREY'S ANATOMY", '220', nil)
34+
@items << Item.new("ALIAS", '302', nil, subs2)
35+
@items << Item.new("BREAKING BAD", '556', [])
36+
37+
end
38+
39+
def test_generate
40+
41+
report = ODFReport::Report.new("test/templates/test_sub_sections.odt") do |r|
42+
43+
r.add_field("TAG_01", Time.now)
44+
r.add_field("TAG_02", "TAG-2 -> New tag")
45+
46+
r.add_section("SECTION_01", @items) do |s|
47+
48+
s.add_field('NAME') { |i| i.name }
49+
50+
s.add_field('SID', :sid)
51+
52+
s.add_section('SUB_01', :subs) do |r|
53+
r.add_field("FIRST_NAME", :name)
54+
r.add_table('IPSUM_TABLE', :children, :header => true) do |t|
55+
t.add_column('IPSUM_ITEM') { |i| i }
56+
end
57+
end
58+
59+
end
60+
61+
end
62+
63+
report.generate("test/result/test_sub_sections.odt")
64+
65+
end
66+
67+
68+
end

test/table_headers_test.rb

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
require './lib/odf-report'
2+
require 'ostruct'
3+
require 'faker'
4+
require 'launchy'
5+
require 'minitest/autorun'
6+
7+
8+
class TableHeadersTest < Minitest::Test
9+
10+
class Item
11+
attr_accessor :name, :mail
12+
def initialize(_name, _mail)
13+
@name=_name
14+
@mail=_mail
15+
end
16+
end
17+
18+
def setup
19+
20+
@items = []
21+
50.times { @items << Item.new(Faker::Name.name, Faker::Internet.email) }
22+
23+
end
24+
25+
def test_generate
26+
27+
report = ODFReport::Report.new("test/templates/test_table_headers.odt") do |r|
28+
29+
r.add_table("TABLE_01", @items, :header => true) do |s|
30+
s.add_column(:name)
31+
s.add_column(:mail)
32+
end
33+
34+
r.add_table("TABLE_02", @items, :header => true) do |s|
35+
s.add_column(:name)
36+
s.add_column(:mail)
37+
end
38+
39+
r.add_table("TABLE_03", @items) do |s|
40+
s.add_column(:name)
41+
s.add_column(:mail)
42+
end
43+
44+
end
45+
46+
report.generate("test/result/test_table_headers.odt")
47+
48+
end
49+
50+
end

test/tables_test.rb

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
require './lib/odf-report'
2+
require 'ostruct'
3+
require 'faker'
4+
require 'launchy'
5+
require 'minitest/autorun'
6+
7+
8+
class TestTables < Minitest::Test
9+
10+
def setup
11+
12+
@col1 = []
13+
(1..40).each do |i|
14+
@col1 << {:name=>"name #{i}", :idx=>i, :address=>"this is address #{i}"}
15+
end
16+
17+
18+
@col2 = []
19+
@col2 << OpenStruct.new({:name=>"josh harnet", :idx=>"02", :address=>"testing <&> ", :phone=>99025668, :zip=>"90420-002"})
20+
@col2 << OpenStruct.new({:name=>"sandro duarte", :idx=>"45", :address=>"address with &", :phone=>88774451, :zip=>"90490-002"})
21+
@col2 << OpenStruct.new({:name=>"ellen bicca", :idx=>"77", :address=>"<address with escaped html>", :phone=>77025668, :zip=>"94420-002"})
22+
@col2 << OpenStruct.new({:name=>"luiz garcia", 'idx'=>"88", :address=>"address with\nlinebreak", :phone=>27025668, :zip=>"94520-025"})
23+
24+
@col3, @col4, @col5 = [], [], []
25+
26+
end
27+
28+
def test_generate
29+
30+
report = ODFReport::Report.new("test/templates/test_tables.odt") do |r|
31+
32+
r.add_field("HEADER_FIELD", "This field was in the HEADER")
33+
34+
r.add_field("TAG_01", "New tag")
35+
r.add_field("TAG_02", "TAG-2 -> New tag")
36+
37+
r.add_table("TABLE_01", @col1, :header=>true) do |t|
38+
t.add_column(:field_01, :idx)
39+
t.add_column(:field_02, :name)
40+
t.add_column(:address)
41+
end
42+
43+
r.add_table("TABLE_02", @col2) do |t|
44+
t.add_column(:field_04, :idx)
45+
t.add_column(:field_05, :name)
46+
t.add_column(:field_06, 'address')
47+
t.add_column(:field_07, :phone)
48+
t.add_column(:field_08, :zip)
49+
end
50+
51+
r.add_table("TABLE_03", @col3, :header=>true) do |t|
52+
t.add_column(:field_01, :idx)
53+
t.add_column(:field_02, :name)
54+
t.add_column(:field_03, :address)
55+
end
56+
57+
r.add_table("TABLE_04", @col4, :header=>true, :skip_if_empty => true) do |t|
58+
t.add_column(:field_01, :idx)
59+
t.add_column(:field_02, :name)
60+
t.add_column(:field_03, :address)
61+
end
62+
63+
r.add_table("TABLE_05", @col5) do |t|
64+
t.add_column(:field_01, :idx)
65+
t.add_column(:field_02, :name)
66+
t.add_column(:field_03, :address)
67+
end
68+
69+
r.add_image("graphics1", File.join(Dir.pwd, 'test', 'templates', 'piriapolis.jpg'))
70+
r.add_image("graphics2", File.join(Dir.pwd, 'test', 'templates', 'rails.png'))
71+
72+
end
73+
74+
report.generate("test/result/test_tables.odt")
75+
76+
end
77+
78+
end
File renamed without changes.
File renamed without changes.

test/templates/test_sub_sections.odt

2.65 KB
Binary file not shown.

test/templates/test_text.odt

1.54 KB
Binary file not shown.

0 commit comments

Comments
 (0)