#!/usr/bin/env perl
use strict;
use warnings;
-use Test::More tests => 11;
+use Test::More;
use Test::Exception;
require Mouse;
use lib 't/lib';
-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??");
+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');
Mouse::load_class('SyntaxError');
} qr/Missing right curly/;
+done_testing;