9 package Attribute::Trait::Awesome;
14 package Awesome::Exporter;
17 Moose::Exporter->setup_import_methods(
18 trait_aliases => ['Attribute::Trait::Awesome'],
25 BEGIN { Awesome::Exporter->import }
31 ::does_ok(__PACKAGE__->meta->get_attribute('foo'), 'Attribute::Trait::Awesome');
34 BEGIN { Awesome::Exporter->unimport }
36 my $val = eval "Awesome";
37 ::like($@, qr/Bareword "Awesome" not allowed/, "unimported properly");
38 ::is($val, undef, "unimported properly");
42 package Awesome2::Exporter;
45 Moose::Exporter->setup_import_methods(
47 [ 'Attribute::Trait::Awesome' => 'Awesome2' ],
55 BEGIN { Awesome2::Exporter->import }
61 ::does_ok(__PACKAGE__->meta->get_attribute('foo'), 'Attribute::Trait::Awesome');
63 BEGIN { Awesome2::Exporter->unimport }
65 my $val = eval "Awesome2";
66 ::like($@, qr/Bareword "Awesome2" not allowed/, "unimported properly");
67 ::is($val, undef, "unimported properly");
71 package Awesome2::Rename;
73 BEGIN { Awesome2::Exporter->import(Awesome2 => { -as => 'emosewA' }) }
79 ::does_ok(__PACKAGE__->meta->get_attribute('foo'), 'Attribute::Trait::Awesome');
81 BEGIN { Awesome2::Exporter->unimport }
83 { our $TODO; local $TODO = "unimporting renamed subs currently doesn't work";
84 my $val = eval "emosewA";
85 ::like($@, qr/Bareword "emosewA" not allowed/, "unimported properly");
86 ::is($val, undef, "unimported properly");