-ok(!$@, "getdata croaks ($@)");
-ok($res, 'getdata invalid');
-ok($data && ref($data) eq 'HASH'
- && exists $data->{foo} && $data->{foo} == 12
- && exists $data->{bar} && $data->{bar} == 27,
- 'private data creation ok');
+ok(!$@, "getdata from wizard doesn't croak ($@)");
+ok($res, 'getdata from wizard returns true');
+is_deeply($data, { foo => 12, bar => 27 },
+ 'getdata from wizard return value is ok');
+
+$data = eval { getdata my $b, $wiz };
+ok(!$@, "getdata from non-magical scalar doesn't croak ($@)");
+ok(!defined($data), 'getdata from non-magical scalar returns undef');
+
+$data = eval { getdata $a, $sig };
+ok(!$@, "getdata from sig doesn't croak ($@)");
+ok($res, 'getdata from sig returns true');
+is_deeply($data, { foo => 12, bar => 27 },
+ 'getdata from sig return value is ok');