summaryrefslogtreecommitdiff
path: root/t/simple.t
diff options
context:
space:
mode:
Diffstat (limited to 't/simple.t')
-rw-r--r--t/simple.t102
1 files changed, 102 insertions, 0 deletions
diff --git a/t/simple.t b/t/simple.t
new file mode 100644
index 0000000..2eb36a5
--- /dev/null
+++ b/t/simple.t
@@ -0,0 +1,102 @@
+use strict;
+use warnings;
+use Test::More;
+
+BEGIN { use_ok 'Text::MarkdownTable'; }
+require_ok 'Text::MarkdownTable';
+
+sub is_table(@) {
+ my ($message, $expect,$data) = (pop,pop,shift);
+ my $out = "";
+ my $table = Text::MarkdownTable->new(@_, file => \$out);
+ $table->add($_) for @$data;
+ $table->done;
+ is $out, $expect, $message;
+}
+
+is_table [ ], columns => "foo,bar", '', "empty table";
+
+is_table [{a => 'moose', b => '1'},
+ {a => "p\nony", b => '2'},
+ {a => 'shr|mp', b => '3'}],
+<<TABLE, "MultiMarkdown format ok";
+| a | b |
+|--------|---|
+| moose | 1 |
+| p ony | 2 |
+| shr mp | 3 |
+TABLE
+
+is_table [{ a => 'Hello', b => 'World' }],
+ fields => { a => 'Longname', x => 'X', y => undef },
+<<TABLE, "custom column names as HASH";
+| Longname | X | y |
+|----------|---|---|
+| Hello | | |
+TABLE
+
+is_table [{ a => 'Hello', b => 'happy', c => 'World', d => '!' }],
+ columns => ['greet',undef,'greet',''],
+<<TABLE, "custom column names as ARRAY";
+| greet | | greet | |
+|-------|-------|-------|---|
+| Hello | happy | World | ! |
+TABLE
+
+is_table [{ aa => 'Hi', b => 'World', c => 'long value' }],
+ widths => '5,3,6',
+<<TABLE, "custom column width / truncation";
+| aa | b | c |
+|-------|-----|--------|
+| Hi | Wor | lon... |
+TABLE
+
+is_table [{ aa => 'Hi', b => 'World', c => 'long value' }],
+ widths => '5,3,6', condense => 1,
+<<TABLE, "condense with truncation";
+aa|b|c
+--|-|-
+Hi|Wor|lon...
+TABLE
+
+ok !Text::MarkdownTable->new->streaming, "no streaming by default";
+
+my $out = "";
+my $table = Text::MarkdownTable->new( condense => 1, file => \$out );
+$table->add({ foo => 1, bar => 1024 });
+ok $table->streaming, "streaming mode";
+is $out, <<TABLE, "streaming mode";
+bar|foo
+---|---
+1024|1
+TABLE
+
+$table->add({ doz => 7, bar => 0, doz => 'ignored' });
+is $out, <<TABLE, "streaming mode";
+bar|foo
+---|---
+1024|1
+0|
+TABLE
+
+is_table [{a => 7},{a => 8}],
+ header => 0,
+ "| 7 |\n| 8 |\n", "disable header";
+
+is_table [{a => 7, b=> 1},{a => 8}],
+ header => 0, condense => 1,
+ "7|1\n8|\n", "vbar delimited values";
+
+is_table([{foo => 1, bar => 2}], edges => 0, <<TABLE, "edges disabled");
+bar | foo
+----|----
+2 | 1
+TABLE
+
+is_table([{a => 1, b => 2, c => 3}], edges => 0, <<TABLE, "edges disabled");
+a | b | c
+--|---|--
+1 | 2 | 3
+TABLE
+
+done_testing;