File: 020-load-class.t

package info (click to toggle)
libmouse-perl 2.6.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,156 kB
  • sloc: perl: 14,569; ansic: 218; makefile: 8
file content (44 lines) | stat: -rw-r--r-- 1,217 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/usr/bin/env 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;