File: 03_args_and_initializer.t

package info (click to toggle)
libobject-container-perl 0.16-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, sid, trixie
  • size: 220 kB
  • sloc: perl: 221; makefile: 5
file content (34 lines) | stat: -r--r--r-- 733 bytes parent folder | download | duplicates (3)
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
use Test::Base;

plan tests => 4;

use Object::Container;

{
    package SampleClass;
    use base 'Class::Accessor::Fast';

    __PACKAGE__->mk_accessors(qw/text/);

    sub new {
        my $class = shift;
        my $args  = @_ > 1 ? {@_} : $_;

        $class->SUPER::new($args);
    }
}

my $c = Object::Container->new;

# args
$c->register('SampleClass', text => 'custom args');

isa_ok( $c->get('SampleClass'), 'SampleClass' );
is( $c->get('SampleClass')->text, 'custom args', 'args set ok');

# initializer
$c->register('SampleClass2', sub { SampleClass->new(text => 'custom initializer') });

isa_ok( $c->get('SampleClass2'), 'SampleClass' );
is( $c->get('SampleClass2')->text, 'custom initializer', 'initializer set ok');