#!/usr/bin/perl use strict; use warnings FATAL => 'all'; use Test::More tests => 12; BEGIN { use_ok 'PHP::Strings', ':str_pad' }; # Good inputs { is( str_pad( "Alien", 10) => "Alien " => "Defaults" ); is( str_pad( "Alien", 10, "-=", STR_PAD_LEFT) => "-=-=-Alien" => "From left" ); is( str_pad( "Alien", 10, "_", STR_PAD_BOTH) => "__Alien___" => "From both" ); is( str_pad( "Alien", 6 , "___") => "Alien_" => "With padstring" ); is( str_pad( "Alien", 4 , "___") => "Alien" => "Shorter" ); } # Bad inputs { eval { str_pad( ) }; like( $@, qr/^0 param/, "No arguments" ); eval { str_pad( undef ) }; like( $@, qr/^Parameter #1.*undef.*scalar/, "Bad type for string" ); eval { str_pad( "Foo" ) }; like( $@, qr/^1 param/, "Insufficient arguments" ); eval { str_pad( "Foo", undef ) }; like( $@, qr/^Parameter #2.*undef.*scalar/, "Bad type for length" ); eval { str_pad( "Foo", 4, "", 0 ) }; like( $@, qr/^Invalid 4th/, "Bad options" ); eval { str_pad( "Foo", "Not a number" ) }; like( $@, qr/^Parameter #2.*regex/, "Length not a number" ); }