1 # Before 'make install' is performed this script should be runnable with
2 # 'make test'. After 'make install' it should work as 'perl Blerg-Database.t'
4 #########################
6 # change 'tests => 1' to 'tests => last_test_to_print';
8 use File::Path qw/remove_tree/;
12 use Test::More tests => 25;
13 BEGIN { use_ok('Blerg::Database') };
15 #########################
17 # Insert your test code below, the Test::More module is use()ed here so read
18 # its man page ( perldoc Test::More ) for help writing this test script.
21 my $test_user = 'barfy';
22 my $test_dir = "/tmp/blerg_test_$$";
34 $ptr = Blerg::Database::_open($test_user);
35 ok( ref $ptr eq 'struct blergPtr' );
40 ok( Blerg::Database::_store($ptr, $data) == $n );
42 # Check internal database
43 open DATA, "data/$test_user/data0";
44 my $check_data = <DATA>;
46 ok( $check_data eq $data );
49 ok( Blerg::Database::_fetch($ptr, $n) eq $data );
50 ok( not defined Blerg::Database::_fetch($ptr, $n + 1) );
53 my $t = Blerg::Database::_get_timestamp($ptr, $n);
54 ok( $t0 - $t <= 1.0 );
57 Blerg::Database::_store($ptr, "This is data A #data");
58 Blerg::Database::_store($ptr, "This is data B #data");
59 Blerg::Database::_store($ptr, "This is data C #data");
62 @list = Blerg::Database::tag_list('#data', 0, 1);
64 ok( $list[0]->{author} eq $test_user );
65 ok( $list[0]->{record} == $n );
68 ok( Blerg::Database::_set_mute($ptr, 1) );
69 ok( Blerg::Database::_get_mute($ptr) == 1 );
70 Blerg::Database::_store($ptr, "Testing more #data");
71 @list = Blerg::Database::tag_list('#data', 0, 1);
73 ok( Blerg::Database::_set_mute($ptr, 0) );
74 ok( Blerg::Database::_get_mute($ptr) == 0 );
75 Blerg::Database::_store($ptr, "Testing more #data");
76 @list = Blerg::Database::tag_list('#data', 0, 1);
81 my $count = Blerg::Database::_get_record_count($ptr);
82 ok( $count == $n + 1 );
85 ok( Blerg::Database::_close($ptr) );
88 ok( Blerg::Database::exists($test_user) );
93 # Open a nonexistent database
94 my $blerg = Blerg::Database->open_existing('nonexistent');
95 ok( not defined $blerg );
98 $blerg = Blerg::Database->open($test_user);
100 ok( ref $blerg->{ptr} eq 'struct blergPtr');
103 ok( $blerg->fetch(0) eq $data );
104 ok( $blerg->store($data) == $n + 1 );
106 ok( $blerg->fetch($n) eq $data );
113 remove_tree "/tmp/blerg_test_$$";