use strict;
use warnings;
use Test::More tests => 6;
use Test::Exception;
my $m; BEGIN { use_ok($m = "Catalyst::Authentication::User") }
{
package SomeUser;
use base $m;
sub new { bless {}, shift };
sub supported_features {
{
feature => {
subfeature => 1,
unsupported_subfeature => 0,
},
top_level => 1,
}
}
}
my $o = SomeUser->new;
can_ok( $m, "supports" );
ok( $o->supports("top_level"), "simple top level feature check");
ok( $o->supports(qw/feature subfeature/), "traversal");
ok( !$o->supports(qw/feature unsupported_subfeature/), "traversal terminating in false");
lives_ok {
$o->supports("bad_key");
} "can check for non existent feature";
#dies_ok {
# $o->supports(qw/bad_key subfeature/)
#} "but can't traverse into one";