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,75 +1,133 @@
1
1
  # coding: utf-8
2
2
 
3
- require 'test/unit/helper'
3
+ require 'test_helper'
4
+
5
+ class Thinreports::Core::Shape::List::TestPage < Minitest::Test
6
+ include Thinreports::TestHelper
4
7
 
5
- class ThinReports::Core::Shape::List::TestPage < MiniTest::Unit::TestCase
6
- include ThinReports::TestHelpers
7
-
8
8
  # Alias
9
- List = ThinReports::Core::Shape::List
10
-
9
+ List = Thinreports::Core::Shape::List
10
+
11
11
  def create_report(&block)
12
- create_basic_report('basic_list_layout.tlf', &block)
12
+ new_report('layout_list.tlf', &block)
13
13
  end
14
-
14
+
15
15
  def create_report_for_checking_dispatched_event(event)
16
16
  @target_event = event
17
17
  @is_dispatched = false
18
-
18
+
19
19
  create_report do |r|
20
20
  r.layout.config.list(:list) do |list|
21
21
  list.events.on(event) {|e| @is_dispatched = true }
22
22
  end
23
23
  end
24
24
  end
25
-
25
+
26
26
  def assert_dispatched_event
27
27
  assert @is_dispatched, "The :#{@target_event} event was not dispatched."
28
28
  end
29
-
29
+
30
+ def test_on_page_finalize_callback
31
+ report = create_report
32
+ list = report.list(:list)
33
+
34
+ counter = 0
35
+ callback = -> { counter += 1 }
36
+
37
+ list.on_page_finalize(&callback)
38
+
39
+ 5.times { list.add_row }
40
+ assert_equal 1, counter
41
+
42
+ report.generate
43
+ assert_equal 2, counter
44
+ end
45
+
46
+ def test_on_page_footer_insert_callback
47
+ report = create_report
48
+ list = report.list(:list)
49
+
50
+ tester = 0
51
+ callback = -> footer {
52
+ assert_instance_of List::SectionInterface, footer
53
+ assert_equal footer.internal.section_name, :page_footer
54
+
55
+ tester += 1
56
+ }
57
+
58
+ list.on_page_footer_insert(&callback)
59
+
60
+ 5.times { list.add_row }
61
+ assert_equal 1, tester
62
+
63
+ report.generate
64
+ assert_equal 2, tester
65
+ end
66
+
67
+ def test_on_footer_insert_callback
68
+ report = create_report
69
+ list = report.list(:list)
70
+
71
+ tester = 0
72
+ callback = -> footer {
73
+ assert_instance_of List::SectionInterface, footer
74
+ assert_equal footer.internal.section_name, :footer
75
+
76
+ tester += 1
77
+ }
78
+
79
+ list.on_footer_insert(&callback)
80
+
81
+ 5.times { list.add_row }
82
+ assert_equal 0, tester
83
+
84
+ report.generate
85
+ assert_equal 1, tester
86
+ end
87
+
30
88
  def test_page_finalize_event_should_be_dispatched_when_page_break_is_called
31
89
  report = create_report_for_checking_dispatched_event :page_finalize
32
90
  report.start_new_page do
33
91
  list(:list).page_break
34
92
  end
35
-
93
+
36
94
  assert_dispatched_event
37
95
  end
38
-
96
+
39
97
  def test_page_finalize_event_should_be_dispatched_when_list_was_overflowed
40
98
  report = create_report_for_checking_dispatched_event :page_finalize
41
99
  report.start_new_page do
42
100
  6.times { list(:list).add_row }
43
101
  end
44
-
102
+
45
103
  assert_dispatched_event
46
104
  end
47
-
105
+
48
106
  def test_page_finalize_event_should_be_dispatched_when_a_new_page_is_created
49
107
  report = create_report_for_checking_dispatched_event :page_finalize
50
108
  report.start_new_page do
51
109
  list(:list).add_row
52
110
  end
53
111
  report.start_new_page
54
-
112
+
55
113
  assert_dispatched_event
56
114
  end
57
-
115
+
58
116
  def test_page_finalize_event_should_be_dispatched_when_report_is_finalized
