The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/env perl
use strict;
use warnings;
use Test::More tests => 10;

do {
    package Class;
    use Mouse;

    has pawn => (
        is        => 'rw',
        predicate => 'has_pawn',
        clearer   => 'clear_pawn',
        default   => sub { 10 },
    );

    no Mouse;
};

my $meta = Class->meta;
isa_ok($meta, 'Mouse::Meta::Class');

my $attr = $meta->get_attribute('pawn');
isa_ok($attr, 'Mouse::Meta::Attribute');

can_ok($attr, qw(name associated_class predicate clearer));
is($attr->name, 'pawn', 'attribute name');
is($attr->associated_class, Class->meta, 'associated_class');
is($attr->predicate, 'has_pawn', 'predicate');
is($attr->clearer, 'clear_pawn', 'clearer');
ok(!$attr->is_lazy_build, "not lazy_build");
is(ref($attr->default), 'CODE', 'default is a coderef');
ok($attr->verify_against_type_constraint(1), 'verify_against_type_constraint works even without isa');