Bot-Cobalt
view release on metacpan or search on metacpan
t/06_db/01_db.t view on Meta::CPAN
ok( $db->is_open, 'Temp database is_open' );
ok( $db->put('testkey', { Deep => { Hash => 1 } }), 'Database ref put()');
ok( ($db->dbkeys)[0] eq 'testkey', 'DB has expected dbkeys()');
my $ref;
ok( $ref = $db->get('testkey'), 'Database get()' );
is_deeply( $ref,
{ Deep => { Hash => 1 } }
);
undef $ref;
is( $db->dbkeys, 1, 'Database dbkeys()' );
$db->dbclose;
ok( !$db->is_open, 'Temp database closed' );
ok( $db->dbopen, 'Temp database reopen' );
ok( $ref = $db->get('testkey'), 'Database get() 2' );
is_deeply( $ref,
{ Deep => { Hash => 1 } }
);
ok( $db->put('scalarkey', "A scalar"),
'Inserting scalar string'
);
is( $db->get('scalarkey'), "A scalar",
'Retrieve and compare scalar'
);
ok( $db->put('intkey', 2),
'Inserting scalar int'
);
is( $db->get('intkey'), 2,
'Retrieve and compare int'
);
is( $db->dbkeys, 3, "DB has expected num. of keys");
my @keys;
ok( @keys = $db->dbkeys, 'list dbkeys()');
ok(
(
(grep { $_ eq 'testkey' } @keys)
&& (grep { $_ eq 'scalarkey' } @keys)
&& (grep { $_ eq 'intkey' } @keys)
),
'DB has expected keys'
);
ok( $db->del('intkey'), 'Database del() 1' );
ok( $db->del('testkey'), 'Database del() 2' );
is( $db->dbkeys, 1, "DB has expected keys after del");
is( ($db->dbkeys)[0], 'scalarkey', "DB has expected key after del");
ok( $db->put('unicode', "\x{263A}"), "UTF8 put()" );
is( $db->get('unicode'), "\x{263A}", "UTF8 get()" );
my $uni = "\x{263A}";
utf8::encode($uni);
ok( $db->put($uni, "Data"), "UTF8 encoded key put()" );
is( $db->get($uni), "Data", "UTF8 encoded key get()" );
$db->dbclose;
ok( $db->dbopen(ro => 1), 'Database RO open' );
is( $db->get('scalarkey'), 'A scalar', 'Database RO get' );
$db->dbclose;
undef $db;
ok( $db = Bot::Cobalt::DB->new($path), 'Single-arg new()' );
ok( $db->dbopen(ro => 1), 'Database RO open #2' );
is( $db->get('scalarkey'), 'A scalar', 'DB RO get #2' );
$db->dbclose;
sub _newtemp {
my ($fh, $filename) = tempfile( 'tmpdbXXXXX',
DIR => $tempdir, UNLINK => 1
);
flock $fh, LOCK_UN;
return($fh, $filename)
}
( run in 0.459 second using v1.01-cache-2.11-cpan-39bf76dae61 )