ditched plan on test where it was causing issues
[dbsrgits/DBIx-Class-Fixtures.git] / t / 12-populate-basic.t
1 #!perl
2
3 use DBIx::Class::Fixtures;
4 use Test::More no_plan;
5 use lib qw(t/lib);
6 use DBICTest;
7 use Path::Class;
8 use Data::Dumper;
9
10 # set up and populate schema
11 ok(my $schema = DBICTest->init_schema(), 'got schema');
12 my $config_dir = 't/var/configs';
13
14 # do dump
15 ok(my $fixtures = DBIx::Class::Fixtures->new({ 
16     config_dir => $config_dir, 
17     debug => 0 
18   }), 'object created with correct config dir'
19 );
20
21 foreach my $set ('simple', 'quantity', 'fetch', 'rules') {
22   no warnings 'redefine';
23   DBICTest->clear_schema($schema);
24   DBICTest->populate_schema($schema);
25   ok($fixtures->dump({ 
26       config => "$set.json", 
27       schema => $schema, 
28       directory => 't/var/fixtures' 
29     }), "$set dump executed okay"
30   );
31   $fixtures->populate({ 
32     ddl => 't/lib/sqlite.sql', 
33     connection_details => ['dbi:SQLite:t/var/DBIxClass.db', '', ''], 
34     directory => 't/var/fixtures'
35   });
36
37   $schema = DBICTest->init_schema(no_deploy => 1);
38
39   my $fixture_dir = dir('t/var/fixtures');
40   foreach my $class ($schema->sources) {
41     my $source_dir = dir($fixture_dir, lc($class));
42     is($schema->resultset($class)->count, 
43        (-e $source_dir) ? scalar($source_dir->children) : 0, 
44        "correct number of $set " . lc($class)
45     );
46
47     next unless (-e $source_dir);
48
49     my $rs = $schema->resultset($class);
50     foreach my $row ($rs->all) {
51       my $file = file($source_dir, $row->id . '.fix');
52       my $HASH1; eval($file->slurp());
53       is_deeply(
54         $HASH1, 
55         {$row->get_columns}, 
56         "$set " . lc($class) . " row " . $row->id . " imported okay"
57       );
58     }
59   }
60 }