59
117
  report = create_report_for_checking_dispatched_event :page_finalize
60
118
  report.start_new_page do
61
119
  list(:list).add_row
62
120
  end
63
121
  report.finalize
64
-
122
+
65
123
  assert_dispatched_event
66
124
  end
67
-
125
+
68
126
  def test_copy_should_properly_work_when_list_has_not_header
69
- report = create_basic_report('basic_list_noheader_layout.tlf')
70
-
127
+ report = new_report('layout_list_noheader.tlf')
128
+
71
129
  10.times {|t| report.list.add_row }
72
130
  rescue => e
73
131
  flunk exception_details(e, 'Not worked when list has not header')
74
132
  end
75
- end
133
+ end
@@ -1,31 +1,31 @@
1
1
  # coding: utf-8
2
2
 
3
- require 'test/unit/helper'
3
+ require 'test_helper'
4
+
5
+ class Thinreports::Core::Shape::List::TestPageState < Minitest::Test
6
+ include Thinreports::TestHelper
4
7
 
5
- class ThinReports::Core::Shape::List::TestPageState < MiniTest::Unit::TestCase
6
- include ThinReports::TestHelpers
7
-
8
8
  # Alias
9
- List = ThinReports::Core::Shape::List
10
-
9
+ List = Thinreports::Core::Shape::List
10
+
11
11
  def setup
12
- parent = flexmock('parent')
13
- format = flexmock('format')
14
-
12
+ parent = mock('parent')
13
+ format = mock('format')
14
+
15
15
  @state = List::PageState.new(parent, format)
16
16
  end
17
-
17
+
18
18
  def test_alias_class
19
19
  assert_same List::PageState, List::Internal
20
20
  end
21
-
21
+
22
22
  def test_type_of?
23
23
  assert_equal @state.type_of?(:list), true
24
24
  end
25
-
25
+
26
26
  def test_finalized!
27
27
  assert_equal @state.finalized?, false
28
28
  @state.finalized!
29
29
  assert_equal @state.finalized?, true
30
30
  end
31
- end
31
+ end
@@ -1,10 +1,10 @@
1
1
  # coding: utf-8
2
2
 
3
- require 'test/unit/helper'
3
+ require 'test_helper'
4
+
5
+ class Thinreports::Core::Shape::List::TestSectionFormat < Minitest::Test
6
+ include Thinreports::TestHelper
4
7
 
5
- class ThinReports::Core::Shape::List::TestSectionFormat < MiniTest::Unit::TestCase
6
- include ThinReports::TestHelpers
7
-
8
8
  TEST_LIST_SECTION_FORMAT = {
9
9
  "height" => 47.7,
10
10
  "translate" => {"x" => 0, "y" => -64.2},
@@ -15,32 +15,31 @@ class ThinReports::Core::Shape::List::TestSectionFormat < MiniTest::Unit::TestCa
15
15
  "<!---SHAPE{\"type\":\"s-tblock\",\"id\":\"t2\"}SHAPE--->"
16
16
  }
17
17
  }
18
-
19
- Shape = ThinReports::Core::Shape
20
-
18
+
19
+ Shape = Thinreports::Core::Shape
20
+
21
21
  def test_build
22
- shape_format = flexmock(:id => 'mock')
23
-
24
- flexmock(Shape::TextBlock::Format).
25
- should_receive(:build).times(2).and_return(shape_format)
26
- flexmock(Shape::Basic::Format).
27
- should_receive(:build).times(1).and_return(shape_format)
22
+ shape_format = stub(id: 'mock')
23
+
24
+ Shape::TextBlock::Format.expects(:build).returns(shape_format).times(2)
25
+ Shape::Basic::Format.expects(:build).returns(shape_format).times(1)
26
+
28
27
  begin
29
28
  build_format
30
29
  rescue => e
31
30
  flunk exception_details(e, 'Building failed.')
32
31
  end
33
32
  end
34
-
33
+
35
34
  def test_config_readers
36
35
  format = Shape::List::SectionFormat.new(TEST_LIST_SECTION_FORMAT)
37
-
36
+
38
37
  assert_equal format.height, 47.7
39
38
  assert_equal format.relative_left, 0
