Commit | Line | Data |
c3398f5b |
1 | #!/usr/bin/env perl |
2 | use strict; |
3 | use warnings; |
0ffc4183 |
4 | use Test::More; |
eab81545 |
5 | use Test::Exception; |
c3398f5b |
6 | |
7 | require Mouse; |
8 | use lib 't/lib'; |
9 | |
0ffc4183 |
10 | lives_and { |
11 | ok(!Mouse::is_class_loaded(undef), "is_class_loaded with undef returns false"); |
12 | ok(!Mouse::is_class_loaded(''), "can't load the empty class"); |
13 | ok(!Mouse::is_class_loaded(\"foo"), "can't load a class name reference"); |
14 | |
15 | ok(Mouse::is_class_loaded("Mouse"), "Mouse is loaded"); |
16 | ok(Mouse::is_class_loaded("Test::More"), "Test::More is loaded"); |
17 | }; |
9694b71b |
18 | |
2a9a2118 |
19 | throws_ok { Mouse::load_class(undef) } qr/Invalid class name \(undef\)/; |
9694b71b |
20 | throws_ok { Mouse::load_class('') } qr/Invalid class name \(\)/; |
21 | throws_ok { Mouse::load_class(\"foo") } qr/Invalid class name \(SCALAR\(\w+\)\)/; |
262801ef |
22 | |
0ffc4183 |
23 | throws_ok { Mouse::load_class("Foo!") } qr/Invalid class name/; |
24 | throws_ok { Mouse::load_class("Foo::Bar42!") } qr/Invalid class name/; |
25 | |
abe28e11 |
26 | ok(Mouse::load_class('Unsweetened')); |
27 | can_ok('Unsweetened' => 'unsweetened'); |
c3398f5b |
28 | |
29 | do { |
30 | package Class; |
2a674d23 |
31 | sub yay {} |
c3398f5b |
32 | }; |
33 | |
34 | ok(Mouse::load_class('Class'), "this should not die!"); |
35 | |
2a674d23 |
36 | throws_ok { |
37 | Mouse::load_class('FakeClassOhNo'); |
38 | } qr/Can't locate /; |
c3398f5b |
39 | |
40 | throws_ok { |
abe28e11 |
41 | Mouse::load_class('SyntaxError'); |
c3398f5b |
42 | } qr/Missing right curly/; |
43 | |
0ffc4183 |
44 | done_testing; |