thinreports 0.7.6 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (277) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +3 -5
  3. data/.travis.yml +8 -4
  4. data/CHANGELOG.md +220 -0
  5. data/Gemfile +2 -9
  6. data/MIT-LICENSE +1 -1
  7. data/README.md +286 -0
  8. data/Rakefile +38 -8
  9. data/examples/character_spacing/character_spacing.rb +8 -0
  10. data/examples/character_spacing/character_spacing.tlf +1 -0
  11. data/examples/dynamic_image/dynamic_image.rb +31 -0
  12. data/examples/dynamic_image/dynamic_image.tlf +1 -0
  13. data/examples/dynamic_style/dynamic_style.rb +150 -0
  14. data/examples/dynamic_style/dynamic_style.tlf +1 -0
  15. data/examples/dynamic_style/dynamic_style_in_list.tlf +1 -0
  16. data/examples/eudc/eudc.rb +20 -0
  17. data/examples/eudc/eudc.tlf +1 -0
  18. data/examples/helper.rb +50 -0
  19. data/examples/hidden_shapes/hidden_shapes.rb +9 -0
  20. data/examples/hidden_shapes/hidden_shapes.tlf +1 -0
  21. data/examples/list_events/list_events.rb +59 -0
  22. data/examples/list_events/list_events_0_7_7.tlf +1 -0
  23. data/examples/list_events/list_events_0_8.tlf +1 -0
  24. data/examples/list_manual_generation/list_manual_generation.rb +22 -0
  25. data/examples/list_manual_generation/list_manual_generation.tlf +1 -0
  26. data/examples/list_page_number/list_page_number.rb +17 -0
  27. data/examples/list_page_number/list_page_number.tlf +1 -0
  28. data/examples/page_number/page_number.rb +33 -0
  29. data/examples/page_number/page_number.tlf +1 -0
  30. data/examples/password_setting/password_setting.rb +10 -0
  31. data/examples/password_setting/password_setting.tlf +1 -0
  32. data/examples/report_callbacks/report_callbacks.rb +31 -0
  33. data/examples/report_callbacks/report_callbacks.tlf +1 -0
  34. data/examples/single_line_tblock/single_line_tblock.rb +13 -0
  35. data/examples/single_line_tblock/single_line_tblock.tlf +1 -0
  36. data/examples/tblock_overflow/tblock_overflow.rb +20 -0
  37. data/examples/tblock_overflow/tblock_overflow.tlf +1 -0
  38. data/examples/tblock_styles/font_size.tlf +1 -0
  39. data/examples/tblock_styles/tblock_styles.rb +43 -0
  40. data/examples/tblock_styles/tblock_styles.tlf +1 -0
  41. data/examples/text_align/text_align.rb +8 -0
  42. data/examples/text_align/text_align.tlf +1 -0
  43. data/examples/typeB_page_size/B4_ISO.tlf +1 -0
  44. data/examples/typeB_page_size/B4_JIS.tlf +1 -0
  45. data/examples/typeB_page_size/typeB_page_size.rb +17 -0
  46. data/examples/word_wrap/word_wrap.rb +26 -0
  47. data/examples/word_wrap/word_wrap.tlf +1 -0
  48. data/lib/thinreports/config.rb +30 -10
  49. data/lib/thinreports/core/errors.rb +23 -20
  50. data/lib/thinreports/core/events.rb +18 -19
  51. data/lib/thinreports/core/format/base.rb +20 -25
  52. data/lib/thinreports/core/format/builder.rb +19 -27
  53. data/lib/thinreports/core/shape/base/interface.rb +15 -15
  54. data/lib/thinreports/core/shape/base/internal.rb +15 -20
  55. data/lib/thinreports/core/shape/base.rb +4 -5
  56. data/lib/thinreports/core/shape/basic/block_format.rb +3 -4
  57. data/lib/thinreports/core/shape/basic/block_interface.rb +9 -4
  58. data/lib/thinreports/core/shape/basic/block_internal.rb +9 -10
  59. data/lib/thinreports/core/shape/basic/format.rb +11 -10
  60. data/lib/thinreports/core/shape/basic/interface.rb +3 -3
  61. data/lib/thinreports/core/shape/basic/internal.rb +9 -6
  62. data/lib/thinreports/core/shape/basic.rb +1 -1
  63. data/lib/thinreports/core/shape/image_block/format.rb +5 -6
  64. data/lib/thinreports/core/shape/image_block/interface.rb +9 -7
  65. data/lib/thinreports/core/shape/image_block/internal.rb +5 -6
  66. data/lib/thinreports/core/shape/image_block.rb +1 -1
  67. data/lib/thinreports/core/shape/list/configuration.rb +37 -16
  68. data/lib/thinreports/core/shape/list/events.rb +11 -11
  69. data/lib/thinreports/core/shape/list/format.rb +27 -28
  70. data/lib/thinreports/core/shape/list/manager.rb +135 -95
  71. data/lib/thinreports/core/shape/list/page.rb +57 -51
  72. data/lib/thinreports/core/shape/list/page_state.rb +19 -17
  73. data/lib/thinreports/core/shape/list/section_format.rb +14 -15
  74. data/lib/thinreports/core/shape/list/section_interface.rb +15 -16
  75. data/lib/thinreports/core/shape/list/section_internal.rb +7 -8
  76. data/lib/thinreports/core/shape/list/store.rb +10 -11
  77. data/lib/thinreports/core/shape/list.rb +1 -1
  78. data/lib/thinreports/core/shape/manager/format.rb +10 -11
  79. data/lib/thinreports/core/shape/manager/internal.rb +22 -21
  80. data/lib/thinreports/core/shape/manager/target.rb +63 -34
  81. data/lib/thinreports/core/shape/manager.rb +1 -1
  82. data/lib/thinreports/core/shape/page_number/format.rb +25 -0
  83. data/lib/thinreports/core/shape/page_number/interface.rb +27 -0
  84. data/lib/thinreports/core/shape/page_number/internal.rb +57 -0
  85. data/lib/thinreports/core/shape/page_number.rb +15 -0
  86. data/lib/thinreports/core/shape/style/base.rb +29 -29
  87. data/lib/thinreports/core/shape/style/basic.rb +1 -1
  88. data/lib/thinreports/core/shape/style/graphic.rb +10 -25
  89. data/lib/thinreports/core/shape/style/text.rb +41 -31
  90. data/lib/thinreports/core/shape/style.rb +1 -1
  91. data/lib/thinreports/core/shape/text/format.rb +8 -9
  92. data/lib/thinreports/core/shape/text/interface.rb +2 -2
  93. data/lib/thinreports/core/shape/text/internal.rb +6 -7
  94. data/lib/thinreports/core/shape/text.rb +1 -1
  95. data/lib/thinreports/core/shape/text_block/format.rb +17 -17
  96. data/lib/thinreports/core/shape/text_block/formatter/basic.rb +13 -12
  97. data/lib/thinreports/core/shape/text_block/formatter/datetime.rb +8 -9
  98. data/lib/thinreports/core/shape/text_block/formatter/number.rb +11 -12
  99. data/lib/thinreports/core/shape/text_block/formatter/padding.rb +9 -32
  100. data/lib/thinreports/core/shape/text_block/formatter.rb +7 -8
  101. data/lib/thinreports/core/shape/text_block/interface.rb +2 -2
  102. data/lib/thinreports/core/shape/text_block/internal.rb +19 -20
  103. data/lib/thinreports/core/shape/text_block.rb +1 -1
  104. data/lib/thinreports/core/shape.rb +11 -13
  105. data/lib/thinreports/core/utils.rb +33 -32
  106. data/lib/thinreports/generator/base.rb +15 -24
  107. data/lib/thinreports/generator/configuration.rb +10 -9
  108. data/lib/thinreports/generator/pdf/configuration.rb +11 -6
  109. data/lib/thinreports/generator/pdf/document/draw_shape.rb +41 -32
  110. data/lib/thinreports/generator/pdf/document/font.rb +53 -44
  111. data/lib/thinreports/generator/pdf/document/graphics/attributes.rb +34 -25
  112. data/lib/thinreports/generator/pdf/document/graphics/basic.rb +25 -25
  113. data/lib/thinreports/generator/pdf/document/graphics/image.rb +15 -15
  114. data/lib/thinreports/generator/pdf/document/graphics/text.rb +43 -41
  115. data/lib/thinreports/generator/pdf/document/graphics.rb +8 -9
  116. data/lib/thinreports/generator/pdf/document/page.rb +37 -23
  117. data/lib/thinreports/generator/pdf/document/parse_color.rb +9 -10
  118. data/lib/thinreports/generator/pdf/document/parse_svg.rb +14 -15
  119. data/lib/thinreports/generator/pdf/document.rb +28 -28
  120. data/lib/thinreports/generator/pdf/drawer/base.rb +16 -22
  121. data/lib/thinreports/generator/pdf/drawer/list.rb +39 -21
  122. data/lib/thinreports/generator/pdf/drawer/list_section.rb +17 -18
  123. data/lib/thinreports/generator/pdf/drawer/page.rb +37 -26
  124. data/lib/thinreports/generator/pdf/prawn_ext.rb +18 -17
  125. data/lib/thinreports/generator/pdf.rb +28 -31
  126. data/lib/thinreports/generator.rb +6 -8
  127. data/lib/thinreports/layout/base.rb +24 -36
  128. data/lib/thinreports/layout/configuration.rb +11 -9
  129. data/lib/thinreports/layout/format.rb +26 -31
  130. data/lib/thinreports/layout/version.rb +8 -9
  131. data/lib/thinreports/layout.rb +2 -2
  132. data/lib/thinreports/report/base.rb +117 -109
  133. data/lib/thinreports/report/events.rb +5 -5
  134. data/lib/thinreports/report/internal.rb +48 -38
  135. data/lib/thinreports/{core → report}/page.rb +42 -32
  136. data/lib/thinreports/report.rb +10 -14
  137. data/lib/thinreports/version.rb +2 -3
  138. data/lib/thinreports.rb +14 -2
  139. data/test/data/font.ttf +0 -0
  140. data/test/data/layout_block.tlf +1 -0
  141. data/test/data/layout_list.tlf +1 -0
  142. data/test/data/layout_list_noheader.tlf +1 -0
  143. data/test/data/layout_text1.tlf +1 -0
  144. data/test/data/layout_text2.tlf +1 -0
  145. data/test/test_helper.rb +74 -0
  146. data/test/tmp/.gitkeep +0 -0
  147. data/test/unit/core/format/test_base.rb +14 -14
  148. data/test/unit/core/format/test_builder.rb +20 -25
  149. data/test/unit/core/shape/base/test_internal.rb +34 -37
  150. data/test/unit/core/shape/basic/test_basic_format.rb +4 -4
  151. data/test/unit/core/shape/basic/test_basic_interface.rb +15 -13
  152. data/test/unit/core/shape/basic/test_basic_internal.rb +19 -16
  153. data/test/unit/core/shape/basic/test_format.rb +4 -4
  154. data/test/unit/core/shape/basic/test_interface.rb +36 -46
  155. data/test/unit/core/shape/basic/test_internal.rb +29 -18
  156. data/test/unit/core/shape/image_block/test_format.rb +5 -5
  157. data/test/unit/core/shape/image_block/test_interface.rb +17 -16
  158. data/test/unit/core/shape/image_block/test_internal.rb +19 -16
  159. data/test/unit/core/shape/list/test_configuration.rb +50 -33
  160. data/test/unit/core/shape/list/test_events.rb +7 -7
  161. data/test/unit/core/shape/list/test_format.rb +16 -18
  162. data/test/unit/core/shape/list/test_manager.rb +15 -5
  163. data/test/unit/core/shape/list/test_page.rb +80 -22
  164. data/test/unit/core/shape/list/test_page_state.rb +13 -13
  165. data/test/unit/core/shape/list/test_section_format.rb +16 -17
  166. data/test/unit/core/shape/list/test_section_interface.rb +30 -22
  167. data/test/unit/core/shape/list/test_section_internal.rb +21 -19
  168. data/test/unit/core/shape/list/test_store.rb +7 -7
  169. data/test/unit/core/shape/manager/test_format.rb +11 -15
  170. data/test/unit/core/shape/manager/test_internal.rb +9 -9
  171. data/test/unit/core/shape/manager/test_target.rb +85 -57
  172. data/test/unit/core/shape/page_number/test_format.rb +73 -0
  173. data/test/unit/core/shape/page_number/test_interface.rb +33 -0
  174. data/test/unit/core/shape/page_number/test_internal.rb +81 -0
  175. data/test/unit/core/shape/styles/test_base.rb +9 -9
  176. data/test/unit/core/shape/styles/test_basic.rb +5 -5
  177. data/test/unit/core/shape/styles/test_graphic.rb +19 -33
  178. data/test/unit/core/shape/styles/test_text.rb +29 -7
  179. data/test/unit/core/shape/text/test_format.rb +6 -6
  180. data/test/unit/core/shape/text/test_internal.rb +11 -12
  181. data/test/unit/core/shape/text_block/formatter/test_basic.rb +16 -16
  182. data/test/unit/core/shape/text_block/formatter/test_datetime.rb +22 -20
  183. data/test/unit/core/shape/text_block/formatter/test_number.rb +34 -34
  184. data/test/unit/core/shape/text_block/formatter/test_padding.rb +44 -44
  185. data/test/unit/core/shape/text_block/test_format.rb +13 -8
  186. data/test/unit/core/shape/text_block/test_formatter.rb +17 -17
  187. data/test/unit/core/shape/text_block/test_interface.rb +37 -20
  188. data/test/unit/core/shape/text_block/test_internal.rb +38 -38
  189. data/test/unit/core/test_events.rb +10 -8
  190. data/test/unit/core/test_shape.rb +11 -7
  191. data/test/unit/core/test_utils.rb +68 -0
  192. data/test/unit/generator/pdf/document/graphics/test_attributes.rb +10 -4
  193. data/test/unit/generator/pdf/document/graphics/test_text.rb +60 -53
  194. data/test/unit/generator/pdf/document/test_draw_shape.rb +14 -6
  195. data/test/unit/generator/pdf/document/test_font.rb +79 -58
  196. data/test/unit/generator/pdf/document/test_graphics.rb +18 -19
  197. data/test/unit/generator/pdf/document/test_page.rb +68 -43
  198. data/test/unit/generator/pdf/document/test_parse_color.rb +5 -5
  199. data/test/unit/generator/pdf/test_configuration.rb +16 -9
  200. data/test/unit/generator/pdf/test_document.rb +8 -16
  201. data/test/unit/generator/test_base.rb +31 -42
  202. data/test/unit/generator/test_configuration.rb +6 -6
  203. data/test/unit/generator/test_pdf.rb +15 -21
  204. data/test/unit/layout/test_base.rb +34 -79
  205. data/test/unit/layout/test_configuration.rb +12 -37
  206. data/test/unit/layout/test_format.rb +36 -39
  207. data/test/unit/layout/test_version.rb +4 -4
  208. data/test/unit/report/test_base.rb +160 -192
  209. data/test/unit/report/test_events.rb +4 -4
  210. data/test/unit/report/test_internal.rb +102 -82
  211. data/test/unit/test_config.rb +31 -12
  212. data/test/unit/test_layout.rb +7 -7
  213. data/test/unit/test_report.rb +12 -24
  214. data/thinreports.gemspec +23 -26
  215. metadata +118 -181
  216. data/.yardopts +0 -1
  217. data/LICENSE +0 -1
  218. data/README.rdoc +0 -167
  219. data/doc/yardoc_templates/default/layout/html/footer.erb +0 -10
  220. data/lib/thinreports/core/ext/array.rb +0 -19
  221. data/lib/thinreports/core/ext/hash.rb +0 -19
  222. data/lib/thinreports/core/ext/object.rb +0 -25
  223. data/lib/thinreports/core/ext.rb +0 -5
  224. data/lib/thinreports/core/format.rb +0 -14
  225. data/lib/thinreports/core/ordered_hash.rb +0 -39
  226. data/lib/thinreports/core.rb +0 -20
  227. data/lib/thinreports/generator/pdf/drawer.rb +0 -16
  228. data/tasks/doc.rake +0 -13
  229. data/tasks/test.rake +0 -56
  230. data/test/benchmark/basic_estimate.tlf +0 -1
  231. data/test/benchmark/bench_basic_estimate.rb +0 -95
  232. data/test/case/character_spacing/character_spacing.rb +0 -7
  233. data/test/case/character_spacing/character_spacing.tlf +0 -1
  234. data/test/case/dynamic_image/dynamic_image.rb +0 -41
  235. data/test/case/dynamic_image/dynamic_image.tlf +0 -1
  236. data/test/case/dynamic_style/dynamic_style.rb +0 -154
  237. data/test/case/dynamic_style/dynamic_style.tlf +0 -1
  238. data/test/case/dynamic_style/dynamic_style_in_list.tlf +0 -1
  239. data/test/case/eudc/eudc.rb +0 -20
  240. data/test/case/eudc/eudc.tlf +0 -1
  241. data/test/case/helper.rb +0 -29
  242. data/test/case/hidden_shapes/hidden_shapes.rb +0 -13
  243. data/test/case/hidden_shapes/hidden_shapes.tlf +0 -1
  244. data/test/case/list_events/list_events.rb +0 -32
  245. data/test/case/list_events/list_events.tlf +0 -1
  246. data/test/case/list_header_inheriting/list_header_inheriting.rb +0 -17
  247. data/test/case/list_header_inheriting/list_header_inheriting.tlf +0 -1
  248. data/test/case/list_manual_generation/list_manual_generation.rb +0 -22
  249. data/test/case/list_manual_generation/list_manual_generation.tlf +0 -1
  250. data/test/case/single_line_tblock/single_line_tblock.rb +0 -15
  251. data/test/case/single_line_tblock/single_line_tblock.tlf +0 -1
  252. data/test/case/tblock_overflow/tblock_overflow.rb +0 -20
  253. data/test/case/tblock_overflow/tblock_overflow.tlf +0 -1
  254. data/test/case/tblock_styles/tblock_styles.rb +0 -27
  255. data/test/case/tblock_styles/tblock_styles.tlf +0 -1
  256. data/test/case/text_align/text_align.rb +0 -9
  257. data/test/case/text_align/text_align.tlf +0 -1
  258. data/test/unit/core/ext/array_spec.rb +0 -29
  259. data/test/unit/core/ext/hash_spec.rb +0 -29
  260. data/test/unit/core/ext/object_spec.rb +0 -30
  261. data/test/unit/core/ordered_hash_spec.rb +0 -51
  262. data/test/unit/core/shape/base/test_interface.rb +0 -52
  263. data/test/unit/core/utils_spec.rb +0 -56
  264. data/test/unit/data/basic_layout1.tlf +0 -1
  265. data/test/unit/data/basic_layout2.tlf +0 -1
  266. data/test/unit/data/basic_list_layout.tlf +0 -1
  267. data/test/unit/data/basic_list_noheader_layout.tlf +0 -1
  268. data/test/unit/helper.rb +0 -65
  269. /data/{test/case → examples}/dynamic_image/img200x100.png +0 -0
  270. /data/{test/case → examples}/dynamic_image/img50x50.png +0 -0
  271. /data/{test/case → examples}/dynamic_style/image.png +0 -0
  272. /data/{test/case → examples}/eudc/eudc.ttf +0 -0
  273. /data/{resources/fonts → fonts}/IPA_Font_License_Agreement_v1.0.txt +0 -0
  274. /data/{resources/fonts → fonts}/ipag.ttf +0 -0
  275. /data/{resources/fonts → fonts}/ipagp.ttf +0 -0
  276. /data/{resources/fonts → fonts}/ipam.ttf +0 -0
  277. /data/{resources/fonts → fonts}/ipamp.ttf +0 -0
