X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FTest%2FMoose.pm;h=38f5fe67cccd136aad8e051c4df93ecb11874d17;hb=bdd1acbdd2d351b1d689969a405a6a89c4473b93;hp=a20a51909e4b5e3867b4518a6b8e28432e3fccf4;hpb=6e56c6e09ab419776522759fc65fb0e85af66538;p=gitmo%2FMoose.git diff --git a/lib/Test/Moose.pm b/lib/Test/Moose.pm index a20a519..38f5fe6 100644 --- a/lib/Test/Moose.pm +++ b/lib/Test/Moose.pm @@ -6,16 +6,14 @@ use warnings; use Sub::Exporter; use Test::Builder; +use List::MoreUtils 'all'; use Moose::Util 'does_role', 'find_meta'; -our $VERSION = '0.89_02'; -$VERSION = eval $VERSION; -our $AUTHORITY = 'cpan:STEVAN'; - my @exports = qw[ meta_ok does_ok has_attribute_ok + with_immutable ]; Sub::Exporter::setup_exporter({ @@ -70,16 +68,24 @@ sub has_attribute_ok ($$;$) { } } +sub with_immutable (&@) { + my $block = shift; + my $before = $Test->current_test; + $block->(); + Class::MOP::class_of($_)->make_immutable for @_; + $block->(); + my $num_tests = $Test->current_test - $before; + return all { $_ } ($Test->summary)[-$num_tests..-1]; +} + 1; +# ABSTRACT: Test functions for Moose specific features + __END__ =pod -=head1 NAME - -Test::Moose - Test functions for Moose specific features - =head1 SYNOPSIS use Test::More plan => 1; @@ -112,6 +118,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,24 +157,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. - -=head1 AUTHOR - -Anders Nor Berle Edebolaz@gmail.comE - -Stevan Little Estevan@iinteractive.comE - -=head1 COPYRIGHT AND LICENSE - -Copyright 2007-2009 by Infinity Interactive, Inc. - -L - -This library is free software; you can redistribute it and/or modify -it under the same terms as Perl itself. +See L for details on reporting bugs. =cut