thinreports 0.7.6 → 0.8.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 (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