@@ -1,306 +1,274 @@
1
1
  # coding: utf-8
2
2
 
3
- require 'test/unit/helper'
3
+ require 'test_helper'
4
+
5
+ class Thinreports::Report::TestBase < Minitest::Test
6
+ include Thinreports::TestHelper
4
7
 
5
- class ThinReports::Report::TestBase < MiniTest::Unit::TestCase
6
- include ThinReports::TestHelpers
7
-
8
8
  # Alias
9
- Report = ThinReports::Report
10
-
9
+ Report = Thinreports::Report
10
+
11
11
  def setup
12
12
  @report = Report::Base.new
13
13
  end
14
-
14
+
15
+ def test_on_page_create_callback
16
+ report = Report::Base.new layout: data_file('layout_text1.tlf')
17
+
18
+ counter = 0
19
+ callback = -> page {
20
+ assert_instance_of Report::Page, page
21
+ counter += 1
22
+ }
23
+
24
+ report.on_page_create(&callback)
25
+
26
+ 2.times { report.start_new_page }
27
+ assert_equal counter, 2
28
+ end
29
+
15
30
  def test_initialize_should_register_layout_as_default_when_layout_is_specified_as_the_option
16
- report = Report::Base.new :layout => data_file('basic_layout1.tlf')
17
- assert_equal report.default_layout.filename, data_file('basic_layout1.tlf')
31
+ report = Report::Base.new layout: data_file('layout_text1.tlf')
32
+ assert_equal report.default_layout.filename, data_file('layout_text1.tlf')
18
33
  end
