1 package TestSimpleHash;
13 sub A_assignment : Test( 23 ) {
17 my @keys = keys %{$self->{data}};
19 push @keys, $keys[0] while @keys < 3;
23 cmp_ok( keys %$db, '==', 0 );
25 foreach my $k ( @keys[0..2] ) {
26 ok( !exists $db->{$k} );
27 ok( !$db->exists( $k ) );
30 $db->{$keys[0]} = $self->{data}{$keys[0]};
31 $db->put( $keys[1] => $self->{data}{$keys[1]} );
32 $db->store( $keys[2] => $self->{data}{$keys[2]} );
34 foreach my $k ( @keys[0..2] ) {
35 ok( $db->exists( $k ) );
36 ok( exists $db->{$k} );
38 is( $db->{$k}, $self->{data}{$k} );
39 is( $db->get($k), $self->{data}{$k} );
40 is( $db->fetch($k), $self->{data}{$k} );
44 $db->{$_} = $self->{data}{$_} for @keys[3..$#keys];
47 cmp_ok( keys %$db, '==', @keys );
50 sub B_check_keys : Test( 1 ) {
54 my @control = sort keys %{$self->{data}};
55 my @test1 = sort keys %$db;
56 is_deeply( \@test1, \@control );
59 sub C_each : Test( 1 ) {
64 while ( my ($k,$v) = each %$db ) {
68 is_deeply( $temp, $self->{data} );
71 sub D_firstkey : Test( 1 ) {
77 my $key = $db->first_key;
79 $temp->{$key} = $db->get( $key );
80 $key = $db->next_key( $key );
83 is_deeply( $temp, $self->{data} );
86 sub E_delete : Test( 12 ) {
90 my @keys = keys %{$self->{data}};
91 cmp_ok( keys %$db, '==', @keys );
94 ok( exists $db->{$key1} );
95 is( $db->{$key1}, $self->{data}{$key1} );
96 is( delete $db->{$key1}, $self->{data}{$key1} );
97 ok( !exists $db->{$key1} );
98 cmp_ok( keys %$db, '==', @keys - 1 );
101 ok( exists $db->{$key2} );
102 is( $db->{$key2}, $self->{data}{$key2} );
103 is( $db->delete( $key2 ), $self->{data}{$key2} );
104 ok( !exists $db->{$key2} );
105 cmp_ok( keys %$db, '==', @keys - 2 );
107 @{$db}{ @keys[0,1] } = @{$self->{data}}{@keys[0,1]};
109 cmp_ok( keys %$db, '==', @keys );
112 sub F_clear : Test( 3 ) {
114 my $db = $self->{db};
116 my @keys = keys %{$self->{data}};
117 cmp_ok( keys %$db, '==', @keys );
121 cmp_ok( keys %$db, '==', 0 );
123 %$db = %{$self->{data}};
124 cmp_ok( keys %$db, '==', @keys );
127 sub G_reassign_and_close : Test( 4 ) {
130 my @keys = keys %{$self->{data}};
134 my $long_value = 'long value' x 100;
135 $self->{db}{$key1} = $long_value;
136 is( $self->{db}{$key1}, $long_value );
138 my $filename = $self->{db}->_root->{file};
141 $self->{db} = DBM::Deep->new( $filename );
143 is( $self->{db}{$key1}, $long_value );
145 $self->{db}{$key1} = $self->{data}{$key1};
146 is( $self->{db}{$key1}, $self->{data}{$key1} );
148 cmp_ok( keys %{$self->{db}}, '==', @keys );