start refactoring to potentially allow for memoization
[gitmo/Eval-Closure.git] / t / 03-description.t
1 #!/usr/bin/env perl
2 use strict;
3 use warnings;
4 use Test::More;
5 use Test::Exception;
6
7 use Eval::Closure;
8
9 my $source = <<'SOURCE';
10 sub {
11     Carp::confess("foo")
12 }
13 SOURCE
14
15 {
16     my $code = eval_closure(
17         source => $source,
18     );
19
20     throws_ok {
21         $code->();
22     } qr/^foo at \(eval \d+\) line \d+\n/,
23       "no location info if context isn't passed";
24 }
25
26 {
27     my $code = eval_closure(
28         source      => $source,
29         description => 'accessor foo (defined at Class.pm line 282)',
30     );
31
32     throws_ok {
33         $code->();
34     } qr/^foo at accessor foo \(defined at Class\.pm line 282\) line 2\n/,
35       "description is set";
36 }
37
38 done_testing;