--- /dev/null
+package DBSchemaBase;
+use strict;
+use warnings;
+
+use base 'DBIx::Class::Schema';
+
+sub tables_exist {
+ my $dbh = shift;
+ # assume that all tables exist if table dvd is found
+ return $dbh->tables( '%', '%', 'dvd' );
+}
+
+sub get_test_schema {
+ my ( $class, $dsn, $user, $pass ) = @_;
+ $dsn ||= 'dbi:SQLite:dbname=t/var/dvdzbr.db';
+ warn "testing $dsn\n";
+ my $schema = $class->connect( $dsn, $user, $pass, {} );
+ my $deploy_attrs;
+ $deploy_attrs->{add_drop_table} = 1 if tables_exist( $schema->storage->dbh );
+ $schema->deploy( $deploy_attrs );
+ $schema->populate('Personality', [
+ [ qw/user_id / ],
+ [ '1'],
+ [ '2' ],
+ [ '3'],
+ ]
+ );
+ $schema->populate('User', [
+ [ qw/username name password / ],
+ [ 'jgda', 'Jonas Alves', ''],
+ [ 'isa' , 'Isa', '', ],
+ [ 'zby' , 'Zbyszek Lukasiak', ''],
+ ]
+ );
+ $schema->populate('Tag', [
+ [ qw/name file / ],
+ [ 'comedy', '' ],
+ [ 'dramat', '' ],
+ [ 'australian', '' ],
+ ]
+ );
+ $schema->populate('Dvd', [
+ [ qw/name imdb_id owner current_borrower creation_date alter_date / ],
+ [ 'Picnick under the Hanging Rock', 123, 1, 3, '2003-01-16 23:12:01', undef ],
+ [ 'The Deerhunter', 1234, 1, 1, undef, undef ],
+ [ 'Rejs', 1235, 3, 1, undef, undef ],
+ [ 'Seksmisja', 1236, 3, 1, undef, undef ],
+ ]
+ );
+ $schema->populate( 'Dvdtag', [
+ [ qw/ dvd tag / ],
+ [ 1, 2 ],
+ [ 1, 3 ],
+ [ 3, 1 ],
+ [ 4, 1 ],
+ ]
+ );
+ return $schema;
+}
+
+1;