950b800f844efacc403d619b459e525b4c661512
[dbsrgits/DBM-Deep.git] / t / lib / TestBase.pm
1 package TestBase;
2
3 use 5.6.0;
4
5 use strict;
6 use warnings;
7
8 use File::Path ();
9 use File::Temp ();
10 use Fcntl qw( :flock );
11
12 use base 'Test::Class';
13
14 use DBM::Deep;
15
16 sub setup_dir : Test(startup) {
17     my $self = shift;
18
19     $self->{workdir} ||= File::Temp::tempdir();
20
21     return;
22 }
23
24 sub new_file {
25     my $self = shift;
26
27     $self->setup_dir;
28
29     my ($fh, $filename) = File::Temp::tempfile(
30         'tmpXXXX', DIR => $self->{workdir}, CLEANUP => 1,
31     );
32     flock( $fh, LOCK_UN );
33
34     return $filename;
35 }
36
37 sub remove_dir : Test(shutdown) {
38     my $self = shift;
39
40     File::Path::rmtree( $self->{workdir} );
41
42     return;
43 }
44
45 1;
46 __END__