package tests::ErrorTest;
use strict;
use base qw/ Lire::Test::TestCase /;
use Lire::Error qw/ an_error_occured
directory_already_exists file_empty
invalid_option missing_command
missing_argument missing_argument_usage
too_many_arguments unknown_command_usage /;
sub new {
my $self = shift()->SUPER::new( @_ );
return $self;
}
sub set_up {
my $self = shift;
$self->SUPER::set_up( @_ );
return;
}
sub tear_down {
my $self = shift;
$self->SUPER::tear_down( @_ );
return;
}
sub test_an_error_occured {
my $self = $_[0];
$self->assert_dies( qr/missing \'error\' parameter/,
sub { an_error_occured() } );
$self->assert_str_equals( "An error occured: wawa was dancing reggae",
an_error_occured( 'wawa was dancing reggae' ) );
return;
}
sub test_invalid_option {
my $self = $_[0];
$self->assert_dies( qr/missing \'option\' parameter/,
sub { invalid_option() } );
$self->assert_str_equals( "invalid option: 'optional_wawa'",
invalid_option( 'optional_wawa' ) );
return;
}
sub test_missing_argument {
my $self = $_[0];
$self->assert_dies( qr/missing \'argument\' parameter/,
sub { missing_argument() } );
$self->assert_str_equals( "missing 'wawa' argument",
missing_argument( 'wawa' ) );
return;
}
sub test_missing_argument_usage {
my $self = $_[0];
$self->assert_dies( qr/missing \'argument\' parameter/,
sub { missing_argument_usage() } );
$self->assert_str_equals( "Missing 'wawa' argument.\n",
missing_argument_usage( 'wawa' ) );
return;
}
sub test_directory_already_exists {
my $self = $_[0];
$self->assert_dies( qr/missing \'directory\' parameter/,
sub { directory_already_exists() } );
$self->assert_str_equals( "directory 'wawadir' already exists",
directory_already_exists( 'wawadir' ) );
return;
}
sub test_file_empty {
my $self = $_[0];
$self->assert_dies( qr/missing \'file\' parameter/,
sub { file_empty() } );
$self->assert_str_equals( "file 'wawa_file' is empty",
file_empty( 'wawa_file' ) );
return;
}
sub test_unknown_command_usage {
my $self = $_[0];
$self->assert_dies( qr/missing \'command\' parameter/,
sub { unknown_command_usage() } );
$self->assert_str_equals( "Unknown command: 'zoukwawa'.\n",
unknown_command_usage( 'zoukwawa' ) );
return;
}
sub test_too_many_arguments {
my $self = $_[0];
$self->assert_str_equals( "too many arguments", too_many_arguments() );
return;
}
sub test_missing_command {
my $self = $_[0];
$self->assert_dies( qr/missing \'command\' parameter/,
sub { missing_command() } );
$self->assert_str_equals( "missing 'wawa' command",
missing_command( 'wawa' ) );
$self->assert_str_equals( "missing Topnotch 'wawa' command",
missing_command( 'wawa', 'Topnotch' ) );
return;
}
1;
syntax highlighted by Code2HTML, v. 0.9.1