Test suite wide leaktesting
[dbsrgits/DBIx-Class.git] / t / lib / DBICTest / Schema.pm
index d683a25..1e5c564 100644 (file)
@@ -1,22 +1,34 @@
 package # hide from PAUSE
     DBICTest::Schema;
 
-use base qw/DBIx::Class::Schema/;
+use strict;
+use warnings;
+no warnings 'qw';
 
-no warnings qw/qw/;
+use base 'DBIx::Class::Schema';
+
+use DBICTest::Util qw/populate_weakregistry assert_empty_weakregistry/;
+use namespace::clean;
+
+__PACKAGE__->mk_group_accessors(simple => 'custom_attr');
 
 __PACKAGE__->load_classes(qw/
   Artist
   SequenceTest
+  BindType
   Employee
   CD
-  FileColumn
   Genre
-  Link
   Bookmark
+  Link
   #dummy
   Track
   Tag
+  Year2000CDs
+  Year1999CDs
+  CustomSql
+  Money
+  TimestampPrimaryKey
   /,
   { 'DBICTest::Schema' => [qw/
     LinerNotes
@@ -40,10 +52,11 @@ __PACKAGE__->load_classes(qw/
     'ArtistSubclass',
     'Producer',
     'CD_to_Producer',
+    'Dummy',    # this is a real result class we remove in the hook below
   ),
   qw/SelfRefAlias TreeLike TwoKeyTreeLike Event EventTZ NoPrimaryKey/,
   qw/Collection CollectionObject TypedObject Owners BooksInLibrary/,
-  qw/ForceForeign/,
+  qw/ForceForeign Encoded/,
 );
 
 sub sqlt_deploy_hook {
@@ -52,4 +65,17 @@ sub sqlt_deploy_hook {
   $sqlt_schema->drop_table('dummy');
 }
 
+my $weak_registry = {};
+
+sub clone {
+  my $self = shift->next::method(@_);
+  populate_weakregistry ( $weak_registry, $self )
+    if $INC{'Test/Builder.pm'};
+  $self;
+}
+
+END {
+  assert_empty_weakregistry($weak_registry, 'quiet');
+}
+
 1;