summaryrefslogtreecommitdiffstats
path: root/t/template.t
diff options
context:
space:
mode:
Diffstat (limited to 't/template.t')
-rw-r--r--t/template.t96
1 files changed, 96 insertions, 0 deletions
diff --git a/t/template.t b/t/template.t
new file mode 100644
index 0000000..fd581dd
--- /dev/null
+++ b/t/template.t
@@ -0,0 +1,96 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+use Test::More;
+
+use Spreadsheet::ParseXLSX;
+use Spreadsheet::Template;
+
+my $data = do { local $/; local @ARGV = ('t/data/template.json'); <> };
+{
+ my $excel = Spreadsheet::Template->new->render(
+ $data,
+ {
+ rows => [
+ {
+ description => "Row 1",
+ number => 26,
+ date => '2013-03-21T00:00:00',
+ money => 3.50,
+ },
+ {
+ description => "Row 2",
+ number => 83,
+ date => '2013-06-25T00:00:00',
+ money => 84.28,
+ },
+ ],
+ }
+ );
+
+ open my $fh, '<', \$excel;
+ my $wb = Spreadsheet::ParseXLSX->new->parse($fh);
+ is($wb->worksheet_count, 1);
+
+ my $ws = $wb->worksheet(0);
+ is($ws->get_name, 'Report 1');
+ is_deeply([$ws->row_range], [0, 3]);
+ is_deeply([$ws->col_range], [0, 3]);
+
+ my @values = (
+ ["Descriptions", "Numbers", "Dates", "Money" ],
+ ["Row 1", "26", "21-Mar", "\$3.50" ],
+ ["Row 2", "83", "25-Jun", "\$84.28"],
+ ["Totals:", "109", "", "\$87.78"],
+ );
+ for my $row (0..3) {
+ for my $col (0..3) {
+ is($ws->get_cell($row, $col)->value, $values[$row][$col]);
+ }
+ }
+}
+
+{
+ my $excel = Spreadsheet::Template->new->render(
+ $data,
+ {
+ rows => [
+ {
+ description => "Another Row",
+ number => 42,
+ date => '2012-12-25T00:00:00',
+ money => 1.22,
+ },
+ {
+ description => "Yet Another Row",
+ number => 0,
+ date => '2011-03-09T00:00:00',
+ money => 1001.01,
+ },
+ ],
+ }
+ );
+
+ open my $fh, '<', \$excel;
+ my $wb = Spreadsheet::ParseXLSX->new->parse($fh);
+ is($wb->worksheet_count, 1);
+
+ my $ws = $wb->worksheet(0);
+ is($ws->get_name, 'Report 1');
+ is_deeply([$ws->row_range], [0, 3]);
+ is_deeply([$ws->col_range], [0, 3]);
+
+ my @values = (
+ ["Descriptions", "Numbers", "Dates", "Money" ],
+ ["Another Row", "42", "25-Dec", "\$1.22" ],
+ ["Yet Another Row", "0", "9-Mar", "\$1,001.01"],
+ ["Totals:", "42", "", "\$1,002.23"],
+ );
+ for my $row (0..3) {
+ for my $col (0..3) {
+ is($ws->get_cell($row, $col)->value, $values[$row][$col]);
+ }
+ }
+}
+
+done_testing;