X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Flib%2FDBICTest%2FSetup.pm;h=6b2e3f24a4adadd9e0a7ce2d5bed325c08c6abf7;hb=887ce227864c9a1c2450cfaf95458772ffea860a;hp=de113db8a6c3f24560ee9b50396b8abc755c393d;hpb=0009fa4905ab7f4585c4b470bfe049666bce8e17;p=dbsrgits%2FDBIx-Class.git diff --git a/t/lib/DBICTest/Setup.pm b/t/lib/DBICTest/Setup.pm index de113db..6b2e3f2 100755 --- a/t/lib/DBICTest/Setup.pm +++ b/t/lib/DBICTest/Setup.pm @@ -12,91 +12,15 @@ my $dsn = "dbi:SQLite:${db_file}"; my $schema = DBICTest::Schema->compose_connection('DBICTest' => $dsn); -my $dbh = DBI->connect($dsn); +$schema->storage->on_connect_do([ "PRAGMA synchronous = OFF" ]); -my $sql = <storage->dbh; open IN, "t/lib/sqlite.sql"; -{ local $/ = undef; $sql = .$sql; } +my $sql; + +{ local $/ = undef; $sql = ; } close IN; @@ -104,42 +28,98 @@ $dbh->do($_) for split(/\n\n/, $sql); $schema->storage->dbh->do("PRAGMA synchronous = OFF"); -1; - -__DATA__ - -CREATE TABLE artist (artistid INTEGER NOT NULL PRIMARY KEY, name VARCHAR); - -CREATE TABLE cd (cdid INTEGER NOT NULL PRIMARY KEY, artist INTEGER NOT NULL, - title VARCHAR, year VARCHAR); - -CREATE TABLE liner_notes (liner_id INTEGER NOT NULL PRIMARY KEY, notes VARCHAR); - -CREATE TABLE track (trackid INTEGER NOT NULL PRIMARY KEY, cd INTEGER NOT NULL, - position INTEGER NOT NULL, title VARCHAR); - -CREATE TABLE tags (tagid INTEGER NOT NULL PRIMARY KEY, cd INTEGER NOT NULL, - tag VARCHAR); - -CREATE TABLE twokeys (artist INTEGER NOT NULL, cd INTEGER NOT NULL, - PRIMARY KEY (artist, cd) ); - -CREATE TABLE fourkeys (foo INTEGER NOT NULL, bar INTEGER NOT NULL, - hello INTEGER NOT NULL, goodbye INTEGER NOT NULL, - PRIMARY KEY (foo, bar, hello, goodbye) ); - -CREATE TABLE onekey (id INTEGER NOT NULL PRIMARY KEY, - artist INTEGER NOT NULL, cd INTEGER NOT NULL ); - -CREATE TABLE self_ref (id INTEGER NOT NULL PRIMARY KEY, - name VARCHAR ); - -CREATE TABLE self_ref_alias (self_ref INTEGER NOT NULL, alias INTEGER NOT NULL, - PRIMARY KEY( self_ref, alias ) ); - -CREATE TABLE artist_undirected_map (id1 INTEGER NOT NULL, id2 INTEGER NOT NULL, PRIMARY KEY(id1, id2)); - -CREATE TABLE producer (producerid INTEGER NOT NULL PRIMARY KEY, name VARCHAR); - -CREATE TABLE cd_to_producer (cd INTEGER NOT NULL, producer INTEGER NOT NULL); +$schema->populate('Artist', [ + [ qw/artistid name/ ], + [ 1, 'Caterwauler McCrae' ], + [ 2, 'Random Boy Band' ], + [ 3, 'We Are Goth' ], +]); + +$schema->populate('CD', [ + [ qw/cdid artist title year/ ], + [ 1, 1, "Spoonful of bees", 1999 ], + [ 2, 1, "Forkful of bees", 2001 ], + [ 3, 1, "Caterwaulin' Blues", 1997 ], + [ 4, 2, "Generic Manufactured Singles", 2001 ], + [ 5, 3, "Come Be Depressed With Us", 1998 ], +]); + +$schema->populate('LinerNotes', [ + [ qw/liner_id notes/ ], + [ 2, "Buy Whiskey!" ], + [ 4, "Buy Merch!" ], + [ 5, "Kill Yourself!" ], +]); + +$schema->populate('Tag', [ + [ qw/tagid cd tag/ ], + [ 1, 1, "Blue" ], + [ 2, 2, "Blue" ], + [ 3, 3, "Blue" ], + [ 4, 5, "Blue" ], + [ 5, 2, "Cheesy" ], + [ 6, 4, "Cheesy" ], + [ 7, 5, "Cheesy" ], + [ 8, 2, "Shiny" ], + [ 9, 4, "Shiny" ], +]); + +$schema->populate('TwoKeys', [ + [ qw/artist cd/ ], + [ 1, 1 ], + [ 1, 2 ], + [ 2, 2 ], +]); + +$schema->populate('FourKeys', [ + [ qw/foo bar hello goodbye/ ], + [ 1, 2, 3, 4 ], + [ 5, 4, 3, 6 ], +]); + +$schema->populate('OneKey', [ + [ qw/id artist cd/ ], + [ 1, 1, 1 ], + [ 2, 1, 2 ], + [ 3, 2, 2 ], +]); + +$schema->populate('SelfRef', [ + [ qw/id name/ ], + [ 1, 'First' ], + [ 2, 'Second' ], +]); + +$schema->populate('SelfRefAlias', [ + [ qw/self_ref alias/ ], + [ 1, 2 ] +]); + +$schema->populate('ArtistUndirectedMap', [ + [ qw/id1 id2/ ], + [ 1, 2 ] +]); + +$schema->populate('Producer', [ + [ qw/producerid name/ ], + [ 1, 'Matt S Trout' ], + [ 2, 'Bob The Builder' ], + [ 3, 'Fred The Phenotype' ], +]); + +$schema->populate('CD_to_Producer', [ + [ qw/cd producer/ ], + [ 1, 1 ], + [ 1, 2 ], + [ 1, 3 ], +]); + +$schema->populate('TreeLike', [ + [ qw/id parent name/ ], + [ 1, 0, 'foo' ], + [ 2, 1, 'bar' ], + [ 3, 2, 'baz' ], + [ 4, 3, 'quux' ], +]); +1;