40
39
  assert_equal format.relative_top, -64.2
41
40
  end
42
-
41
+
43
42
  def build_format
44
43
  Shape::List::SectionFormat.build(TEST_LIST_SECTION_FORMAT.dup)
45
44
  end
46
- end
45
+ end
@@ -1,59 +1,67 @@
1
1
  # coding: utf-8
2
2
 
3
- require 'test/unit/helper'
3
+ require 'test_helper'
4
+
5
+ class Thinreports::Core::Shape::List::TestSectionInterface < Minitest::Test
6
+ include Thinreports::TestHelper
4
7
 
5
- class ThinReports::Core::Shape::List::TestSectionInterface < MiniTest::Unit::TestCase
6
- include ThinReports::TestHelpers
7
-
8
8
  # Alias
9
- List = ThinReports::Core::Shape::List
10
-
9
+ List = Thinreports::Core::Shape::List
10
+
11
+ def setup
12
+ @report = new_report 'layout_text1'
13
+ end
14
+
11
15
  def create_interface(format_config = {})
12
- List::SectionInterface.new(flexmock('parent'),
16
+ parent = @report.start_new_page
17
+
18
+ List::SectionInterface.new parent,
13
19
  List::SectionFormat.new(format_config),
14
- :section)
20
+ :section
15
21
  end
16
-
22
+
17
23
  def test_internal_should_return_instance_of_SectionInternal
18
24
  assert_instance_of List::SectionInternal, create_interface.internal
19
25
  end
20
-
26
+
21
27
  def test_initialize_should_properly_set_the_specified_section_name_to_internal
22
28
  assert_equal create_interface.internal.section_name, :section
23
29
  end
24
-
30
+
25
31
  def test_initialize_should_properly_initialize_manager
26
- assert_instance_of ThinReports::Core::Shape::Manager::Internal,
32
+ assert_instance_of Thinreports::Core::Shape::Manager::Internal,
27
33
  create_interface.manager
28
34
  end
29
-
35
+
30
36
  def test_height_should_operate_as_delegator_of_internal
31
37
  list = create_interface('height' => 100)
32
38
  assert_same list.height, list.internal.height
33
39
  end
34
-
40
+
35
41
  def test_copied_interface_should_succeed_an_section_name_of_original
36
42
  list = create_interface
37
- assert_same list.copy(flexmock('new_parent')).internal.section_name,
43
+ new_parent = @report.start_new_page
44
+
45
+ assert_same list.copy(new_parent).internal.section_name,
38
46
  list.internal.section_name
39
47
  end
40
-
48
+
41
49
  def test_copied_interface_should_have_all_the_copies_of_Shape_which_original_holds
42
50
  list = create_interface
43
51
  copied_list(list) do |new_list|
44
52
  assert_equal new_list.manager.shapes.size, 3
45
53
  end
46
54
  end
47
-
55
+
48
56
  def copied_list(list, &block)
49
- tblock = ThinReports::Core::Shape::TextBlock
50
- new_parent = flexmock('new_parent')
51
-
57
+ tblock = Thinreports::Core::Shape::TextBlock
58
+ new_parent = @report.start_new_page
59
+
52
60
  %w( foo bar hoge ).each do |id|
53
61
  list.manager.format.shapes[id.to_sym] = tblock::Format.new('type' => 's-tblock', 'id' => id)
54
62
  list.item(id).value(10)
55
63
  end
56
-
64
+
57
65
  block.call(list.copy(new_parent))
58
66
  end
59
- end
67
+ end
@@ -1,55 +1,57 @@
1
1
  # coding: utf-8
2
2
 
3
- require 'test/unit/helper'
3
+ require 'test_helper'
4
+
5
+ class Thinreports::Core::Shape::List::TestSectionInternal < Minitest::Test
6
+ include Thinreports::TestHelper
4
7
 
5
- class ThinReports::Core::Shape::List::TestSectionInternal < MiniTest::Unit::TestCase
6
- include ThinReports::TestHelpers
7
-
8
8
  # Alias
9
- List = ThinReports::Core::Shape::List
10
-
9
+ List = Thinreports::Core::Shape::List
10
+
11
11
  def create_internal(format_config = {})
