trAvis - MANAGER
Edit File: 020-load-class.t
#!/usr/bin/perl use strict; use warnings; use Test::More; use Test::Exception; require Mouse; use lib 't/lib'; lives_and { ok(!Mouse::is_class_loaded(undef), "is_class_loaded with undef returns false"); ok(!Mouse::is_class_loaded(''), "can't load the empty class"); ok(!Mouse::is_class_loaded(\"foo"), "can't load a class name reference"); ok(Mouse::is_class_loaded("Mouse"), "Mouse is loaded"); ok(Mouse::is_class_loaded("Test::More"), "Test::More is loaded"); }; throws_ok { Mouse::load_class(undef) } qr/Invalid class name \(undef\)/; throws_ok { Mouse::load_class('') } qr/Invalid class name \(\)/; throws_ok { Mouse::load_class(\"foo") } qr/Invalid class name \(SCALAR\(\w+\)\)/; throws_ok { Mouse::load_class("Foo!") } qr/Invalid class name/; throws_ok { Mouse::load_class("Foo::Bar42!") } qr/Invalid class name/; ok(Mouse::load_class('Unsweetened')); can_ok('Unsweetened' => 'unsweetened'); do { package Class; sub yay {} }; ok(Mouse::load_class('Class'), "this should not die!"); throws_ok { Mouse::load_class('FakeClassOhNo'); } qr/Can't locate /; throws_ok { Mouse::load_class('SyntaxError'); } qr/Missing right curly/; done_testing;