X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Faggregate%2Funit_core_mvc.t;h=280a7b9f6f9746a24ab1472d572f582af344587c;hb=48e17d2615b1371d75d96a52a8ec17dca83ae007;hp=26ee2d6211022641df813cad916fb6096595e9c5;hpb=a2c0d07186c771bfd7b07bd8786cd5299b6639f6;p=catagits%2FCatalyst-Runtime.git diff --git a/t/aggregate/unit_core_mvc.t b/t/aggregate/unit_core_mvc.t index 26ee2d6..280a7b9 100644 --- a/t/aggregate/unit_core_mvc.t +++ b/t/aggregate/unit_core_mvc.t @@ -2,9 +2,12 @@ use Test::More; 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/; @@ -17,7 +20,6 @@ foreach my $comp (@complist) { ); } our $warnings = 0; -our $loaded = 0; Moose::Meta::Class->create('Some::Test::Object'); @@ -31,23 +33,27 @@ Moose::Meta::Class->create( 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' ); @@ -86,7 +92,9 @@ is_deeply( [ sort MyMVCTestApp->models ], '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' ); @@ -101,7 +109,9 @@ is ( bless ({stash=>{current_view_instance=> $view, current_view=>'MyMVCTestApp: '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' ); @@ -131,17 +141,20 @@ our @complist_default_view = 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' ); @@ -159,16 +172,20 @@ our @complist_default_model = 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' ); @@ -189,7 +206,9 @@ is( MyMVCTestAppDefaultModel->model , 'MyMVCTestAppDefaultModel::Model::M', 'def 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' ); @@ -253,6 +272,8 @@ is( MyMVCTestAppDefaultModel->model , 'MyMVCTestAppDefaultModel::Model::M', 'def use base qw/Catalyst/; + no warnings 'redefine'; + __PACKAGE__->config( { disable_component_resolution_regex_fallback => 1 } ); __PACKAGE__->components( { map { ( ref($_)||$_ , $_ ) }