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