]> git.vpit.fr Git - perl/modules/LaTeX-TikZ.git/blob - t/lib/LaTeX/TikZ/TestHelper.pm
Factor the check() test function in an helper test module
[perl/modules/LaTeX-TikZ.git] / t / lib / LaTeX / TikZ / TestHelper.pm
1 package LaTeX::TikZ::TestHelper;
2
3 use strict;
4 use warnings;
5
6 use Test::More ();
7
8 use Any::Moose 'Exporter';
9
10 any_moose('Exporter')->setup_import_methods(
11  as_is => [ qw<using check> ],
12 );
13
14 my $tikz;
15
16 sub using {
17  $tikz = $_[0] if defined $_[0];
18
19  return $tikz;
20 }
21
22 sub check {
23  my ($set, $desc, $exp) = @_;
24
25  local $Test::Builder::Level = $Test::Builder::Level + 1;
26
27  my ($head, $decl, $body) = eval {
28   $tikz->render(ref $set eq 'ARRAY' ? @$set : $set);
29  };
30  Test::More::is($@, '', "$desc: no error");
31
32  unless (ref $exp eq 'ARRAY') {
33   $exp = [ split /\n/, $exp ];
34  }
35  unshift @$exp, '\begin{tikzpicture}';
36  push    @$exp, '\end{tikzpicture}';
37
38  Test::More::is_deeply($body, $exp, "$desc: body");
39
40  return $head, $decl, $body;
41 }
42
43 1;