}
$class->ensure_class_loaded($comp_class);
- $comp = $comp_class->source_name || $comp;
-# $DB::single = 1;
+ my $snsub = $comp_class->can('source_name');
+ if(! $snsub ) {
+ warn "Failed to load $comp_class. Can't find source_name method. Is $comp_class really a full DBIC result class? Fix it, move it elsewhere, or make your load_classes call more specific.";
+ next;
+ }
+ $comp = $snsub->($comp_class) || $comp;
+
push(@to_register, [ $comp, $comp_class ]);
}
}
--- /dev/null
+#!/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');
+