Refactored to _descend to fix the recursion bug
[dbsrgits/DBM-Deep.git] / t / 48_autoexport_after_delete.t
CommitLineData
edd45134 1use strict;
2use warnings FATAL => 'all';
3
0e3e3555 4use Test::More;
edd45134 5use Test::Deep;
6
0e3e3555 7use t::common qw( new_dbm );
edd45134 8
9use_ok( 'DBM::Deep' );
10
0e3e3555 11my $dbm_factory = new_dbm();
12while ( my $dbm_maker = $dbm_factory->() ) {
13 my $db = $dbm_maker->();
edd45134 14
15 # Add a self-referencing connection to test export
16 my %struct = (
17 key1 => "value1",
18 key2 => "value2",
19 array1 => [ "elem0", "elem1", "elem2", { foo => 'bar' }, [ 5 ], bless( [], 'Apple' ) ],
20 hash1 => {
21 subkey1 => "subvalue1",
22 subkey2 => "subvalue2",
23 subkey3 => bless( {
24 sub_obj => bless([
25 bless([], 'Foo'),
26 ], 'Foo'),
27 sub_obj3 => bless([],'Foo'),
28 }, 'Foo' ),
29 },
30 );
31
32 $db->{foo} = \%struct;
33
34 my $x = delete $db->{foo};
35
36 cmp_deeply(
37 $x,
38 {
39 key1 => "value1",
40 key2 => "value2",
41 array1 => [ "elem0", "elem1", "elem2", { foo => 'bar' }, [ 5 ], bless( [], 'Apple' ) ],
42 hash1 => {
43 subkey1 => "subvalue1",
44 subkey2 => "subvalue2",
45 subkey3 => bless( {
46 sub_obj => bless([
47 bless([], 'Foo'),
48 ], 'Foo'),
49 sub_obj3 => bless([],'Foo'),
50 }, 'Foo' ),
51 },
52 },
53 "Everything matches",
54 );
55}
56
0e3e3555 57done_testing;