19
-
34
+
20
35
  def test_initialize_should_initialize_new_Report_without_default_layout
21
36
  assert_nil @report.default_layout
22
37
  end
23
-
38
+
24
39
  def test_use_layout_should_register_default_layout_when_default_property_is_omitted
25
- @report.use_layout(data_file('basic_layout1.tlf'))
26
-
27
- assert_equal @report.default_layout.filename, data_file('basic_layout1.tlf')
40
+ @report.use_layout(data_file('layout_text1.tlf'))
41
+
42
+ assert_equal @report.default_layout.filename, data_file('layout_text1.tlf')
28
43
  end
29
-
44
+
30
45
  def test_use_layout_should_register_default_layout_when_default_property_is_true
31
- @report.use_layout(data_file('basic_layout2.tlf'), :default => true)
32
-
33
- assert_equal @report.default_layout.filename, data_file('basic_layout2.tlf')
46
+ @report.use_layout(data_file('layout_text2.tlf'), default: true)
47
+
48
+ assert_equal @report.default_layout.filename, data_file('layout_text2.tlf')
34
49
  end
35
-
50
+
36
51
  def test_start_new_page_should_properly_create_a_new_Page_and_return
37
- @report.use_layout(data_file('basic_layout1'))
38
-
39
- assert_instance_of ThinReports::Core::Page, @report.start_new_page
52
+ @report.use_layout(data_file('layout_text1'))
53
+
54
+ assert_instance_of Thinreports::Report::Page, @report.start_new_page
40
55
  end
