Deprecate clone_instance
[gitmo/Mouse.git] / t / 020-load-class.t
1 #!/usr/bin/env perl
2 use strict;
3 use warnings;
4 use Test::More tests => 11;
5 use Test::Exception;
6
7 require Mouse;
8 use lib 't/lib';
9
10 ok(!Mouse::is_class_loaded(), "is_class_loaded with no argument returns false");
11 ok(!Mouse::is_class_loaded(''), "can't load the empty class");
12 ok(!Mouse::is_class_loaded(\"foo"), "can't load a class name reference??");
13
14 throws_ok { Mouse::load_class()       } qr/Invalid class name \(undef\)/;
15 throws_ok { Mouse::load_class('')     } qr/Invalid class name \(\)/;
16 throws_ok { Mouse::load_class(\"foo") } qr/Invalid class name \(SCALAR\(\w+\)\)/;
17
18 ok(Mouse::load_class('Unsweetened'));
19 can_ok('Unsweetened' => 'unsweetened');
20
21 do {
22     package Class;
23     sub yay {}
24 };
25
26 ok(Mouse::load_class('Class'), "this should not die!");
27
28 throws_ok {
29     Mouse::load_class('FakeClassOhNo');
30 } qr/Can't locate /;
31
32 throws_ok {
33     Mouse::load_class('SyntaxError');
34 } qr/Missing right curly/;
35