Add saner warning when non-source classes encountered in schema subdir by load_classes.
[dbsrgits/DBIx-Class.git] / t / 102load_classes.t
diff --git a/t/102load_classes.t b/t/102load_classes.t
new file mode 100644 (file)
index 0000000..e7e82f4
--- /dev/null
@@ -0,0 +1,25 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use Test::More;
+
+unshift(@INC, './t/lib');
+
+plan tests => 4;
+
+my $warnings;
+eval {
+    local $SIG{__WARN__} = sub { $warnings .= shift };
+    package DBICTest::Schema;
+    use base qw/DBIx::Class::Schema/;
+    __PACKAGE__->load_classes;
+};
+ok(!$@, 'Loaded all loadable classes') or diag $@;
+like($warnings, qr/Failed to load DBICTest::Schema::NoSuchClass. Can't find source_name method. Is DBICTest::Schema::NoSuchClass really a full DBIC result class?/, 'Warned about broken result class');
+
+my $source_a = DBICTest::Schema->source('Artist');
+isa_ok($source_a, 'DBIx::Class::ResultSource::Table');
+my $rset_a   = DBICTest::Schema->resultset('Artist');
+isa_ok($rset_a, 'DBIx::Class::ResultSet');
+