41
-
56
+
42
57
  def test_start_new_page_should_raise_when_the_layout_has_not_been_registered_yet
43
- assert_raises ThinReports::Errors::NoRegisteredLayoutFound do
44
- @report.start_new_page(:layout => :unknown)
58
+ assert_raises Thinreports::Errors::NoRegisteredLayoutFound do
59
+ @report.start_new_page(layout: :unknown)
45
60
  end
46
61
  end
47
-
62
+
48
63
  def test_start_new_page_should_create_a_new_page_using_a_default_layout
49
- @report.use_layout(data_file('basic_layout1.tlf'), :default => true)
50
-
51
- assert_equal @report.start_new_page.layout.filename, data_file('basic_layout1.tlf')
64
+ @report.use_layout(data_file('layout_text1.tlf'), default: true)
65
+
66
+ assert_equal @report.start_new_page.layout.filename, data_file('layout_text1.tlf')
52
67
  end
53
-
68
+
54
69
  def test_start_new_page_should_create_a_new_page_using_a_layout_with_specified_id
55
- @report.use_layout(data_file('basic_layout1.tlf'), :id => :foo)
56
-
57
- assert_equal @report.start_new_page(:layout => :foo).layout.filename,
58
- data_file('basic_layout1.tlf')
70
+ @report.use_layout(data_file('layout_text1.tlf'), id: :foo)
71
+
72
+ assert_equal @report.start_new_page(layout: :foo).layout.filename,
73
+ data_file('layout_text1.tlf')
59
74
  end
