r11685@rob-kinyons-powerbook58: rob | 2006-04-29 10:50:27 -0400
[dbsrgits/DBM-Deep.git] / t / 36_transaction_deep.t
1 use strict;
2 use Test::More tests => 7;
3 use Test::Deep;
4 use t::common qw( new_fh );
5
6 use_ok( 'DBM::Deep' );
7
8 my ($fh, $filename) = new_fh();
9 my $db1 = DBM::Deep->new(
10     file => $filename,
11     locking => 1,
12     autoflush => 1,
13 );
14
15 my $x_outer = { a => 'b' };
16 my $x_inner = { a => 'c' };;
17
18 $db1->{x} = $x_outer;
19 is( $db1->{x}{a}, 'b', "We're looking at the right value from outer" );
20
21 $db1->begin_work;
22
23     $db1->{x} = $x_inner;
24     is( $db1->{x}{a}, 'c', "We're looking at the right value from inner" );
25     is( $x_outer->{a}, 'c', "We're looking at the right value from outer" );
26
27 $db1->commit;
28
29 is( $db1->{x}{a}, 'c', "Commit means x_inner is still correct" );
30 is( $x_outer->{a}, 'c', "outer made the move" );
31 is( $x_inner->{a}, 'c', "inner is still good" );