1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
#!/usr/bin/perl
use strict;
use warnings;
use Test::More;
use KiokuDB::LinkChecker;
use KiokuDB::Backend::Hash;
use KiokuDB::Test::Fixture::ObjectGraph;
use KiokuDB;
my $dir = KiokuDB->new(
backend => my $backend = KiokuDB::Backend::Hash->new(),
);
my $f = KiokuDB::Test::Fixture::ObjectGraph->new( directory => $dir );
$f->populate;
{
my $l = KiokuDB::LinkChecker->new( backend => $backend );
cmp_ok( $l->seen->size, '>', 0, "seen some entries" );
cmp_ok( $l->missing->size, '==', 0, "no missing entries" );
}
$f->verify; # deletes putin, and removes the ref from Dubya
{
my $l = KiokuDB::LinkChecker->new( backend => $backend );
cmp_ok( $l->seen->size, '>', 0, "seen some entries" );
cmp_ok( $l->missing->size, '==', 0, "no missing entries" );
}
my $deleted_id = do {
my $s = $dir->new_scope;
my $dubya = $dir->lookup($f->dubya);
my $delete = $dubya->friends->[-1];
my $id = $dir->object_to_id($delete);
$dir->delete($delete);
$id;
};
{
my $l = KiokuDB::LinkChecker->new( backend => $backend );
cmp_ok( $l->seen->size, '>', 0, "seen some entries" );
cmp_ok( $l->missing->size, '==', 1, "one missing entry" );
is_deeply( [ $l->missing->members ], [ $deleted_id ], "ID is correct" );
}
done_testing;
|