60
-
75
+
61
76
  def test_start_new_page_should_create_a_new_page_using_a_specified_layoutfile
62
- new_page = @report.start_new_page(:layout => data_file('basic_layout1.tlf'))
63
- assert_equal new_page.layout.filename, data_file('basic_layout1.tlf')
77
+ new_page = @report.start_new_page(layout: data_file('layout_text1.tlf'))
78
+ assert_equal new_page.layout.filename, data_file('layout_text1.tlf')
79
+ end
80
+
81
+ def test_start_new_page_with_count_option
82
+ @report.use_layout data_file('layout_text1.tlf'), default: true
83
+
84
+ new_page = @report.start_new_page count: false
85
+ assert_nil new_page.no
86
+ assert_equal @report.page_count, 0
87
+
88
+ new_page = @report.start_new_page count: true
89
+ assert_equal new_page.no, 1
90
+ assert_equal @report.page_count, 1
91
+
92
+ new_page = @report.start_new_page
93
+ assert_equal new_page.no, 2
94
+ assert_equal @report.page_count, 2
64
95
  end
65
-
96
+
66
97
  def test_add_blank_page_should_properly_create_a_new_blank_page
67
- @report.use_layout(data_file('basic_layout1'))
68
-
69
- assert_instance_of ThinReports::Core::BlankPage, @report.add_blank_page
98
+ @report.use_layout(data_file('layout_text1'))
99
+
100
+ assert_instance_of Thinreports::Report::BlankPage, @report.add_blank_page
70
101
  end
