10 plan skip_all => "no XSLoader" unless eval { require XSLoader };
12 plan skip_all => $@ unless eval {
14 Moose->XSLoader::load($Moose::VERSION);
21 ok( defined &Moose::XS::install_simple_getter );
22 ok( defined &Moose::XS::install_simple_setter );
23 ok( defined &Moose::XS::install_simple_accessor );
24 ok( defined &Moose::XS::install_predicate );
30 has x => ( is => "rw", predicate => "has_x" );
31 has y => ( is => "ro" );
32 has z => ( reader => "z", setter => "set_z" );
35 Moose::XS::install_simple_accessor("Foo::x", "x");
36 Moose::XS::install_predicate("Foo::has_x", "x");
37 Moose::XS::install_simple_getter("Foo::y", "y");
38 Moose::XS::install_simple_getter("Foo::z", "z");
39 Moose::XS::install_simple_setter("Foo::set_z", "z");
41 my $foo = Foo->new( x => "ICKS", y => "WHY", z => "ZEE" );
43 is( $foo->x, "ICKS" );
47 lives_ok { $foo->x("YASE") };
49 is( $foo->x, "YASE" );
51 dies_ok { $foo->y("blah") };
55 dies_ok { $foo->z("blah") };
59 lives_ok { $foo->set_z("new") };
65 ok( !Foo->new->has_x );