added ensure_class_loaded method to Componentized, which should fix problems with...
[dbsrgits/DBIx-Class.git] / t / run / 30ensure_class_loaded.tl
1 use Class::Inspector;
2
3 BEGIN {
4   package TestPackage::A;
5   sub some_method {}
6 }
7
8 sub run_tests {
9
10 my $schema = shift;
11 plan tests => 6;
12
13 ok(Class::Inspector->loaded('TestPackage::A'),
14    'anon. package exists');
15 eval {
16   $schema->ensure_class_loaded('TestPackage::A');
17 };
18
19 ok(!$@, 'ensure_class_loaded detected an anon. class');
20
21 eval {
22   $schema->ensure_class_loaded('FakePackage::B');
23 };
24
25 like($@, qr/Can't locate/,
26      'ensure_class_loaded threw exception for nonexistent class');
27
28 ok(!Class::Inspector->loaded('DBICTest::FakeComponent'),
29    'DBICTest::FakeComponent not loaded yet');
30
31 eval {
32   $schema->ensure_class_loaded('DBICTest::FakeComponent');
33 };
34
35 ok(!$@, 'ensure_class_loaded detected an existing but non-loaded class');
36 ok(Class::Inspector->loaded('DBICTest::FakeComponent'),
37    'DBICTest::FakeComponent now loaded');
38 }
39
40 1;