71
-
102
+
72
103
  def test_layout_should_return_the_default_layout_with_no_arguments
73
- @report.use_layout(data_file('basic_layout1.tlf'), :default => true)
74
-
75
- assert_equal @report.layout.filename, data_file('basic_layout1.tlf')
104
+ @report.use_layout(data_file('layout_text1.tlf'), default: true)
105
+
106
+ assert_equal @report.layout.filename, data_file('layout_text1.tlf')
76
107
  end
77
-
108
+
78
109
  def test_layout_should_raise_when_the_specified_layout_is_not_found
79
- assert_raises ThinReports::Errors::UnknownLayoutId do
110
+ assert_raises Thinreports::Errors::UnknownLayoutId do
80
111
  @report.layout(:unknown_layout_id)
81
112
  end
82
113
  end
83
-
114
+
84
115
  def test_layout_should_return_the_layout_with_specified_id
85
- @report.use_layout(data_file('basic_layout2.tlf'), :id => :foo)
86
-
87
- assert_equal @report.layout(:foo).filename, data_file('basic_layout2.tlf')
88
- end
89
-
90
- def test_generate_should_properly_initialize_Generator_and_call_generate_method_when_type_is_specified
91
- flexmock(ThinReports::Generator).
92
- should_receive(:new).
93
- with(:pdf, @report, {:option => :value}).
94
- and_return(flexmock(:generate => 'Success')).once
95
-
96
- assert_equal @report.generate(:pdf, :option => :value), 'Success'
97
- end
98
-
99
- def test_generate_should_properly_initialize_Generator_and_call_generate_method_when_type_is_omitted
100
- flexmock(ThinReports::Generator).
101
- should_receive(:new).
102
- with(:pdf, @report, {:option => :value}).
103
- and_return(flexmock(:generate => 'Success')).once
104
-
105
- assert_equal @report.generate(:option => :value), 'Success'
106
- end
107
-
108
- def test_generate_file_should_properly_initialize_Generator_and_call_generate_file_method_when_type_is_specified
109
- generator = flexmock('generator')
110
- generator.should_receive(:generate_file).with('output.pdf').once
111
-
112
- flexmock(ThinReports::Generator).
113
- should_receive(:new).
114
- with(:pdf, @report, {}).
115
- and_return(generator).once
116
-
117
- @report.generate_file(:pdf, 'output.pdf')
118
- end
119
-
120
- def test_generate_file_should_properly_initialize_Generator_and_call_generate_file_method_when_type_is_omitted
121
- generator = flexmock('generator')
122
- generator.should_receive(:generate_file).with('output.pdf').once
123
-
124
- flexmock(ThinReports::Generator).
125
- should_receive(:new).
126
- with(:pdf, @report, {:option => :value}).
127
- and_return(generator).once
128
-
129
- @report.generate_file('output.pdf', :option => :value)
130
- end
131
-
116
+ @report.use_layout(data_file('layout_text2.tlf'), id: :foo)
117
+
118
+ assert_equal @report.layout(:foo).filename, data_file('layout_text2.tlf')
119
+ end
120
+
121
+ def test_generate_with_filename
122
+ report = Report::Base.new layout: data_file('layout_text1.tlf')
123
+
124
+ report.generate :pdf, filename: temp_path.join('result1.pdf')
125
+ report.generate filename: temp_path.join('result2.pdf')
126
+
127
+ assert File.exists?(temp_path.join('result1.pdf'))
128
+ assert File.exists?(temp_path.join('result2.pdf'))
129
+
130
+ assert_equal File.read(temp_path.join('result1.pdf')),
131
+ File.read(temp_path.join('result2.pdf'))
132
+ end
133
+
132
134
  def test_events_should_return_Report_Events
133
- assert_instance_of ThinReports::Report::Events, @report.events
135
+ assert_instance_of Thinreports::Report::Events, @report.events
136
+ end
137
+
138
+ def test_events_should_deprecated
139
+ out, err = capture_io do
140
+ @report.events
141
+ end
142
+ assert_includes err, '[DEPRECATION]'
134
143
  end
