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 Test::TypeConstraints;
use Test::More;

note "Some roles and classes for testing"; {
    {
        package Some::Role;
        use Mouse::Role;
    }

    {
        package Some::Class;
        use Mouse;
        with "Some::Role";
    }

    {
        package Other::Role;
        use Mouse::Role;
    }

    {
        package Other::Class;
        use Mouse;
        with 'Other::Role';
    }
}

subtest "type_isnt" => sub {
    my $obj = Some::Class->new;
    type_isa  $obj, "Some::Class";
    type_isnt $obj, "Other::Class";
};

subtest "type_doesnt" => sub {
    my $obj = Some::Class->new;
    type_does   $obj, "Some::Role";
    type_doesnt $obj, "Other::Role";    
};


done_testing;