5 use Test::More skip_all => "Removed setup_component from Catalyst.pm";
6 use Moose::Meta::Class;
13 Moose::Meta::Class->create( TestAppComponent => (
14 superclasses => ['Catalyst'],
17 TestAppComponent->config(
18 'Model::With::Config' => { %config },
21 TestAppComponent->setup_config;
24 push @comps, "TestAppComponent::$_" for qw/
25 Without::Component::Sub
31 my ($no_sub, $config, $dieing, $not_blessed, $regular) = @comps;
33 Moose::Meta::Class->create( $no_sub => (
34 superclasses => ['Catalyst::Component'],
37 Moose::Meta::Class->create( $config => (
38 superclasses => ['Catalyst::Component'],
40 COMPONENT => sub { bless $_[2] }
44 Moose::Meta::Class->create( $dieing => (
45 superclasses => ['Catalyst::Component'],
47 COMPONENT => sub { die "Could not create component" }
51 Moose::Meta::Class->create( $not_blessed => (
52 superclasses => ['Catalyst::Component'],
54 COMPONENT => sub { {} }
58 Moose::Meta::Class->create( $regular => (
59 superclasses => ['Catalyst::Component'],
61 COMPONENT => sub { shift->new }
66 no warnings 'redefine', 'once';
70 local *Catalyst::Exception::throw = sub { shift; my %h = @_; $message = $h{message} };
72 $component = eval { TestAppComponent->setup_component($no_sub) };
73 ok( !$@, "setup_component doesnt die with $no_sub" );
74 is( $message, undef, "no exception thrown" );
75 isa_ok( $component, $no_sub, "the returned value isa the component" );
78 $component = eval { TestAppComponent->setup_component($config) };
79 ok( !$@, "setup_component doesnt die with $config" );
80 is( $message, undef, "no exception thrown" );
81 is_deeply( $component, \%config, "the returned config is correct" );
84 $component = eval { TestAppComponent->setup_component($dieing) };
85 ok( !$@, "setup_component doesnt die with $dieing" );
86 like( $message, qr/Could not create component/, "the exception is thrown correctly" );
89 $component = eval { TestAppComponent->setup_component($not_blessed) };
90 ok( !$@, "setup_component doesnt die with $not_blessed" );
91 isnt( $message, undef, "it throws an exception" );
94 $component = eval { TestAppComponent->setup_component($regular) };
95 ok( !$@, "setup_component doesnt die with $regular" );
96 is( $message, undef, "no exception thrown" );
97 isa_ok( $component, $regular, "the returned value is correct" );