135
-
144
+
136
145
  def test_page_should_return_the_current_page
137
- @report.use_layout(data_file('basic_layout1.tlf'))
146
+ @report.use_layout(data_file('layout_text1.tlf'))
138
147
  @report.start_new_page
139
-
140
- assert_instance_of ThinReports::Core::Page, @report.page
148
+
149
+ assert_instance_of Thinreports::Report::Page, @report.page
141
150
  end
142
-
151
+
143
152
  def test_page_count_should_return_total_page_count
144
- @report.use_layout(data_file('basic_layout1.tlf'))
153
+ @report.use_layout(data_file('layout_text1.tlf'))
145
154
  2.times { @report.start_new_page }
146
-
155
+
147
156
  assert_equal @report.page_count, 2
148
157
  end
149
-
158
+
150
159
  def test_finalize_should_finalize_report
151
160
  @report.finalize
152
161
  assert_equal @report.finalized?, true
153
162
  end
154
-
163
+
155
164
  def test_finalized_asker_should_return_false_when_report_has_not_been_finalized_yet
156
165
  assert_equal @report.finalized?, false
157
166
  end
158
-
167
+
159
168
  def test_finalized_asker_should_return_true_when_report_is_already_finalized
160
169
  @report.finalize
161
170
  assert_equal @report.finalized?, true
162
171
  end
163
-
172
+
164
173
  def test_list_should_create_new_page_when_page_is_not_created
165
- @report.use_layout(data_file('basic_list_layout.tlf'))
174
+ @report.use_layout(data_file('layout_list.tlf'))
166
175
  @report.list(:list)
167
-
176
+
168
177
  refute_nil @report.page
169
178
  end
170
-
179
+
171
180
  def test_list_should_create_new_page_when_page_is_finalized
172
181
  @report.tap do |r|
173
- r.use_layout(data_file('basic_list_layout.tlf'))
182
+ r.use_layout(data_file('layout_list.tlf'))
174
183
  r.start_new_page
175
184
  r.page.finalize
176
185
  end
177
186
  @report.list(:list)
178
-
187
+
179
188
  assert_equal @report.page.finalized?, false
180
189
  end
181
-
190
+
182
191
  def test_list_should_properly_return_shape_with_the_specified_id
183
- @report.use_layout(data_file('basic_list_layout.tlf'))
184
-
192
+ @report.use_layout(data_file('layout_list.tlf'))
193
+
185
194
  assert_equal @report.list(:list).id, 'list'
186
195
  end
187
-
196
+
197
+ def test_start_page_number
198
+ assert_equal @report.start_page_number, 1
199
+ @report.start_page_number_from 10
200
+ assert_equal @report.start_page_number, 10
201
+ end
202
+
188
203
  def test_Base_create_should_finalize_report
189
204
  report = Report::Base.create do |r|
190
205
  assert_instance_of Report::Base, r
191
206
  end
192
207
  assert_equal report.finalized?, true
193
208
  end
194
-
209
+
195
210
  def test_Base_create_should_raise_when_no_block_given
196
211
  assert_raises ArgumentError do
197
212
  Report::Base.create
198
213
  end
199
214
  end
200
-
201
- def test_Base_generate_should_properly_generate_when_type_is_specified
202
- flexmock(Report::Base).new_instances.
203
- should_receive(:generate).
204
- with(:pdf, :option => :value).once
205
-
206
- flexmock(Report::Base).
207
- should_receive(:create).
208
- with({:layout => 'layout.tlf'}, Proc).
209
- and_return(Report::Base.new).once
210
-
211
- Report::Base.generate(:pdf, :report => {:layout => 'layout.tlf'},
212
- :generator => {:option => :value}) {}
213
- end
214
-
215
- def test_Base_generate_should_properly_generate_when_type_is_omitted
216
- flexmock(Report::Base).new_instances.
217
- should_receive(:generate).
218
- with({}).once
219
-
220
- flexmock(Report::Base).
221
- should_receive(:create).
222
- with({}, Proc).
223
- and_return(Report::Base.new).once
224
-
225
- Report::Base.generate {}
226
- end
227
-
228
- def test_Base_generate_file_should_properly_generate_file_when_type_is_specified
229
- flexmock(Report::Base).new_instances.
230
- should_receive(:generate_file).
231
- with(:pdf, 'output.pdf', {}).once
232
-
233
- flexmock(Report::Base).
234
- should_receive(:create).
235
- with({:layout => 'layout.tlf'}, Proc).
236
- and_return(Report::Base.new).once
237
-
238
- Report::Base.generate_file(:pdf, 'output.pdf', :report => {:layout => 'layout.tlf'}) {}
239
- end
240
-
241
- def test_Base_generate_file_should_properly_generate_file_when_type_is_omitted
242
- flexmock(Report::Base).new_instances.
243
- should_receive(:generate_file).
244
- with('output.pdf', :option => :value).once
245
-
246
- flexmock(Report::Base).
247
- should_receive(:create).
248
- with({}, Proc).
249
- and_return(Report::Base.new).once
250
-
251
- Report::Base.generate_file('output.pdf', :generator => {:option => :value}) {}
252
- end
253
-
215
+
216
+ def test_Base_generate_with_filename
217
+ layout_file = data_file 'layout_text1.tlf'
218
+
219
+ Report::Base.generate(:pdf, report: { layout: layout_file },
220
+ generator: { filename: temp_path.join('result1.pdf') }) {}
221
+ Report::Base.generate(report: { layout: layout_file },
222
+ generator: { filename: temp_path.join('result2.pdf') }) {}
223
+
224
+ assert_equal temp_path.join('result1.pdf').read,
225
+ temp_path.join('result2.pdf').read
226
+ end
227
+
254
228
  def test_Base_generate_should_raise_when_no_block_given
