Converted all tests to use File::Temp instead of t/test.db
[dbsrgits/DBM-Deep.git] / t / 07_locking.t
CommitLineData
ffed8b01 1##
2# DBM::Deep Test
3##
4use strict;
25369e06 5use Test::More tests => 4;
2a81bf9e 6use File::Temp qw( tempfile tempdir );
ffed8b01 7
bd773913 8use_ok( 'DBM::Deep' );
ffed8b01 9
2a81bf9e 10my $dir = tempdir( CLEANUP => 1 );
11my ($fh, $filename) = tempfile( 'tmpXXXX', UNLINK => 1, DIR => $dir );
bd773913 12my $db = DBM::Deep->new(
2a81bf9e 13 file => $filename,
2ccea4dc 14 locking => 1,
ffed8b01 15);
ffed8b01 16
17##
18# basic put/get
19##
20$db->{key1} = "value1";
bd773913 21is( $db->{key1}, "value1", "key1 is set" );
ffed8b01 22
25369e06 23$db->{key2} = [ 1 .. 3 ];
24is( $db->{key2}[1], 2 );
25
ffed8b01 26##
27# explicit lock
28##
bd773913 29$db->lock( DBM::Deep->LOCK_EX );
ffed8b01 30$db->{key1} = "value2";
31$db->unlock();
bd773913 32is( $db->{key1}, "value2", "key1 is overridden" );