From: Dave Rolsky Date: Mon, 1 Aug 2011 01:46:05 +0000 (-0500) Subject: remove tests for load_class ... X-Git-Tag: 2.0300~89 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=f3633d986b3e7552b10bb25ef33c752dd42bf0b4;p=gitmo%2FMoose.git remove tests for load_class & friends - copied some interesting tests to the Class::Load test suite first --- diff --git a/t/cmop/lib/TestClassLoaded.pm b/t/cmop/lib/TestClassLoaded.pm deleted file mode 100644 index 8e89f10..0000000 --- a/t/cmop/lib/TestClassLoaded.pm +++ /dev/null @@ -1,8 +0,0 @@ -package TestClassLoaded; -use strict; -use warnings; - -sub a_method { 'a_method' } - -1; - diff --git a/t/cmop/lib/TestClassLoaded/Sub.pm b/t/cmop/lib/TestClassLoaded/Sub.pm deleted file mode 100644 index 49a6c17..0000000 --- a/t/cmop/lib/TestClassLoaded/Sub.pm +++ /dev/null @@ -1,7 +0,0 @@ -package TestClassLoaded::Sub; -use strict; -use warnings; - -sub ver_test { return "TestClassLoaded ver $TestClassLoaded::VERSION" } - -1; diff --git a/t/cmop/lib/TestClassLoaded2.pm b/t/cmop/lib/TestClassLoaded2.pm deleted file mode 100644 index 46c18f9..0000000 --- a/t/cmop/lib/TestClassLoaded2.pm +++ /dev/null @@ -1,8 +0,0 @@ -package TestClassLoaded2; -use strict; -use warnings; - -our $VERSION = 42; - -1; - diff --git a/t/cmop/lib/TestClassLoaded3.pm b/t/cmop/lib/TestClassLoaded3.pm deleted file mode 100644 index 5fe67eb..0000000 --- a/t/cmop/lib/TestClassLoaded3.pm +++ /dev/null @@ -1,8 +0,0 @@ -package TestClassLoaded3; -use strict; -use warnings; - -our @ISA = 'Foo'; - -1; - diff --git a/t/cmop/load_class.t b/t/cmop/load_class.t deleted file mode 100644 index f471fe9..0000000 --- a/t/cmop/load_class.t +++ /dev/null @@ -1,176 +0,0 @@ -use strict; -use warnings; - -use FindBin; -use File::Spec::Functions; - -use Test::More; -use Test::Fatal; - -use Class::MOP; - -use lib catdir($FindBin::Bin, 'lib'); - -isnt( exception { - Class::MOP::is_class_loaded() -}, undef, "is_class_loaded with no argument dies" ); - -ok(!Class::MOP::is_class_loaded(''), "can't load the empty class"); -ok(!Class::MOP::is_class_loaded(\"foo"), "can't load a class name reference??"); - -ok(!Class::MOP::_is_valid_class_name(undef), 'undef is not a valid class name'); -ok(!Class::MOP::_is_valid_class_name(''), 'empty string is not a valid class name'); -ok(!Class::MOP::_is_valid_class_name(\"foo"), 'a reference is not a valid class name'); -ok(!Class::MOP::_is_valid_class_name('bogus name'), q{'bogus name' is not a valid class name}); -ok(Class::MOP::_is_valid_class_name('Foo'), q{'Foo' is a valid class name}); -ok(Class::MOP::_is_valid_class_name('Foo::Bar'), q{'Foo::Bar' is a valid class name}); -ok(Class::MOP::_is_valid_class_name('Foo_::Bar2'), q{'Foo_::Bar2' is a valid class name}); -like( exception { Class::MOP::load_class('bogus name') }, qr/Invalid class name \(bogus name\)/ ); - -like( exception { - Class::MOP::load_class('__PACKAGE__') -}, qr/__PACKAGE__\.pm.*\@INC/, 'errors sanely on __PACKAGE__.pm' ); - -Class::MOP::load_class('BinaryTree'); -can_ok('BinaryTree' => 'traverse'); - -do { - package Class; - sub method {} -}; - - -{ - local $@; - eval { Class::MOP::load_class('Class') }; - ok( ! $@, 'load_class does not die if the package is already defined' ); -} - -ok( !Class::MOP::does_metaclass_exist("Class"), "no metaclass for non MOP class" ); - -like( exception { - Class::MOP::load_class('FakeClassOhNo'); -}, qr/Can't locate / ); - -like( exception { - Class::MOP::load_class('SyntaxError'); -}, qr/Missing right curly/ ); - -like( exception { - delete $INC{'SyntaxError.pm'}; - Class::MOP::load_first_existing_class( - 'FakeClassOhNo', 'SyntaxError', 'Class' - ); -}, qr/Missing right curly/, 'load_first_existing_class does not pass over an existing (bad) module' ); - -like( exception { - Class::MOP::load_class('This::Does::Not::Exist'); -}, qr{Can't locate This/Does/Not/Exist\.pm in \@INC}, 'load_first_existing_class throws a familiar error for a single module' ); - -{ - package Other; - use constant foo => "bar"; -} - -is( exception { - ok(Class::MOP::is_class_loaded("Other"), 'is_class_loaded(Other)'); -}, undef, "a class with just constants is still a class" ); - -{ - package Lala; - use metaclass; -} - -is( exception { - is(Class::MOP::load_first_existing_class("Lala", "Does::Not::Exist"), "Lala", 'load_first_existing_class 1/2 params ok, class name returned'); - is(Class::MOP::load_first_existing_class("Does::Not::Exist", "Lala"), "Lala", 'load_first_existing_class 2/2 params ok, class name returned'); -}, undef, 'load_classes works' ); - -like( exception { - Class::MOP::load_first_existing_class("Does::Not::Exist", "Also::Does::Not::Exist") -}, qr/Does::Not::Exist.*Also::Does::Not::Exist/s, 'Multiple non-existant classes cause exception' ); - -{ - sub whatever { - TestClassLoaded::this_method_does_not_even_exist(); - } - - ok( ! Class::MOP::is_class_loaded('TestClassLoaded'), - 'the mere mention of TestClassLoaded in the whatever sub does not make us think it has been loaded' ); -} - -{ - require TestClassLoaded::Sub; - ok( ! Class::MOP::is_class_loaded('TestClassLoaded'), - 'requiring TestClassLoaded::Sub does not make us think TestClassLoaded is loaded' ); -} - -{ - require TestClassLoaded; - ok( Class::MOP::is_class_loaded('TestClassLoaded'), - 'We see that TestClassLoaded is loaded after requiring it (it has methods but no $VERSION or @ISA)' ); -} - -{ - require TestClassLoaded2; - ok( Class::MOP::is_class_loaded('TestClassLoaded2'), - 'We see that TestClassLoaded2 is loaded after requiring it (it has a $VERSION but no methods or @ISA)' ); -} - -{ - require TestClassLoaded3; - ok( Class::MOP::is_class_loaded('TestClassLoaded3'), - 'We see that TestClassLoaded3 is loaded after requiring it (it has an @ISA but no methods or $VERSION)' ); -} - -{ - { - package Not::Loaded; - our @ISA; - } - - ok( ! Class::MOP::is_class_loaded('Not::Loaded'), - 'the mere existence of an @ISA for a package does not mean a class is loaded' ); -} - -{ - { - package Loaded::Ish; - our @ISA = 'Foo'; - } - - ok( Class::MOP::is_class_loaded('Loaded::Ish'), - 'an @ISA with members does mean a class is loaded' ); -} - -{ - { - package Class::WithVersion; - our $VERSION = 23; - }; - - ok( Class::MOP::is_class_loaded('Class::WithVersion', { -version => 13 }), - 'version 23 satisfies version requirement 13' ); - - ok( !Class::MOP::is_class_loaded('Class::WithVersion', { -version => 42 }), - 'version 23 does not satisfy version requirement 42' ); - - like( exception { - Class::MOP::load_first_existing_class('Affe', 'Tiger', 'Class::WithVersion' => { -version => 42 }); - }, qr/Class::WithVersion version 42 required--this is only version 23/, 'load_first_existing_class gives correct exception on old version' ); - - is( exception { - Class::MOP::load_first_existing_class('Affe', 'Tiger', 'Class::WithVersion' => { -version => 13 }); - }, undef, 'loading class with required version with load_first_existing_class' ); - - like( exception { - Class::MOP::load_class('Class::WithVersion' => { -version => 42 }); - }, qr/Class::WithVersion version 42 required--this is only version 23/, 'load_class gives correct exception on old version' ); - - is( exception { - Class::MOP::load_class('Class::WithVersion' => { -version => 13 }); - }, undef, 'loading class with required version with load_class' ); - -} - -done_testing; diff --git a/t/cmop/load_class_gvstash_detect_bug.t b/t/cmop/load_class_gvstash_detect_bug.t deleted file mode 100644 index ac2edaf..0000000 --- a/t/cmop/load_class_gvstash_detect_bug.t +++ /dev/null @@ -1,28 +0,0 @@ -use strict; -use warnings; - -use FindBin; -use File::Spec::Functions; - -use Test::More; -use Test::Fatal; - -use Class::MOP; - -use lib catdir($FindBin::Bin, 'lib'); - -is( exception { - Class::MOP::load_class('TestClassLoaded::Sub'); -}, undef ); - -TestClassLoaded->can('a_method'); - -is( exception { - Class::MOP::load_class('TestClassLoaded'); -}, undef ); - -is( exception { - TestClassLoaded->a_method; -}, undef ); - -done_testing;