The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl

use strict;
use warnings;

use lib 't/lib', 'lib', '../lib';

use Test::More tests => 5;



{
    package Bar;
    use Coat;
    
    eval { extends 'Foo'; };
    ::ok(!$@, '... loaded Foo superclass correctly');
}

{
    package Baz;
    use Coat;
    
    eval { extends 'Bar'; };
    ::ok(!$@, '... loaded (inline) Bar superclass correctly');
}

{
    package Foo::Bar;
    use Coat;
    
    eval { extends 'Foo', 'Bar'; };
    ::ok(!$@, '... loaded Foo and (inline) Bar superclass correctly');
}

{
    package Bling;
    use Coat;
    
    eval { extends 'No::Class'; };
    ::ok($@, '... could not find the superclass (as expected)');
    ::like($@, qr/^Could not load class \(No\:\:Class\) because \:/, '... and got the error we expected');
}