DBICx::TestDatabase::Subclass - a DBICx::TestDatabase you can add your


DBICx-TestDatabase documentation  | view source Contained in the DBICx-TestDatabase distribution.

Index


NAME

Top

DBICx::TestDatabase::Subclass - a DBICx::TestDatabase you can add your own methods to

SYNOPSIS

Top

Your test database subclass:

   package MyApp::TestDatabase
   use base qw(DBICx::TestDatabase::Subclass MyApp::Schema);

   sub foo { 
      my $self = shift;
      return $self->resultset('Foo')->create({ foo => 'bar' });
   }

Later:

   use MyApp::TestDatabase;
   my $schema = MyApp::TestDatabase->connect;
   my $foo_row = $schema->foo; # MyApp::TestDatabase::foo
   my $bars = $schema->resultset('Bar'); # MyApp::Schema::resultset

DESCRIPTION

Top

Sometimes DBICx::TestDatabase doesn't give you enough control over the object returned. This module lets you create a custom test database class.

METHODS

Top

connect

This method creates the temporary database and returns the connection. If your subclass needs to change the way connect works, do something like this:

    sub connect {
        my ($class) = @_;

        say 'This happens before we create the test database.';
        my $schema = $class->next::method;
        say '$schema is the temporary test database';

        return $schema;
    }

SEE ALSO

Top

If you want a simple test database based on a DBIC schema, just use DBICx::TestDatabase.

AUTHOR

Top

Jonathan Rockway <jrockway@cpan.org>

LICENSE

Top

Copyright (c) 2007 Jonathan Rockway.

This program is free software. You may use, modify, and redistribute it under the same terms as Perl itself.


DBICx-TestDatabase documentation  | view source Contained in the DBICx-TestDatabase distribution.