X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=gitmo%2FMouse.git;a=blobdiff_plain;f=t%2F001_mouse%2F020-load-class.t;fp=t%2F001_mouse%2F020-load-class.t;h=705c0db9ab33154301003fc176a90032a3cf77a7;hp=0000000000000000000000000000000000000000;hb=920139b3efca66d2caeeef306c97fa0da62c6b73;hpb=b644ef5d28f6076859080482d8b44727c1410e1c diff --git a/t/001_mouse/020-load-class.t b/t/001_mouse/020-load-class.t new file mode 100644 index 0000000..705c0db --- /dev/null +++ b/t/001_mouse/020-load-class.t @@ -0,0 +1,35 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use Test::More tests => 11; +use Test::Exception; + +require Mouse; +use lib 't/lib'; + +ok(!Mouse::is_class_loaded(), "is_class_loaded with no argument 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??"); + +throws_ok { Mouse::load_class() } 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+\)\)/; + +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/; +