1#!/usr/bin/perl 2use strict; 3use warnings; 4use Test::More tests => 6; 5 6use lib 't/lib'; # Needed for 'make test' from project dirs 7use PDFAPI2Mock; # provide dummy PDF::API2. obviously a real PDF::API2 or 8 # PDF::Builder installation will be needed in order to run 9 10BEGIN { 11 use_ok('PDF::Table'); 12} 13 14local $SIG{__WARN__} = sub { my $message = shift; die $message; }; 15 16my $pdf = PDF::API2->new; 17my $page = $pdf->page; 18my $object = PDF::Table->new($pdf, $page); 19 20my $data = [ 'foo', 'bar', 'baz' ]; 21my $required = [ x => 10, 22 w => 300, 23 start_y => 750, 24 next_y => 700, 25 start_h => 40, 26 next_h => 500 ]; 27 28ok($object->table($pdf, $page, [$data], @$required), "basic test"); 29 30eval { $object->table('pdf', $page, [$data], @$required) }; 31like($@, qr/Error: Invalid PDF object received/, "Invalid PDF object received"); 32 33eval { $object->table($pdf, 'page', [$data], @$required) }; 34like($@, qr/Error: Invalid page object received/, "Invalid page object received"); 35 36eval { $object->table($pdf, $page, 'data', @$required) }; 37like($@, qr/Error: Invalid data received/, "Invalid data received"); 38 39eval { $object->table($pdf, $page, 'data', 'required') }; 40like($@, qr/Odd number of elements in hash assignment/, "Odd number of elements in hash assignment"); 41 42done_testing(); 43 441; 45