#!/usr/bin/perl -w
use Test::More tests => 9;
BEGIN{ use_ok Set::Object;
Set::Object->import("set");
}
use strict;
use Scalar::Util qw(weaken);
# first, a series of sanity checks...
my $internal;
{
my $set = set();
is($internal, undef, "no flat yet");
$set->insert({ "hi" => "there" });
$internal = $set->get_flat;
is($internal, undef, "still no flat");
$set->insert(1, 2, 3, 4);
$internal = $set->get_flat;
isnt($internal, undef, "aha, got something now");
ok(exists($internal->{2}), "and it looks like the right one");
weaken($internal);
ok($internal, "didn't drop out of existence on weaken()");
ok(!exists($internal->{5}), "sanity check");
$set->insert(5);
ok(exists($internal->{5}), "we've really got the right hash");
}
# when the set drops out of existence, the hashref should too
is($internal, undef, "internal hashref drops out of existence");
syntax highlighted by Code2HTML, v. 0.9.1