package tests::functional::LrEnvironmentTest;

use strict;

use base qw/Lire::Test::FunctionalTestCase/;

use Lire::Config::Build qw/ac_path/;

sub test_lr_environment {
    my $self = $_[0];

    my $result = $self->lire_run( ac_path( 'libexecdir', 'PACKAGE') .
                                  "/lr_environment" );
    $self->annotate( $result->stderr() );
    $self->assert_equals( 0, $result->status() );
    $self->assert_matches( qr/lr_environment info started with no argument/,
                           $result->stderr() );
    $self->assert_does_not_match( qr/ (crit|err|warning) /, $result->stderr(),
                                  "There were warnings or error messages." );


    # Test some known default config variables
    $self->assert_matches( qr/lr_test_uid='1'/, $result->stdout() );
    $self->assert_matches( qr/lr_debug=''/,  $result->stdout() );
    $self->assert_matches( qr/lr_spool_interval='300'/, $result->stdout() );

}

sub test_shell_env {
    my $self = $_[0];

    my $lr_env = ac_path( 'libexecdir', 'PACKAGE') . "/lr_environment";
    my $result = $self->lire_run( qq{ eval `$lr_env`; echo "lr_debug=\$lr_debug"x; echo "lr_test_uid=\$lr_test_uid"x; echo "lr_spool_interval=\$lr_spool_interval"x } );
    $self->annotate( $result->stderr() );
    $self->assert_equals( 0, $result->status() );
    $self->assert_matches( qr/lr_test_uid=1x/, $result->stdout() );
    $self->assert_matches( qr/lr_debug=x/,  $result->stdout() );

}
1;


syntax highlighted by Code2HTML, v. 0.9.1