New namespace::clean to resolve the Package::Stash megafail
[dbsrgits/DBIx-Class.git] / t / 39load_namespaces_3.t
index b066d64..c1df868 100644 (file)
@@ -1,41 +1,36 @@
-#!/usr/bin/perl
-
 use strict;
 use warnings;
 use Test::More;
+use Test::Exception;
+use Test::Warn;
 
-unshift(@INC, './t/lib');
-
-plan tests => 10;
+use lib qw(t/lib);
+use DBICTest; # do not remove even though it is not used
 
-my $warnings;
-eval {
-    local $SIG{__WARN__} = sub { $warnings .= shift };
-    package DBICNSTestOther;
-    use base qw/DBIx::Class::Schema/;
-    __PACKAGE__->load_namespaces(
-        source_namespace => [ '+DBICNSTest::Src', '+DBICNSTest::OtherSrc' ],
-        resultset_namespace => '+DBICNSTest::RSet',
-        result_namespace => '+DBICNSTest::Res'
-    );
-};
-ok(!$@) or diag $@;
-like($warnings, qr/load_namespaces found ResultSet class C with no corresponding source-definition class/);
-like($warnings, qr/load_namespaces found Result class C with no corresponding source-definition class/);
+lives_ok (sub {
+  warnings_exist ( sub {
+      package DBICNSTestOther;
+      use base qw/DBIx::Class::Schema/;
+      __PACKAGE__->load_namespaces(
+          result_namespace => [ '+DBICNSTest::Rslt', '+DBICNSTest::OtherRslt' ],
+          resultset_namespace => '+DBICNSTest::RSet',
+      );
+    },
+    qr/load_namespaces found ResultSet class C with no corresponding Result class/,
+  );
+});
 
 my $source_a = DBICNSTestOther->source('A');
 isa_ok($source_a, 'DBIx::Class::ResultSource::Table');
 my $rset_a   = DBICNSTestOther->resultset('A');
 isa_ok($rset_a, 'DBICNSTest::RSet::A');
-my $resclass_a    = DBICNSTestOther->resultset('A')->result_class;
-is($resclass_a, 'DBICNSTest::Res::A');
 
 my $source_b = DBICNSTestOther->source('B');
 isa_ok($source_b, 'DBIx::Class::ResultSource::Table');
 my $rset_b   = DBICNSTestOther->resultset('B');
 isa_ok($rset_b, 'DBIx::Class::ResultSet');
-my $resclass_b    = DBICNSTestOther->resultset('B')->result_class;
-is($resclass_b, 'DBICNSTest::Src::B');
 
 my $source_d = DBICNSTestOther->source('D');
 isa_ok($source_d, 'DBIx::Class::ResultSource::Table');
+
+done_testing;