]> git.vpit.fr Git - perl/modules/Variable-Magic.git/blobdiff - t/14-callbacks.t
Importing Variable-Magic-0.10.tar.gz
[perl/modules/Variable-Magic.git] / t / 14-callbacks.t
diff --git a/t/14-callbacks.t b/t/14-callbacks.t
new file mode 100644 (file)
index 0000000..a34549a
--- /dev/null
@@ -0,0 +1,28 @@
+#!perl -T
+
+use strict;
+use warnings;
+
+use Test::More tests => 7;
+
+use Variable::Magic qw/wizard cast/;
+
+my $wiz = eval { wizard get => sub { undef } };
+ok(!$@, "wizard creation error ($@)");
+ok(defined $wiz, 'wizard is defined');
+ok(ref $wiz eq 'SCALAR', 'wizard is a scalar ref');
+
+my $n = int rand 1000;
+my $a = $n;
+
+my $res = eval { cast $a, $wiz };
+ok(!$@, "cast croaks ($@)");
+ok($res, 'cast invalid');
+
+my $x;
+eval {
+ local $SIG{__WARN__} = sub { die };
+ $x = $a
+};
+ok(!$@, 'callback returning undef croaks');
+ok(defined($x) && ($x == $n), 'callback returning undef fails');