6 BEGIN { plan tests => 13 }
16 my $db = new DBM::Deep(
23 DBM::Deep::set_digest( \&my_digest, 8 );
28 $db->{key1} = "value1";
29 ok( $db->{key1} eq "value1" );
31 $db->put("key2", "value2");
32 ok( $db->get("key2") eq "value2" );
37 ok( $db->exists("key1") );
38 ok( exists $db->{key2} );
43 ok( scalar keys %$db == 2 );
49 while ( my ($key, $value) = each %$db ) {
50 $temphash->{$key} = $value;
53 ok( ($temphash->{key1} eq "value1") && ($temphash->{key2} eq "value2") );
56 my $key = $db->first_key();
58 $temphash->{$key} = $db->get($key);
59 $key = $db->next_key($key);
62 ok( ($temphash->{key1} eq "value1") && ($temphash->{key2} eq "value2") );
67 ok( delete $db->{key1} );
68 ok( $db->delete("key2") );
70 ok( scalar keys %$db == 0 );
75 $db->put("another", "value");
78 ok( scalar keys %$db == 0 );
83 $db->put("key1", "value1");
84 $db->put("key1", "value2");
86 ok( $db->get("key1") eq "value2" );
88 $db->put("key1", "value222222222222222222222222");
90 ok( $db->get("key1") eq "value222222222222222222222222" );
93 # close, delete file, exit
101 # Warning: This digest function is for testing ONLY
102 # It is NOT intended for actual use
107 for (my $k=0; $k<length($key); $k++) {
108 $num += ord( substr($key, $k, 1) );
111 return sprintf("%00000008d", $num);