1 package TestSimpleHash;
13 sub A_assignment : Test( 23 ) {
17 my @keys = keys %{$self->{data}};
19 push @keys, $keys[0] while @keys < 3;
21 cmp_ok( keys %$db, '==', 0 );
23 foreach my $k ( @keys[0..2] ) {
24 ok( !exists $db->{$k} );
25 ok( !$db->exists( $k ) );
28 $db->{$keys[0]} = $self->{data}{$keys[0]};
29 $db->put( $keys[1] => $self->{data}{$keys[1]} );
30 $db->store( $keys[2] => $self->{data}{$keys[2]} );
32 foreach my $k ( @keys[0..2] ) {
33 ok( $db->exists( $k ) );
34 ok( exists $db->{$k} );
36 is( $db->{$k}, $self->{data}{$k} );
37 is( $db->get($k), $self->{data}{$k} );
38 is( $db->fetch($k), $self->{data}{$k} );
42 $db->{$_} = $self->{data}{$_} for @keys[3..$#keys];
45 cmp_ok( keys %$db, '==', @keys );
48 sub B_check_keys : Test( 1 ) {
52 my @control = sort keys %{$self->{data}};
53 my @test1 = sort keys %$db;
54 is_deeply( \@test1, \@control );
57 sub C_each : Test( 1 ) {
62 while ( my ($k,$v) = each %$db ) {
66 is_deeply( $temp, $self->{data} );
69 sub D_firstkey : Test( 1 ) {
75 my $key = $db->first_key;
77 $temp->{$key} = $db->get( $key );
78 $key = $db->next_key( $key );
81 is_deeply( $temp, $self->{data} );
84 sub E_delete : Test( 12 ) {
88 my @keys = keys %{$self->{data}};
89 cmp_ok( keys %$db, '==', @keys );
92 ok( exists $db->{$key1} );
93 is( $db->{$key1}, $self->{data}{$key1} );
94 is( delete $db->{$key1}, $self->{data}{$key1} );
95 ok( !exists $db->{$key1} );
96 cmp_ok( keys %$db, '==', @keys - 1 );
99 ok( exists $db->{$key2} );
100 is( $db->{$key2}, $self->{data}{$key2} );
101 is( $db->delete( $key2 ), $self->{data}{$key2} );
102 ok( !exists $db->{$key2} );
103 cmp_ok( keys %$db, '==', @keys - 2 );
105 @{$db}{ @keys[0,1] } = @{$self->{data}}{@keys[0,1]};
107 cmp_ok( keys %$db, '==', @keys );
110 sub F_clear : Test( 3 ) {
112 my $db = $self->{db};
114 my @keys = keys %{$self->{data}};
115 cmp_ok( keys %$db, '==', @keys );
119 cmp_ok( keys %$db, '==', 0 );
121 %$db = %{$self->{data}};
122 cmp_ok( keys %$db, '==', @keys );
125 sub G_reassign_and_close : Test( 4 ) {
128 my @keys = keys %{$self->{data}};
132 my $long_value = 'long value' x 100;
133 $self->{db}{$key1} = $long_value;
134 is( $self->{db}{$key1}, $long_value );
136 my $filename = $self->{db}->_root->{file};
139 $self->{db} = DBM::Deep->new( $filename );
141 is( $self->{db}{$key1}, $long_value );
143 $self->{db}{$key1} = $self->{data}{$key1};
144 is( $self->{db}{$key1}, $self->{data}{$key1} );
146 cmp_ok( keys %{$self->{db}}, '==', @keys );