#!/usr/bin/perl use strict; use warnings; use Test::More; use ok 'KiokuDB::LinkChecker'; use ok 'KiokuDB::Backend::Hash'; use ok 'KiokuDB::Test::Fixture::ObjectGraph'; use ok '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;