use Test::More;

use_ok('Mxpress::PDF');

ok(my $pdf = Mxpress::PDF->new_pdf('test',
	page => {
		background => '#000',
		padding => 5
	}
), 'add a page');

my $page = $pdf->page;

test_attributes($page,
	padding => 5,
	page_size => 'A4',
        background => '#000',
	num => 1,
	current => 'PDF::API2::Page',
	is_rotated => 0,
	x => 14,
	y => 827,
	w => 580,
	h => 799
);

ok($page->rotate(), 'rotate page');

test_attributes($page,
	is_rotated => 1,
	x => 14,
	y => 580,
	w => 827,
	h => 552
);

ok($pdf->add_page(), 'add another page');

ok($page = $pdf->page, 'current page');

test_attributes($page,
	padding => 5,
	page_size => 'A4',
        background => '#000',
	num => 2,
	current => 'PDF::API2::Page',
	is_rotated => 1,
	x => 14,
	y => 580,
	w => 827,
	h => 552
);

ok($pdf->add_page(padding => 0), 'add another page with no padding');

ok($page = $pdf->page, 'current page');

test_attributes($page,
	padding => 0,
	page_size => 'A4',
        background => '#000',
	num => 3,
	current => 'PDF::API2::Page',
	is_rotated => 1,
	x => 0,
	y => 595,
	w => 842,
	h => 595
);

sub test_attributes {
	my $page = shift;
	while ( @_ ) {
		my ($key, $value) = (shift, shift);
		my $attr = $page->$key;
		if (ref $attr ) {
			if (!ref $value) {
				is(ref $attr, $value, $key);
			} else {
				is_deeply($attr, $value, $key);
			}
		} else {
			if ($attr =~ m/[^\d\.]/) {
				is($attr, $value, $key);
			} else {
				is(int($attr), $value, $key);
			}

		}
	}
}


done_testing();
