Test suite wide leaktesting
[dbsrgits/DBIx-Class.git] / t / lib / DBICTest / Schema.pm
index 4c46a54..1e5c564 100644 (file)
@@ -1,8 +1,81 @@
-package DBICTest::Schema;
+package # hide from PAUSE
+    DBICTest::Schema;
 
-use base qw/DBIx::Class::Schema/;
+use strict;
+use warnings;
+no warnings '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 CD Track Tag LinerNotes OneKey TwoKeys FourKeys/);
+  Artist
+  SequenceTest
+  BindType
+  Employee
+  CD
+  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
+    Serialized
+  /]},
+  (
+    'FourKeys',
+    'FourKeys_to_TwoKeys',
+    '#dummy',
+    'SelfRef',
+    'ArtistUndirectedMap',
+    'ArtistSourceName',
+    '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 Encoded/,
+);
+
+sub sqlt_deploy_hook {
+  my ($self, $sqlt_schema) = @_;
+
+  $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;