lemonldap-ng/lemonldap-ng-portal/xt/PE_Constants.t
2013-10-30 06:05:29 +00:00

41 lines
1015 B
Perl

use strict;
use Test::More tests => 7;
use_ok('Lemonldap::NG::Portal::Simple');
use_ok('Lemonldap::NG::Handler::Status');
ok( open( F, $INC{'Lemonldap/NG/Portal/Simple.pm'} ) );
my ( %h1, %h2, @missingInStatus, @differentValues );
# Load constants
while (<F>) {
$h1{$1} = $2 if (/^\s*PE_(\w+)\s*=>\s*(-?\d+),$/);
last if (/^sub/);
}
close F;
ok( open( F, $INC{'Lemonldap/NG/Handler/Status.pm'} ) );
while (<F>) {
$h2{$2} = $1 if (/^\s*(-?\d+)\s*=>\s*'PORTAL_(\w+)',$/);
}
foreach my $k ( sort keys %h1 ) {
if ( defined( $h2{$k} ) ) {
unless ( $h1{$k} == $h2{$k} ) {
push @differentValues, $k;
}
delete $h2{$k};
}
else {
push @missingInStatus, $k;
}
delete $h1{$k};
}
ok( !@differentValues,
'Search different constant values between Status.pm and portal' );
ok( !@missingInStatus,
join( ', ', 'Search missing constants in Status.pm', @missingInStatus ) );
ok( !( keys %h2 ), 'Constants set in Status.pm and not in portal' );