Server IP : 192.168.23.10  /  Your IP : 3.145.166.160
Web Server : Apache
System : Linux echo.premieradvertising.com 5.14.0-362.8.1.el9_3.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Nov 7 14:54:22 EST 2023 x86_64
User : rrrallyteam ( 1049)
PHP Version : 8.1.31
Disable Function : exec,passthru,shell_exec,system
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF
Directory (0755) :  /home/../usr/share/doc/libyaml/../libnfsidmap/../sombok/../perl-Sub-Exporter/t/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : /home/../usr/share/doc/libyaml/../libnfsidmap/../sombok/../perl-Sub-Exporter/t/util-merge.t
#!/usr/bin/perl -T
use strict;
use warnings;

use Test::More tests => 8;
BEGIN { use_ok("Sub::Exporter"); }

  BEGIN {
    package Thing;
    BEGIN { main::use_ok("Sub::Exporter::Util", 'merge_col'); }

    use Sub::Exporter -setup => {
      collectors => [ qw(defaults etc) ],
      exports    => {
        merge_col(
          defaults => {
            stack => sub { my @x = @_; sub { return @x } },
            kcats => \'_kcats_gen',
          },
          empty    => {
            bogus => sub { my @x = @_; sub { return @x } },
            klame => sub { my @x = @_; sub { return @x } },
          },
          etc      => {
            other => sub { my @x = @_; sub { return @x } },
          },
        ),
        plain => sub { my @x = @_; sub { return @x } },
      },
    };

    sub _kcats_gen {
      my @x = @_;
      sub { return reverse @x }
    }
  }

package Test::SubExporter::MERGE::0;

my %col;

BEGIN {
  Thing->import(
    defaults => ($col{defaults} = { x => 10 }),
    etc      => ($col{etc}      = { home => "Kansas" }),
    stack    => { x => 20, y => 30 },
    kcats    => {          y =>  3 },
    bogus    => undef,
    klame    => { bar => 99 },
    other    => undef,
    plain    => { foo => 10 },
  );
}

my %tests = (
  stack => [ 'Thing', 'stack', { x => 20, y => 30 }, \%col ],
  kcats => [ \%col, { x => 10, y =>  3 }, 'kcats', 'Thing' ],
  bogus => [ 'Thing', 'bogus', {}, \%col ],
  klame => [ 'Thing', 'klame', { bar => 99 }, \%col ],
  other => [ 'Thing', 'other', { home => "Kansas" }, \%col ],
  plain => [ 'Thing', 'plain', { foo  => 10 }, \%col ],
);

while (my ($name, $expected) = each %tests) {
  main::is_deeply(
    [ __PACKAGE__->$name ],
    $expected,
    "$name returned proper value",
  );
}