Added failing tests for `external`, fix for tests
[dbsrgits/DBIx-Class-Fixtures.git] / t / 18-extra.t
CommitLineData
6d01d9c1 1use DBIx::Class::Fixtures;
2use Test::More;
3use File::Path 'rmtree';
4
5use lib qw(t/lib);
6use ExtraTest::Schema;
01a3246a 7use Test::TempDir::Tiny;
66d02e24 8use IO::All;
6d01d9c1 9
01a3246a 10my $tempdir = tempdir;
11
6d01d9c1 12(my $schema = ExtraTest::Schema->connect(
13 'DBI:SQLite::memory:','',''))->init_schema;
14
66d02e24 15open(my $fh, '<', io->catfile(qw't 18-extra.t')->name) ||
6d01d9c1 16 die "Can't open the filehandle, test is trash!";
17
18ok my $row = $schema
19 ->resultset('Photo')
20 ->create({
3d4debec 21 album=> {name=>'masterpiece'},
22 photographer=> {name=>'john'},
6d01d9c1 23 file=>$fh,
24 });
25
26close($fh);
27
28my $fixtures = DBIx::Class::Fixtures
29 ->new({
66d02e24 30 config_dir => io->catfile(qw't var configs')->name,
31 config_attrs => { photo_dir => io->catfile(qw't var files')->name },
6d01d9c1 32 debug => 0 });
33
34ok(
35 $fixtures->dump({
36 config => 'extra.json',
37 schema => $schema,
01a3246a 38 directory => io->catfile($tempdir, qw" photos")->name }),
6d01d9c1 39 'fetch dump executed okay');
40
41ok my $key = $schema->resultset('Photo')->first->file;
42
43ok -e $key, 'File Created';
44
45ok $schema->resultset('Photo')->delete;
3d4debec 46ok $schema->resultset('Photographer')->delete;
47ok $schema->resultset('Album')->delete;
6d01d9c1 48
49ok ! -e $key, 'File Deleted';
50
51ok(
52 $fixtures->populate({
53 no_deploy => 1,
54 schema => $schema,
01a3246a 55 directory => io->catfile($tempdir, qw" photos")->name}),
6d01d9c1 56 'populated');
57
58is $key, $schema->resultset('Photo')->first->file,
59 'key is key';
60
61ok -e $key, 'File Restored';
62
63done_testing;
64
65END {
66d02e24 66 rmtree io->catfile(qw't var files')->name;
01a3246a 67 rmtree io->catfile($tempdir, qw'photos')->name;
6d01d9c1 68}