package tests::ConfigDlfStreamsSpecTest;
use strict;
use tests::ConfigSpecTest;
use base qw/tests::ConfigListSpecTest/;
use Lire::Config::DlfStreamsSpec;
use Lire::Config::ConfigSpec;
use Lire::DlfSchema;
sub new {
my $self = shift->SUPER::new( @_ );
return $self;
}
sub set_up {
my $self = $_[0];
$self->SUPER::set_up();
$self->{'cfg'}{'lr_schemas_path'} = [];
$Lire::DlfSchema::SCHEMA_CACHE{'test1'} = {};
$Lire::DlfSchema::SCHEMA_CACHE{'test2'} = {};
return;
}
sub tear_down {
my $self = $_[0];
$self->SUPER::tear_down();
delete $Lire::DlfSchema::SCHEMA_CACHE{'test1'};
delete $Lire::DlfSchema::SCHEMA_CACHE{'test2'};
return;
}
sub type {
return 'Lire::Config::DlfStreamsSpec';
}
sub test_has_component {
my $self = $_[0];
$self->assert( $self->{'spec'}->has_component( 'test1' ), 'test1' );
$self->assert( $self->{'spec'}->has_component( 'test1' ), 'test2' );
$self->assert( ! $self->{'spec'}->has_component( 'test3' ), '! test3' );
}
sub test_get {
my $self = $_[0];
my $spec = $self->{'spec'}->get( 'test1' );
$self->assert_isa( 'Lire::Config::DlfStreamSpec', $spec );
$self->assert_str_equals( 'test1', $spec->name() );
$self->assert_str_equals( $spec, $self->{'spec'}->get( 'test1' ) );
$self->assert_dies( qr/no component named 'test3'/,
sub { $self->{'spec'}->get( 'test3' ) } );
}
1;
syntax highlighted by Code2HTML, v. 0.9.1