Test suite wide leaktesting
[dbsrgits/DBIx-Class.git] / t / lib / DBICTest / Schema.pm
index 1681cf5..1e5c564 100644 (file)
@@ -1,23 +1,42 @@
 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
-  Link
+  Genre
   Bookmark
+  Link
   #dummy
   Track
   Tag
+  Year2000CDs
+  Year1999CDs
+  CustomSql
+  Money
+  TimestampPrimaryKey
   /,
   { 'DBICTest::Schema' => [qw/
     LinerNotes
+    Artwork
+    Artwork_to_Artist
+    Image
+    Lyrics
+    LyricVersion
     OneKey
     #dummy
     TwoKeys
@@ -33,17 +52,30 @@ __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/,
-  qw/Owners BooksInLibrary/,
-  qw/ForceForeign/  
+  qw/Collection CollectionObject TypedObject Owners BooksInLibrary/,
+  qw/ForceForeign Encoded/,
 );
 
 sub sqlt_deploy_hook {
   my ($self, $sqlt_schema) = @_;
 
-  $sqlt_schema->drop_table('link');
+  $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;