#!/usr/bin/perl
use strict;
use warnings;
use Test::More;
use Test::Exception;
use Test::Moose;
use Scalar::Util qw(reftype);
use KiokuDB::TypeMap;
use KiokuDB::TypeMap::Default::Storable;
use KiokuDB::TypeMap::Resolver;
my $t = KiokuDB::TypeMap::Default::Storable->new;
my $tr = KiokuDB::TypeMap::Resolver->new(
typemap => $t,
);
isa_ok( $tr, "KiokuDB::TypeMap::Resolver" );
foreach my $class ( qw(DateTime DateTime::Duration Path::Class::Entity URI Tie::RefHash Authen::Passphrase) ) {
my $e = $t->resolve($class);
does_ok( $e, "KiokuDB::TypeMap::Entry", "entry for $class" );
my $method = $tr->expand_method($class);
ok( $method, "compiled" );
is( reftype($method), "CODE", "expand method" );
}
ok( !$t->resolve("JSON::Boolean"), "no JSON::Boolean" );
done_testing;