X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FTest%2FMoose.pm;h=7c5ac99c8e3ebe59b22d15d2b1c738177c8ebe0c;hb=ae7820b1b884344a7ee90d94b484ca46459eb7b1;hp=8f9a1f54cb4a569bd2038e594e711183ff4600b0;hpb=8de5717850eb1f406e5f71d2ccfac33c72cc490b;p=gitmo%2FMoose.git diff --git a/lib/Test/Moose.pm b/lib/Test/Moose.pm index 8f9a1f5..7c5ac99 100644 --- a/lib/Test/Moose.pm +++ b/lib/Test/Moose.pm @@ -6,9 +6,10 @@ use warnings; use Sub::Exporter; use Test::Builder; +use List::MoreUtils 'all'; use Moose::Util 'does_role', 'find_meta'; -our $VERSION = '0.92'; +our $VERSION = '1.06'; $VERSION = eval $VERSION; our $AUTHORITY = 'cpan:STEVAN'; @@ -16,6 +17,7 @@ my @exports = qw[ meta_ok does_ok has_attribute_ok + with_immutable ]; Sub::Exporter::setup_exporter({ @@ -70,6 +72,16 @@ sub has_attribute_ok ($$;$) { } } +sub with_immutable (&@) { + my $block = shift; + my $before = $Test->current_test; + $block->(); + $_->meta->make_immutable for @_; + $block->(); + my $num_tests = $Test->current_test - $before; + return all { $_ } ($Test->summary)[-$num_tests..-1]; +} + 1; __END__ @@ -112,6 +124,11 @@ does for the C method. Tests if a class or object has a certain attribute, similar to what C does for the methods. +=item B + +Runs B (which should contain normal tests) twice, and make each +class in C<@class_names> immutable in between the two runs. + =back =head1 TODO @@ -146,9 +163,7 @@ does for the methods. =head1 BUGS -All complex software has bugs lurking in it, and this module is no -exception. If you find a bug please either email me, or add the bug -to cpan-RT. +See L for details on reporting bugs. =head1 AUTHOR