12
- List::SectionInternal.new(flexmock('parent'),
13
- List::SectionFormat.new(format_config))
12
+ report = new_report 'layout_text1'
13
+ parent = report.start_new_page
14
+
15
+ List::SectionInternal.new report, List::SectionFormat.new(format_config)
14
16
  end
15
-
17
+
16
18
  def test_height_should_operate_as_delegator_of_format
17
19
  list = create_internal('height' => 100)
18
20
  assert_same list.height, list.format.height
19
21
  end
20
-
22
+
21
23
  def test_relative_left_should_operate_as_delegator_of_format
22
24
  list = create_internal('translate' => {'x' => 10})
23
25
  assert_same list.relative_left, list.format.relative_left
24
26
  end
25
-
27
+
26
28
  def test_relative_top_should_operate_as_delegator_of_format
27
29
  list = create_internal('translate' => {'y' => 10})
28
30
  assert_same list.relative_top, list.format.relative_top
29
31
  end
30
-
32
+
31
33
  def test_svg_tag_should_operate_as_delegator_of_format
32
34
  list = create_internal('svg' => {'tag' => 'g'})
33
35
  assert_same list.svg_tag, list.format.svg_tag
34
36
  end
35
-
37
+
36
38
  def test_move_top_to_should_properly_set_value_to_states_as_relative_top
37
39
  list = create_internal
38
40
  list.move_top_to(200)
39
-
41
+
40
42
  assert_equal list.states[:relative_top], 200
41
43
  end
42
-
44
+
43
45
  def test_relative_position_should_return_Array_included_coordinates
44
46
  list = create_internal('translate' => {'x' => 100, 'y' => 200})
45
-
47
+
46
48
  assert_equal list.relative_position, [100, 200]
47
49
  end
48
-
50
+
49
51
  def test_Y_coordinate_which_relative_position_returns_should_be_calculated_position_with_relative_top_of_states
50
52
  list = create_internal('translate' => {'x' => 100, 'y' => 100})
51
53
  list.move_top_to(50)
52
-
54
+
53
55
  assert_equal list.relative_position.last, 150
54
56
  end
55
- end
57
+ end
@@ -1,14 +1,14 @@
1
1
  # coding: utf-8
2
2
 
3
- require 'test/unit/helper'
3
+ require 'test_helper'
4
4
 
5
- class ThinReports::Core::Shape::List::TestStore < MiniTest::Unit::TestCase
6
- include ThinReports::TestHelpers
5
+ class Thinreports::Core::Shape::List::TestStore < Minitest::Test
6
+ include Thinreports::TestHelper
7
7
 
8
- List = ThinReports::Core::Shape::List
8
+ List = Thinreports::Core::Shape::List
9
9
 
10
10
  def test_new
11
- klass = List::Store.new(:foo => 'foo', :hoge => 0)
11
+ klass = List::Store.new(foo: 'foo', hoge: 0)
12
12
 
13
13
  assert_instance_of ::Class, klass
14
14
 
@@ -21,7 +21,7 @@ class ThinReports::Core::Shape::List::TestStore < MiniTest::Unit::TestCase
21
21
  end
22
22
 
23
23
  def test_init
24
- store = List::Store.init(:foo => 0, :hoge => 'hoge')
24
+ store = List::Store.init(foo: 0, hoge: 'hoge')
25
25
 
26
26
  assert_respond_to store, :foo
27
27
  assert_respond_to store, :hoge
@@ -31,7 +31,7 @@ class ThinReports::Core::Shape::List::TestStore < MiniTest::Unit::TestCase
31
31
  end
32
32
 
33
33
  def test_copy
34
- store = List::Store.init(:foo => Time.now)
34
+ store = List::Store.init(foo: Time.now)
35
35
 
36
36
  copied = store.copy
37
37
 
@@ -1,34 +1,30 @@
1
1
  # coding: utf-8
2
2
 
3
- require 'test/unit/helper'
3
+ require 'test_helper'
4
+
5
+ class Thinreports::Core::Shape::Manager::TestFormat < Minitest::Test
6
+ include Thinreports::TestHelper
7
+
8
+ class TestFormat < Thinreports::Core::Shape::Manager::Format; end
4
9
 
