Commit | Line | Data |
4fb695f4 |
1 | #!perl |
2 | |
3 | use DBIx::Class::Fixtures; |
675669cc |
4 | use Test::More no_plan; |
4fb695f4 |
5 | use lib qw(t/lib); |
6 | use DBICTest; |
7 | use Path::Class; |
3c528252 |
8 | use Data::Dumper; |
4fb695f4 |
9 | |
10 | # set up and populate schema |
11 | ok(my $schema = DBICTest->init_schema(), 'got schema'); |
4fb695f4 |
12 | my $config_dir = 't/var/configs'; |
13 | |
14 | # do dump |
8a1df391 |
15 | ok(my $fixtures = DBIx::Class::Fixtures->new({ |
16 | config_dir => $config_dir, |
17 | debug => 0 |
18 | }), 'object created with correct config dir' |
19 | ); |
4fb695f4 |
20 | |
3c528252 |
21 | foreach my $set ('simple', 'quantity', 'fetch', 'rules') { |
22 | no warnings 'redefine'; |
23 | DBICTest->clear_schema($schema); |
24 | DBICTest->populate_schema($schema); |
8a1df391 |
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 | |
65a80d4e |
37 | $schema = DBICTest->init_schema( no_deploy => 1); |
3c528252 |
38 | |
39 | my $fixture_dir = dir('t/var/fixtures'); |
40 | foreach my $class ($schema->sources) { |
41 | my $source_dir = dir($fixture_dir, lc($class)); |
8a1df391 |
42 | is($schema->resultset($class)->count, |
43 | (-e $source_dir) ? scalar($source_dir->children) : 0, |
44 | "correct number of $set " . lc($class) |
45 | ); |
46 | |
3c528252 |
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()); |
8a1df391 |
53 | is_deeply( |
54 | $HASH1, |
55 | {$row->get_columns}, |
56 | "$set " . lc($class) . " row " . $row->id . " imported okay" |
57 | ); |
3c528252 |
58 | } |
59 | } |
60 | } |
65a80d4e |
61 | |
62 | # use_create => 1 |
63 | $schema = DBICTest->init_schema(); |
64 | $fixtures = DBIx::Class::Fixtures->new({ |
65 | config_dir => $config_dir, |
66 | debug => 0 |
67 | }); |
68 | ok( $fixtures->dump({ |
69 | config => "use_create.json", |
70 | schema => $schema, |
71 | directory => 't/var/fixtures' |
72 | }), "use_create dump executed okay" |
73 | ); |
74 | $schema = DBICTest->init_schema( no_populate => 1 ); |
75 | $fixtures->populate({ |
76 | directory => 't/var/fixtures', |
77 | connection_details => ['dbi:SQLite:t/var/DBIxClass.db', '', ''], |
78 | schema => $schema, |
79 | no_deploy => 1, |
80 | use_create => 1 |
81 | }); |
82 | $schema = DBICTest->init_schema( no_deploy => 1, no_populate => 1 ); |
83 | is( $schema->resultset( "Artist" )->find({ artistid => 4 })->name, "Test Name", "use_create => 1 ok" ); |