#!/bin/perl -w use strict; use Test::More ( tests=>22 ); use Data::Tabular::Dumper; pass( 'loaded' ); my %params=(CSV=>["t/test.csv", {eol=>"\n", binary=>1}], XML=>["t/test.xml", "table", "record" ], Excel=>["t/test.xls"]); my $allowed=Data::Tabular::Dumper->available(); # no way this would happen ... :) ok( (grep {$allowed->{$_}} keys %$allowed), "Got a list of data sinks" ); foreach my $w (qw(CSV XML Excel)) { my $dumper=''; $dumper=Data::Tabular::Dumper->open($w=>$params{$w}) if $allowed->{$w}; SKIP: { skip "$w support not available", 6 unless $dumper; pass( $w ); ok( (-f $params{$w}[0]), "Created $params{$w}[0]" ); ok( $dumper->fields([qw(one two three)]), "fields" ); ok( $dumper->write([1..3]), "write" ); $dumper->write([4..6]); $dumper->write([7..9]); ok( $dumper->write(["one,un","deux","+@[123]"]), "write complex" ); ok( $dumper->close, "close"); } } SKIP: { skip "t/test.csv", 1 unless -f "t/test.csv"; my @csv = eval { local @ARGV = "t/test.csv"; <>; }; is_deeply( \@csv, [ qq(one,two,three\n), qq(1,2,3\n), qq(4,5,6\n), qq(7,8,9\n), qq("one,un",deux,+@[123]\n)], "t/test.csv good" ); } SKIP: { skip "t/test.xml", 1 unless -f "t/test.xml"; my @xml = eval { local @ARGV = "t/test.xml"; <>; }; is_deeply( \@xml, [ qq(\n), qq(\n), qq( \n), qq( 1\n), qq( 2\n), qq( 3\n), qq( \n), qq( \n), qq( 4\n), qq( 5\n), qq( 6\n), qq( \n), qq( \n), qq( 7\n), qq( 8\n), qq( 9\n), qq( \n), qq( \n), qq( one,un\n), qq( <b>deux</b>\n), qq( +@[123]\n), qq( \n), qq(
\n) ], "t/test.xml good" ); } foreach my $ext ( qw( csv xml xls ) ) { unlink( "t/test.$ext" ); }