COMPONENT => sub {
my ($component_class_name, $app, $args) = @_;
- my $class = delete $args->{class};
+ my $class = $args->{class};
Class::MOP::load_class($class);
$class->new($args);
around 'COMPONENT' => sub {
my ($orig, $component_class_name, $app, $args) = @_;
- my $interface_roles = delete $args->{interface_roles};
+ my $interface_roles = $args->{interface_roles};
confess("No interface_roles configuration specified for $component_class_name")
unless $interface_roles && ref($interface_roles) eq 'ARRAY'
&& scalar(@$interface_roles);
my ($orig, $app, $class_name, $config, @args) = @_;
my @roles = @{ delete($config->{roles}) || [] };
push(@roles, 'CatalystX::DynamicComponent::ModelsFromConfig::InterfaceRoles::COMPONENT');
- $config->{roles} = \@roles;
+ local $config->{roles} = \@roles;
$app->$orig($class_name, $config, @args);
};
use FindBin qw/$Bin/;
use lib "$Bin/lib";
-use Test::More tests => 1;
+use Test::More tests => 2;
BEGIN { use_ok('ModelsFromConfigInterfaceApp'); }
+is_deeply(ModelsFromConfigInterfaceApp->config, {
+ name => 'ModelsFromConfigInterfaceApp',
+ 'Model::One' => {
+ class => 'SomeModelClass',
+ interface_roles => [qw/ SomeModelClassInterface /],
+ },
+}, 'Config is not munged');
+