Fixed export/import tests
[dbsrgits/DBM-Deep.git] / t / 18_export.t
1 ##
2 # DBM::Deep Test
3 ##
4 use strict;
5 use Test::More tests => 2;
6 use Test::Deep;
7 use t::common qw( new_fh );
8
9 use_ok( 'DBM::Deep' );
10
11 my %struct = (
12     key1 => "value1",
13     key2 => "value2",
14     array1 => [ "elem0", "elem1", "elem2", { foo => 'bar' }, [ 5 ] ],
15     hash1 => {
16         subkey1 => "subvalue1",
17         subkey2 => "subvalue2",
18         subkey3 => bless( {}, 'Foo' ),
19     },
20 );
21
22 my $compare = do {
23     my ($fh, $filename) = new_fh();
24     my $db = DBM::Deep->new({
25         file      => $filename,
26         autobless => 1,
27     });
28
29     ##
30     # Create structure in DB
31     ##
32     $db->import( %struct );
33
34     ##
35     # Export entire thing
36     ##
37     $db->export();
38 };
39
40 cmp_deeply(
41     $compare,
42     {
43         key1 => "value1",
44         key2 => "value2",
45         array1 => [ "elem0", "elem1", "elem2", { foo => 'bar' }, [ 5 ] ],
46         hash1 => {
47             subkey1 => "subvalue1",
48             subkey2 => "subvalue2",
49             subkey3 => bless( {}, 'Foo' ),
50         },
51     },
52     "Everything matches",
53 );