3 use DBIx::Class::Fixtures;
4 use Test::More no_plan;
11 # set up and populate schema
12 ok(my $schema = DBICTest->init_schema(), 'got schema');
13 my $config_dir = io->catfile(qw't var configs')->name;
16 ok(my $fixtures = DBIx::Class::Fixtures->new({
17 config_dir => $config_dir,
19 }), 'object created with correct config dir'
22 foreach my $set ('simple', 'quantity', 'fetch', 'rules') {
23 no warnings 'redefine';
24 DBICTest->clear_schema($schema);
25 DBICTest->populate_schema($schema);
27 config => "$set.json",
29 directory => io->catfile(qw't var fixtures')->name
30 }), "$set dump executed okay"
33 ddl => io->catfile(qw[t lib sqlite.sql])->name,
34 connection_details => ['dbi:SQLite:'.io->catfile(qw[ t var DBIxClass.db ])->name, '', ''],
35 directory => io->catfile(qw't var fixtures')->name
38 $schema = DBICTest->init_schema( no_deploy => 1);
40 my $fixture_dir = dir(io->catfile(qw't var fixtures')->name);
41 foreach my $class ($schema->sources) {
42 my $source_dir = dir($fixture_dir, lc($class));
43 is($schema->resultset($class)->count,
44 (-e $source_dir) ? scalar($source_dir->children) : 0,
45 "correct number of $set " . lc($class)
48 next unless (-e $source_dir);
50 my $rs = $schema->resultset($class);
51 foreach my $row ($rs->all) {
52 my $file = file($source_dir, $row->id . '.fix');
53 my $HASH1; eval($file->slurp());
57 "$set " . lc($class) . " row " . $row->id . " imported okay"
64 $schema = DBICTest->init_schema();
65 $fixtures = DBIx::Class::Fixtures->new({
66 config_dir => $config_dir,
70 config => "use_create.json",
72 directory => io->catfile(qw't var fixtures')->name
73 }), "use_create dump executed okay"
75 $schema = DBICTest->init_schema( no_populate => 1 );
77 directory => io->catfile(qw't var fixtures')->name,
78 connection_details => ['dbi:SQLite:'.io->catfile(qw[ t var DBIxClass.db ])->name, '', ''],
83 $schema = DBICTest->init_schema( no_deploy => 1, no_populate => 1 );
84 is( $schema->resultset( "Artist" )->find({ artistid => 4 })->name, "Test Name", "use_create => 1 ok" );
86 $schema = DBICTest->init_schema( no_populate => 1 );
88 directory => io->catfile(qw't var fixtures')->name,
89 connection_details => ['dbi:SQLite:'.io->catfile(qw[ t var DBIxClass.db ])->name, '', ''],
92 use_find_or_create => 1
94 is( $schema->resultset( "Artist" )->find({ artistid => 4 })->name, "Test Name", "use_find_or_create => 1 ok" );
96 directory => io->catfile(qw't var fixtures')->name,
97 connection_details => ['dbi:SQLite:'.io->catfile(qw[ t var DBIxClass.db ])->name, '', ''],
100 use_find_or_create => 1
102 is( $schema->resultset( "Artist" )->find({ artistid => 4 })->name, "Test Name", "idempotent use_find_or_create => 1 ok" );