X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F000_load.t;h=b7d104a7b61290dc6e594086564159415d240f3d;hb=8d2d4c6705a3781606464d003a3641d835a35815;hp=c7ba2c5569161d4151efba5acb5a356c865d2287;hpb=817c7cd51b8e7a9509c43428f47e231d0e21ff43;p=gitmo%2FClass-MOP.git diff --git a/t/000_load.t b/t/000_load.t index c7ba2c5..b7d104a 100644 --- a/t/000_load.t +++ b/t/000_load.t @@ -3,17 +3,18 @@ use strict; use warnings; -use Test::More tests => 29; +use Test::More tests => 42; BEGIN { use_ok('Class::MOP'); use_ok('Class::MOP::Package'); use_ok('Class::MOP::Module'); use_ok('Class::MOP::Class'); - use_ok('Class::MOP::Class::Immutable'); + use_ok('Class::MOP::Immutable'); use_ok('Class::MOP::Attribute'); use_ok('Class::MOP::Method'); use_ok('Class::MOP::Method::Wrapped'); + use_ok('Class::MOP::Method::Generated'); use_ok('Class::MOP::Method::Accessor'); use_ok('Class::MOP::Method::Constructor'); use_ok('Class::MOP::Instance'); @@ -22,8 +23,11 @@ BEGIN { # make sure we are tracking metaclasses correctly +my $CLASS_MOP_CLASS_IMMUTABLE_CLASS = 'Class::MOP::Class::__ANON__::SERIAL::1'; + my %METAS = ( 'Class::MOP::Attribute' => Class::MOP::Attribute->meta, + 'Class::MOP::Method::Generated' => Class::MOP::Method::Generated->meta, 'Class::MOP::Method::Accessor' => Class::MOP::Method::Accessor->meta, 'Class::MOP::Method::Constructor' => Class::MOP::Method::Constructor->meta, 'Class::MOP::Package' => Class::MOP::Package->meta, @@ -32,14 +36,19 @@ my %METAS = ( 'Class::MOP::Method' => Class::MOP::Method->meta, 'Class::MOP::Method::Wrapped' => Class::MOP::Method::Wrapped->meta, 'Class::MOP::Instance' => Class::MOP::Instance->meta, - 'Class::MOP::Object' => Class::MOP::Object->meta, + 'Class::MOP::Object' => Class::MOP::Object->meta, ); +ok(Class::MOP::is_class_loaded($_), '... ' . $_ . ' is loaded') for keys %METAS; + ok($_->is_immutable(), '... ' . $_->name . ' is immutable') for values %METAS; is_deeply( { Class::MOP::get_all_metaclasses }, - \%METAS, + { + %METAS, + $CLASS_MOP_CLASS_IMMUTABLE_CLASS => $CLASS_MOP_CLASS_IMMUTABLE_CLASS->meta + }, '... got all the metaclasses'); is_deeply( @@ -47,31 +56,34 @@ is_deeply( [ Class::MOP::Attribute->meta, Class::MOP::Class->meta, + $CLASS_MOP_CLASS_IMMUTABLE_CLASS->meta, Class::MOP::Instance->meta, Class::MOP::Method->meta, Class::MOP::Method::Accessor->meta, Class::MOP::Method::Constructor->meta, + Class::MOP::Method::Generated->meta, Class::MOP::Method::Wrapped->meta, Class::MOP::Module->meta, Class::MOP::Object->meta, - Class::MOP::Package->meta, + Class::MOP::Package->meta, ], '... got all the metaclass instances'); is_deeply( [ sort { $a cmp $b } Class::MOP::get_all_metaclass_names() ], - [ qw/ + [ sort qw/ Class::MOP::Attribute Class::MOP::Class Class::MOP::Instance Class::MOP::Method Class::MOP::Method::Accessor - Class::MOP::Method::Constructor + Class::MOP::Method::Constructor + Class::MOP::Method::Generated Class::MOP::Method::Wrapped Class::MOP::Module Class::MOP::Object Class::MOP::Package - / ], + /, $CLASS_MOP_CLASS_IMMUTABLE_CLASS ], '... got all the metaclass names'); is_deeply( @@ -79,10 +91,12 @@ is_deeply( [ "Class::MOP::Attribute-" . $Class::MOP::Attribute::VERSION . "-cpan:STEVAN", "Class::MOP::Class-" . $Class::MOP::Class::VERSION . "-cpan:STEVAN", + $CLASS_MOP_CLASS_IMMUTABLE_CLASS, "Class::MOP::Instance-" . $Class::MOP::Instance::VERSION . "-cpan:STEVAN", "Class::MOP::Method-" . $Class::MOP::Method::VERSION . "-cpan:STEVAN", "Class::MOP::Method::Accessor-" . $Class::MOP::Method::Accessor::VERSION . "-cpan:STEVAN", - "Class::MOP::Method::Constructor-" . $Class::MOP::Method::Constructor::VERSION . "-cpan:STEVAN", + "Class::MOP::Method::Constructor-" . $Class::MOP::Method::Constructor::VERSION . "-cpan:STEVAN", + "Class::MOP::Method::Generated-" . $Class::MOP::Method::Generated::VERSION . "-cpan:STEVAN", "Class::MOP::Method::Wrapped-" . $Class::MOP::Method::Wrapped::VERSION . "-cpan:STEVAN", "Class::MOP::Module-" . $Class::MOP::Module::VERSION . "-cpan:STEVAN", "Class::MOP::Object-" . $Class::MOP::Object::VERSION . "-cpan:STEVAN",