package tests::ParamTest; use strict; use Lire::Param; use base qw/Lire::Test::TestCase tests::TestStoreFixture/; sub new { my $self = shift()->SUPER::new( @_ ); $self->init(); $self->init_i18n(); return $self; } sub set_up { my $self = shift->SUPER::set_up(); $self->set_up_locale(); $self->set_up_test_schema(); my $param = new Lire::Param( 'i18n_domain' => 'lire-test', 'name' => 'whatever', 'type' => 'string', 'description' => 'JPEG Files' ); $self->{'param'} = $param; return $self; } sub tear_down { my $self = shift->SUPER::tear_down(); $self->tear_down_locale(); return $self; } sub test_description_i18n { my $self = $_[0]; my $param = $self->{'param'}; $self->assert_str_equals( 'JPEG Files', $param->description() ); $self->set_locale( 'fr_CA.iso8859-1' ); $self->assert_str_equals( 'Fichiers JPEG', $param->description() ); } sub test_as_type_spec { my $self = $_[0]; my $param = $self->{'param'}; $param->{'default'} = 'A file'; my $spec = $param->as_type_spec(); $self->assert_isa( 'Lire::Config::StringSpec', $spec ); $self->assert_str_equals( 'whatever', $spec->name() ); $self->assert_str_equals( 'whatever', $spec->summary() ); $self->assert_str_equals( 'JPEG Files', $spec->description() ); $self->assert_str_equals( 'lire-test', $spec->{'i18n_domain'} ); $self->assert_isa( 'Lire::Config::Scalar', $spec->default() ); $self->assert_str_equals( 'A file', $spec->default()->as_value() ); $param->{'default'} = undef; $param->{'type'} = 'int'; $self->assert_isa( 'Lire::Config::IntegerSpec', $param->as_type_spec() ); $param->{'type'} = 'filename'; $self->assert_isa( 'Lire::Config::FileSpec', $param->as_type_spec() ); $param->{'type'} = 'bool'; $self->assert_isa( 'Lire::Config::BooleanSpec', $param->as_type_spec() ); } 1;