addition of use_create option for populate
[dbsrgits/DBIx-Class-Fixtures.git] / t / 12-populate-basic.t
CommitLineData
4fb695f4 1#!perl
2
3use DBIx::Class::Fixtures;
675669cc 4use Test::More no_plan;
4fb695f4 5use lib qw(t/lib);
6use DBICTest;
7use Path::Class;
3c528252 8use Data::Dumper;
4fb695f4 9
10# set up and populate schema
11ok(my $schema = DBICTest->init_schema(), 'got schema');
4fb695f4 12my $config_dir = 't/var/configs';
13
14# do dump
8a1df391 15ok(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 21foreach 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});
68ok( $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 );
83is( $schema->resultset( "Artist" )->find({ artistid => 4 })->name, "Test Name", "use_create => 1 ok" );