5
- class ThinReports::Core::Shape::Manager::TestFormat < MiniTest::Unit::TestCase
6
- include ThinReports::TestHelpers
7
-
8
- class TestFormat < ThinReports::Core::Shape::Manager::Format; end
9
-
10
10
  def test_identifier_should_return_the_same_as_object_id_when_id_is_not_given
11
11
  format = TestFormat.new({})
12
12
  assert_equal format.identifier, format.object_id
13
13
  end
14
-
14
+
15
15
  def test_identifier_should_return_the_specified_id_when_id_is_given
16
16
  assert_equal TestFormat.new({}, :any_id).identifier, :any_id
17
17
  end
18
-
19
- def test_shapes_should_return_instance_of_OrderedHash
20
- assert_instance_of ThinReports::Core::OrderedHash, TestFormat.new({}).shapes
21
- end
22
-
18
+
23
19
  def test_find_shape_should_return_format_of_shape_when_shape_is_found
24
20
  format = TestFormat.new({}) do |f|
25
- f.shapes[:foo] = ThinReports::Core::Shape::TextBlock::Format.new('id' => 'foo',
21
+ f.shapes[:foo] = Thinreports::Core::Shape::TextBlock::Format.new('id' => 'foo',
26
22
  'type' => 's-tblock')
27
23
  end
28
24
  assert_equal format.find_shape(:foo).id, 'foo'
29
25
  end
30
-
26
+
31
27
  def test_find_shape_should_return_nil_when_shape_is_not_found
32
28
  assert_nil TestFormat.new({}).find_shape(:unknown)
33
29
  end
34
- end
30
+ 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::Core::Shape::Manager::TestInternal < MiniTest::Unit::TestCase
6
- include ThinReports::TestHelpers
5
+ class Thinreports::Core::Shape::Manager::TestInternal < Minitest::Test
6
+ include Thinreports::TestHelper
7
7
 
8
8
  # Alias
9
- Shape = ThinReports::Core::Shape
9
+ Shape = Thinreports::Core::Shape
10
10
 
11
11
  def create_shape_format(type, id, other_config = {})
12
12
  Shape::Format(type).new({'id' => id,
@@ -15,7 +15,7 @@ class ThinReports::Core::Shape::Manager::TestInternal < MiniTest::Unit::TestCase
15
15
  end
16
16
 
17
17
  def create_internal(&block)
18
- report = create_basic_report('basic_layout1.tlf')
18
+ report = new_report('layout_text1.tlf')
19
19
  format = report.layout.format
20
20
 
21
21
  # Add to default dummy shapes.
@@ -53,22 +53,22 @@ class ThinReports::Core::Shape::Manager::TestInternal < MiniTest::Unit::TestCase
53
53
 
54
54
  def test_find_item_should_return_shape_when_passing_in_the_specified_only_filter
55
55
  internal = create_internal
56
- assert_equal internal.find_item(:t1, :only => 's-tblock').id, 't1'
56
+ assert_equal internal.find_item(:t1, only: 's-tblock').id, 't1'
57
57
  end
58
58
 
59
59
  def test_find_item_should_return_nil_when_not_passing_in_the_specified_only_filter
60
60
  internal = create_internal
61
- assert_nil internal.find_item(:t1, :only => 's-list')
61
+ assert_nil internal.find_item(:t1, only: 's-list')
62
62
  end
63
63
 
64
64
  def test_find_item_should_return_shape_when_passing_in_the_specified_except_filter
65
65
  internal = create_internal
66
- assert_equal internal.find_item(:ls, :except => 's-tblock').id, 'ls'
66
+ assert_equal internal.find_item(:ls, except: 's-tblock').id, 'ls'
67
67
  end
68
68
 
69
69
  def test_find_item_should_return_shape_when_not_passing_in_the_specified_except_filter
70
70
  internal = create_internal
71
- assert_nil internal.find_item(:ls, :except => 's-list')
71
+ assert_nil internal.find_item(:ls, except: 's-list')
72
72
  end
73
73
 
74
74
  def test_final_shape_should_return_nil_when_shape_is_not_found