X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F070_immutable_metaclass.t;h=3814526580d12a968eadf5ea8047c17e4690e16a;hb=34f7b8ea1df56dc0d5c6cf3ae03a7cfe44007085;hp=c88d91404a6a39e644f24ed92d054f93e711a57d;hpb=d9586da28fb2fc6d6693edbe2e8ad4c0a8b7e50c;p=gitmo%2FClass-MOP.git diff --git a/t/070_immutable_metaclass.t b/t/070_immutable_metaclass.t index c88d914..3814526 100644 --- a/t/070_immutable_metaclass.t +++ b/t/070_immutable_metaclass.t @@ -1,14 +1,10 @@ -#!/usr/bin/perl - use strict; use warnings; -use Test::More tests => 83; +use Test::More tests => 86; use Test::Exception; -BEGIN { - use_ok('Class::MOP'); -} +use Class::MOP; { package Foo; @@ -51,6 +47,7 @@ BEGIN { my $immutable_metaclass = $transformer->immutable_metaclass; is($transformer->metaclass, $meta, '... transformer has correct metaclass'); + ok(!$transformer->inlined_constructor, '... transformer says it did not inline the constructor'); ok($immutable_metaclass->is_anon_class, '... immutable_metaclass is an anonymous class'); #I don't understand why i need to ->meta here... @@ -62,10 +59,11 @@ BEGIN { is_deeply( [ $immutable_metaclass->superclasses ], - [ $meta->blessed ], + [ Scalar::Util::blessed($meta) ], '... immutable_metaclass superclasses are correct' ); - ok($immutable_metaclass->has_method('get_mutable_metaclass_name')); + ok($immutable_metaclass->has_method('get_mutable_metaclass_name'), + 'immutable metaclass has get_mutable_metaclass_name method'); } @@ -76,10 +74,14 @@ BEGIN { ok($meta->is_mutable, '... our class is mutable'); ok(!$meta->is_immutable, '... our class is not immutable'); + my $transformer = $meta->get_immutable_transformer; + lives_ok { $meta->make_immutable(); } '... changed Foo to be immutable'; + ok($transformer->inlined_constructor, '... transformer says it did inline the constructor'); + is($transformer, $meta->get_immutable_transformer, '... immutable transformer cache works'); ok(!$meta->make_immutable, '... make immutable now returns nothing'); ok(!$meta->is_mutable, '... our class is no longer mutable'); @@ -97,6 +99,8 @@ BEGIN { dies_ok { $meta->add_package_symbol() } '... exception thrown as expected'; dies_ok { $meta->remove_package_symbol() } '... exception thrown as expected'; + lives_ok { $meta->identifier() } '... no exception for get_package_symbol special case'; + my @supers; lives_ok { @supers = $meta->superclasses;