255
229
  assert_raises ArgumentError do
256
230
  Report::Base.generate(:pdf)
257
231
  end
258
232
  end
259
-
260
- def test_Base_generate_file_should_raise_when_no_block_given
261
- assert_raises ArgumentError do
262
- Report::Base.generate_file(:pdf, 'output.pdf')
263
- end
264
- end
265
-
233
+
266
234
  def test_Base_extract_options_should_return_as_report_option_the_value_which_has_report_in_a_key
267
- report, generator = Report::Base.send(:extract_options!, [{:report => {:layout => 'hoge.tlf'}}])
235
+ report, generator = Report::Base.send(:extract_options!, [{report: {layout: 'hoge.tlf'}}])
268
236
  assert_equal report[:layout], 'hoge.tlf'
269
237
  end
270
-
238
+
271
239
  def test_Base_extract_options_should_operate_an_argument_destructively
272
- args = [:pdf, 'output.pdf', {:report => {:layout => 'foo.tlf'}}]
240
+ args = [:pdf, 'output.pdf', {report: {layout: 'foo.tlf'}}]
273
241
  Report::Base.send(:extract_options!, args)
274
242
  assert_equal args, [:pdf, 'output.pdf']
275
243
  end
276
-
244
+
277
245
  def test_Base_extract_options_should_include_the_layout_key_in_the_report_option
278
- report, generator = Report::Base.send(:extract_options!, [{:layout => 'hoge.tlf'}])
246
+ report, generator = Report::Base.send(:extract_options!, [{layout: 'hoge.tlf'}])
279
247
  assert_equal report[:layout], 'hoge.tlf'
280
248
  end
281
-
249
+
282
250
  def test_Base_extract_options_should_give_priority_to_the_value_of_the_layout_key_over_in_the_report_option
283
251
  report, generator = Report::Base.send(:extract_options!,
284
- [{:report => {:layout => 'foo.tlf'}, :layout => 'hoge.tlf'}])
252
+ [{report: {layout: 'foo.tlf'}, layout: 'hoge.tlf'}])
285
253
  assert_equal report[:layout], 'hoge.tlf'
286
254
  end
287
-
255
+
288
256
  def test_Base_extract_options_should_return_as_generator_option_the_value_which_has_generator_in_a_key
289
257
  report, generator = Report::Base.send(:extract_options!,
290
- [{:generator => {:option => 'value'}}])
258
+ [{generator: {option: 'value'}}])
291
259
  assert_equal generator[:option], 'value'
292
260
  end
293
-
261
+
294
262
  def test_Base_extract_options_should_give_priority_to_the_value_of_other_keys_over_in_the_generator_option
295
263
  report, generator = Report::Base.send(:extract_options!,
296
- [{:generator => {:option => 'value1'}, :option => 'value2'}])
264
+ [{generator: {option: 'value1'}, option: 'value2'}])
297
265
  assert_equal generator[:option], 'value2'
298
266
  end
299
-
267
+
300
268
  def test_Base_extract_options_should_return_all_the_values_except_the_report_option_as_a_generator_option
301
269
  report, generator = Report::Base.send(:extract_options!,
302
- [{:report => {:layout => 'foo.tlf'}, :layout => 'hoge.tlf',
303
- :generator_opt1 => 'value1', :generator_opt2 => 'value2'}])
270
+ [{report: {layout: 'foo.tlf'}, layout: 'hoge.tlf',
271
+ generator_opt1: 'value1', generator_opt2: 'value2'}])
304
272
  assert_equal generator.values_at(:generator_opt1, :generator_opt2),
305
273
  ['value1', 'value2']
306
274
  end
@@ -1,12 +1,12 @@
1
1
  # coding: utf-8
2
2
 
3
- require 'test/unit/helper'
3
+ require 'test_helper'
4
4
 
5
- class ThinReports::Report::TestEvents < MiniTest::Unit::TestCase
6
- include ThinReports::TestHelpers
5
+ class Thinreports::Report::TestEvents < Minitest::Test
6
+ include Thinreports::TestHelper
7
7
 
8
8
  # Alias
9
- Report = ThinReports::Report
9
+ Report = Thinreports::Report
10
10
 
11
11
  def test_event_types
12
12
  events = Report::Events.new