#!/usr/bin/perl
use strict;
use warnings;
use Test::More tests => 11;
use Test::Exception;
BEGIN {
use_ok('IOC');
use_ok('IOC::Service::Parameterized');
}
{
package Localized::Object;
use strict;
use warnings;
sub new {
my ($class, $locale) = @_;
bless \$locale => $class;
}
sub locale { ${$_[0]} }
}
my $s = IOC::Service::Parameterized->new('localized_obj' => sub {
my ($c, %params) = @_;
Localized::Object->new($params{locale});
});
my $c = IOC::Container->new();
lives_ok {
$c->register($s)
} '... set container successfully';
foreach my $locale (qw/en fr_ca/) {
my $obj = $s->instance(locale => $locale);
isa_ok($obj, 'Localized::Object');
is($obj->locale, $locale, '... got the right locale (' . $locale . ')');
}
foreach my $locale (qw/en fr_ca/) {
my $obj = $c->get('localized_obj' => (locale => $locale));
isa_ok($obj, 'Localized::Object');
is($obj->locale, $locale, '... got the right locale (' . $locale . ')');
}