3 use Test::More tests => 26;
7 use File::Temp qw/tempdir/;
11 use_ok( 'WebPAC::DB' );
14 ok(my $abs_path = abs_path($0), "abs_path");
15 $abs_path =~ s#/[^/]*$#/#;
16 diag "abs_path: $abs_path";
23 ok($db = new WebPAC::DB( debug => $debug, no_log => 1, ), "new");
25 ok(! $db->path, "path");
27 ok(! $db->load_ds(), 'load_ds');
28 ok(! $db->load_ds({ '000' => '000' }), 'load_ds');
30 ok(! $db->save_ds(), "save_ds");
31 ok(! $db->save_ds({ '000' => '000' }), 'save_ds');
35 ok(my $path = tempdir( CLEANUP => 1 ), "path");
37 diag "DB path: $path";
39 ok($db = new WebPAC::DB( path => $path, debug => $debug, no_log => 1 ), "new");
41 cmp_ok($db->{'path'}, 'eq', $path, "path");
43 ok(! $db->path(''), "path - disable caching");
45 cmp_ok($db->{'path'}, '==', undef, "no path");
47 ok($db->path( $path ), "path($path)");
49 cmp_ok($db->{'path'}, 'eq', $path, "path");
51 ok(! $db->load_ds(), 'load_ds');
52 ok(! $db->load_ds({ '000' => '000' }), 'load_ds');
54 ok(! $db->save_ds(), "save_ds");
59 'display' => [ 'foo' ]
64 'lookup_key' => [ 'bar' ]
66 'filename' => [ 'out/thes/001.html' ],
72 ok(! $db->save_ds(), "empty save_ds");
73 throws_ok { $db->save_ds( foo => 1 ) } qr/ds/, "save_ds - ds";
74 throws_ok { $db->save_ds( ds => \@ds ) } qr/current_filename/, "save_ds - current_filename";
75 throws_ok { $db->save_ds( ds => \@ds, 'current_filename' => 'foo' ) } qr/headline/, "save_ds - headline";
77 ok($db->save_ds( ds => \@ds, 'current_filename' => 'foo', 'headline' => 'bar' ), "save_ds");
79 ok(my @ds2 = $db->load_ds({ '000' => '000' }), "load_ds");
81 is_deeply(\@ds, \@ds2, "loaded data");
83 ok(! $db->load_ds({ '000' => 42 }), "load_ds non-existing");