use strict;
use warnings;
-use Moose::Meta::Class;
+{
+ no warnings 'redefine';
+ *Catalyst::Utils::ensure_class_loaded = sub { };
+}
-use_ok('Catalyst');
+use Moose::Meta::Class;
our @complist_suffix = qw/C::Controller M::Model V::View Controller::C Model::M View::V Controller::Model::Dummy::Model Model::Dummy::Model/;
);
}
our $warnings = 0;
-our $loaded = 0;
Moose::Meta::Class->create('Some::Test::Object');
use base qw/Catalyst/;
- sub locate_components {
- return (@::complist, 'MyMVCTestApp::Model::Test::Object');
- }
-
no warnings 'redefine';
- *Catalyst::Log::warn = sub { $::warnings++ };
- *Catalyst::Utils::ensure_class_loaded = sub {
- my $class = shift;
- $::loaded++
- if Class::MOP::is_class_loaded($class) && $class =~ /^MyMVCTestApp/
+
+ local *Catalyst::IOC::Container::build_locate_components_service = sub {
+ my $self = shift;
+
+ return Bread::Board::BlockInjection->new(
+ lifecycle => 'Singleton',
+ name => 'locate_components',
+ block => sub {
+ return [@complist, 'MyMVCTestApp::Model::Test::Object'];
+
+ },
+ );
};
+ local *Catalyst::Log::warn = sub { $warnings++ };
__PACKAGE__->setup;
}
ok( $warnings, 'Issues deprecated warnings' );
-is( $loaded, scalar @complist + 1, 'Loaded all components' );
+is( @{[ MyMVCTestApp->component_list ]}, scalar @complist + 1, 'Loaded all components' );
is( MyMVCTestApp->view('View'), 'MyMVCTestApp::V::View', 'V::View ok' );
'models ok');
{
- $warnings = 0;
+ my $warnings = 0;
+ no warnings 'redefine';
+ local *Catalyst::Log::warn = sub { $warnings++ };
is( MyMVCTestApp->view , undef, 'view() w/o a default is undef' );
ok( $warnings, 'warnings thrown for view() w/o a default' );
'current_view_instance precedes current_view ok');
{
- $warnings = 0;
+ my $warnings = 0;
+ no warnings 'redefine';
+ local *Catalyst::Log::warn = sub { $warnings++ };
is( MyMVCTestApp->model, undef, 'model() w/o a default is undef' );
ok( $warnings, 'warnings thrown for model() w/o a default' );
package MyMVCTestAppDefaultView;
use base qw/Catalyst/;
+ no warnings 'redefine';
- sub locate_components {
- return @::complist_default_view;
- }
+ local *Catalyst::IOC::Container::build_locate_components_service = sub {
+ my $self = shift;
- no warnings 'redefine';
- *Catalyst::Utils::ensure_class_loaded = sub {
- my $class = shift;
- $::loaded++
- if Class::MOP::is_class_loaded($class) && $class =~ /^MyMVCTestAppDefaultView/
+ return Bread::Board::BlockInjection->new(
+ lifecycle => 'Singleton',
+ name => 'locate_components',
+ block => sub {
+ return \@complist_default_view;
+ },
+ );
};
+ local *Catalyst::Log::warn = sub { $warnings++ };
__PACKAGE__->config( default_view => 'V' );
use base qw/Catalyst/;
- sub locate_components {
- return @::complist_default_model;
- }
-
no warnings 'redefine';
- *Catalyst::Utils::ensure_class_loaded = sub {
- my $class = shift;
- $::loaded++
- if Class::MOP::is_class_loaded($class) && $class =~ /^MyMVCTestAppDefaultModel/
+
+ local *Catalyst::IOC::Container::build_locate_components_service = sub {
+ my $self = shift;
+
+ return Bread::Board::BlockInjection->new(
+ lifecycle => 'Singleton',
+ name => 'locate_components',
+ block => sub {
+ return \@complist_default_model;
+ },
+ );
};
+ local *Catalyst::Log::warn = sub { $warnings++ };
__PACKAGE__->config( default_model => 'M' );
is_deeply( [ MyMVCTestApp->model( qr{Test} ) ], [ MyMVCTestApp->components->{'MyMVCTestApp::Model::Test::Object'} ], 'Object returned' );
{
- $warnings = 0;
+ my $warnings = 0;
+ no warnings 'redefine';
+ local *Catalyst::Log::warn = sub { $warnings++ };
# object w/ regexp fallback
is( MyMVCTestApp->model( 'Test' ), undef, 'no regexp fallback' );
use base qw/Catalyst/;
+ no warnings 'redefine';
+
__PACKAGE__->config( { disable_component_resolution_regex_fallback => 1 } );
__PACKAGE__->components( { map { ( ref($_)||$_ , $_ ) }