plan skip_all => 'No nice uvar magic for this perl';
}
-eval "use Hash::Util::FieldHash qw/fieldhash/";
+eval "use Hash::Util::FieldHash";
if ($@) {
plan skip_all => 'Hash::Util::FieldHash required for testing uvar interaction';
} else {
plan tests => 12;
+ my $v = $Hash::Util::FieldHash::VERSION;
+ diag "Using Hash::Util::FieldHash $v" if defined $v;
}
-fieldhash(my %h);
+Hash::Util::FieldHash::fieldhash(\my %h);
-bless \(my $obj = {}), 'Variable::Magic::Test::Mock';
+my $obj = { };
+bless $obj, 'Variable::Magic::Test::Mock';
$h{$obj} = 5;
my ($w, $c) = (undef, 0);
eval { $w = wizard fetch => sub { ++$c }, store => sub { --$c } };
-ok(!$@, "wizard with uvar creation error ($@)");
-ok(defined $w, 'wizard with uvar is defined');
-ok(ref($w) eq 'SCALAR', 'wizard with uvar is a scalar ref');
+is($@, '', 'wizard with uvar doesn\'t croak');
+ok(defined $w, 'wizard with uvar is defined');
+is(ref $w, 'SCALAR', 'wizard with uvar is a scalar ref');
my $res = eval { cast %h, $w };
-ok(!$@, "cast uvar magic on fieldhash croaks ($@)");
-ok($res, 'cast uvar magic on fieldhash invalid');
+is($@, '', 'cast uvar magic on fieldhash doesn\'t croak');
+ok($res, 'cast uvar magic on fieldhash is valid');
my $s = $h{$obj};
-ok($s == 5, 'fetch magic on fieldhash doesn\'t clobber');
-ok($c == 1, 'fetch magic on fieldhash');
+is($s, 5, 'fetch magic on fieldhash doesn\'t clobber');
+is($c, 1, 'fetch magic on fieldhash');
$h{$obj} = 7;
-ok($c == 0, 'store magic on fieldhash');
-ok($h{$obj} == 7, 'store magic on fieldhash doesn\'t clobber'); # $c == 1
+is($c, 0, 'store magic on fieldhash');
+is($h{$obj}, 7, 'store magic on fieldhash doesn\'t clobber'); # $c == 1
$res = eval { dispell %h, $w };
-ok(!$@, "dispell uvar magic on fieldhash croaks ($@)");
-ok($res, 'dispell uvar magic on fieldhash invalid');
+is($@, '', 'dispell uvar magic on fieldhash doesn\'t croak');
+ok($res, 'dispell uvar magic on fieldhash is valid');
$h{$obj} = 11;
$s = $h{$obj};
-ok($s == 11, 'store/fetch on fieldhash after dispell still ok');
+is($s, 11, 'store/fetch on fieldhash after dispell still ok');