File: real-export-groupgen.t

package info (click to toggle)
libsub-exporter-perl 0.990-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 380 kB
  • sloc: perl: 2,344; makefile: 2
file content (84 lines) | stat: -rw-r--r-- 1,893 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#!perl -T
use strict;
use warnings;

=head1 TEST PURPOSE

These tests check export group expansion, specifically the expansion of groups
that use group generators, more specifically when actually imported.

=cut

use Test::More tests => 8;

use lib 't/lib';

use Carp;

BEGIN {
  local $SIG{__DIE__} = sub { Carp::confess @_ };
  use_ok('Test::SubExporter::GroupGen');
  Test::SubExporter::GroupGen->import(
    col1 => { value => 2 },
    -generated => { xyz => 1 },
    -generated => { xyz => 5, -prefix => 'five_' },
    -symbolic  => { xyz => 2 },
  );

  use_ok('Test::SubExporter::GroupGenSubclass');
  Test::SubExporter::GroupGenSubclass->import(
    col1 => { value => 3 },
    -symbolic  => { -prefix => 'subclass_', xyz => 4 },
  );
}

for my $routine (qw(foo bar)) {
  is_deeply(
    main->$routine(),
    {
      name  => $routine,
      class => 'Test::SubExporter::GroupGen',
      group => 'generated',
      arg   => { xyz => 1 }, 
      collection => { col1 => { value => 2 } },
    },
    "generated $routine does what we expect",
  );

  my $five = "five_$routine";
  is_deeply(
    main->$five(),
    {
      name  => $routine,
      class => 'Test::SubExporter::GroupGen',
      group => 'generated',
      arg   => { xyz => 5 }, 
      collection => { col1 => { value => 2 } },
    },
    "generated $five does what we expect",
  );
}

is_deeply(
  main->baz(),
  {
    name  => 'baz',
    class => 'Test::SubExporter::GroupGen',
    group => 'symbolic',
    arg   => { xyz => 2 }, 
    collection => { col1 => { value => 2 } },
  },
  "parent class's generated baz does what we expect",
);

is_deeply(
  main->subclass_baz(),
  {
    name  => 'baz-sc',
    class => 'Test::SubExporter::GroupGenSubclass',
    group => 'symbolic',
    arg   => { xyz => 4 }, 
    collection => { col1 => { value => 3 } },
  },
  "inheriting class's generated baz does what we expect",
);