use strict;
+# This is automatically generated by author/import-moose-test.pl.
+# DO NOT EDIT THIS FILE. ANY CHANGES WILL BE LOST!!!
+use t::lib::MooseCompat;
use warnings;
-use Test::More tests => 12;
+use Test::More;
+use Test::Mouse;
{
package Foo;
default => 1,
);
+ # Assigning types to these non-alpha attrs exposed a bug in Mouse.
has '@type' => (
+ isa => 'Str',
required => 0,
reader => 'get_at_type',
- default => 2,
+ writer => 'set_at_type',
+ default => 'at type',
);
has 'has spaces' => (
+ isa => 'Int',
required => 0,
reader => 'get_hs',
default => 42,
);
+ has '!req' => (
+ required => 1,
+ reader => 'req'
+ );
+
no Mouse;
}
-{
- my $foo = Foo->new;
-
+with_immutable {
ok( Foo->meta->has_attribute($_), "Foo has '$_' attribute" )
for 'type', '@type', 'has spaces';
- is( $foo->get_type, 1, q{'type' attribute default is 1} );
- is( $foo->get_at_type, 2, q{'@type' attribute default is 1} );
- is( $foo->get_hs, 42, q{'has spaces' attribute default is 42} );
+ my $foo = Foo->new( '!req' => 42 );
+
+ is( $foo->get_type, 1, q{'type' attribute default is 1} );
+ is( $foo->get_at_type, 'at type', q{'@type' attribute default is 1} );
+ is( $foo->get_hs, 42, q{'has spaces' attribute default is 42} );
- Foo->meta->make_immutable, redo if Foo->meta->is_mutable;
+ $foo = Foo->new(
+ type => 'foo',
+ '@type' => 'bar',
+ 'has spaces' => 200,
+ '!req' => 84,
+ );
+
+ isa_ok( $foo, 'Foo' );
+ is( $foo->get_at_type, 'bar', q{reader for '@type'} );
+ is( $foo->get_hs, 200, q{reader for 'has spaces'} );
+
+ $foo->set_at_type(99);
+ is( $foo->get_at_type, 99, q{writer for '@type' worked} );
}
+'Foo';
+
+done_testing;