Converted all tests to use File::Temp instead of t/test.db
[dbsrgits/DBM-Deep.git] / t / 17_import.t
1 ##
2 # DBM::Deep Test
3 ##
4 use strict;
5 use Test::More tests => 2;
6 use File::Temp qw( tempfile tempdir );
7
8 use_ok( 'DBM::Deep' );
9
10 my $dir = tempdir( CLEANUP => 1 );
11 my ($fh, $filename) = tempfile( 'tmpXXXX', UNLINK => 1, DIR => $dir );
12 my $db = DBM::Deep->new( $filename );
13
14 ##
15 # Create structure in memory
16 ##
17 my $struct = {
18         key1 => "value1",
19         key2 => "value2",
20         array1 => [ "elem0", "elem1", "elem2" ],
21         hash1 => {
22                 subkey1 => "subvalue1",
23                 subkey2 => "subvalue2"
24         }
25 };
26
27 ##
28 # Import entire thing
29 ##
30 $db->import( $struct );
31 undef $struct;
32
33 ##
34 # Make sure everything is there
35 ##
36 ok(
37         ($db->{key1} eq "value1") && 
38         ($db->{key2} eq "value2") && 
39         ($db->{array1} && 
40                 ($db->{array1}->[0] eq "elem0") &&
41                 ($db->{array1}->[1] eq "elem1") && 
42                 ($db->{array1}->[2] eq "elem2")
43         ) && 
44         ($db->{hash1} &&
45                 ($db->{hash1}->{subkey1} eq "subvalue1") && 
46                 ($db->{hash1}->{subkey2} eq "subvalue2")
47         )
48 );