More tests added
[dbsrgits/DBM-Deep.git] / t / lib / TestSimpleHash.pm
CommitLineData
d0c365a5 1package TestSimpleHash;
2
3use 5.6.0;
4
5use strict;
6use warnings;
7
8use Test::More;
9use Test::Exception;
10
11use base 'TestBase';
12
aa7ad9c2 13sub A_assignment : Test( no_plan ) {
d0c365a5 14 my $self = shift;
d0c365a5 15 my $db = $self->{db};
aa7ad9c2 16
17 my $rotate = 0;
18
d0c365a5 19 while ( my ($k,$v) = each %{$self->{data}} ) {
aa7ad9c2 20 $rotate = ++$rotate % 3;
21
22 if ( $rotate == 0 ) {
23 $db->{$k} = $v;
24 }
25 elsif ( $rotate == 1 ) {
26 $db->put( $k => $v );
27 }
28 else {
29 $db->store( $k => $v );
30 }
d0c365a5 31
32 ok( $db->exists( $k ) );
33 ok( exists $db->{$k} );
34
aa7ad9c2 35 is( $db->{$k}, $v );
d0c365a5 36 is( $db->get($k), $v );
37 is( $db->fetch($k), $v );
d0c365a5 38 }
39}
40
aa7ad9c2 41sub B_check_keys : Test( 1 ) {
42 my $self = shift;
43 my $db = $self->{db};
44
45 my @control = sort keys %{$self->{data}};
46 my @test1 = sort keys %$db;
47 is_deeply( \@test1, \@control );
48}
49
50sub C_each : Test( 1 ) {
51 my $self = shift;
52 my $db = $self->{db};
53
54 my $temp = {};
55 while ( my ($k,$v) = each %$db ) {
56 $temp->{$k} = $v;
57 }
58
59 is_deeply( $temp, $self->{data} );
60}
61
62sub D_firstkey : Test( 1 ) {
63 my $self = shift;
64 my $db = $self->{db};
65
66 my $temp = {};
67
68 my $key = $db->first_key;
69 while ( $key ) {
70 $temp->{$key} = $db->get( $key );
71 $key = $db->next_key( $key );
72 }
73
74 is_deeply( $temp, $self->{data} );
75}
76
d0c365a5 771;
78__END__