4 use Moose::Meta::Class;
11 Moose::Meta::Class->create( TestAppComponent => (
12 superclasses => ['Catalyst'],
15 TestAppComponent->config(
16 'Model::With::Config' => { %config },
19 TestAppComponent->setup_config;
22 push @comps, "TestAppComponent::$_" for qw/
23 Without::Component::Sub
29 my ($no_sub, $config, $dieing, $not_blessed, $regular) = @comps;
31 Moose::Meta::Class->create( $no_sub => (
32 superclasses => ['Catalyst::Component'],
35 Moose::Meta::Class->create( $config => (
36 superclasses => ['Catalyst::Component'],
38 COMPONENT => sub { bless $_[2] }
42 Moose::Meta::Class->create( $dieing => (
43 superclasses => ['Catalyst::Component'],
45 COMPONENT => sub { die "Could not create component" }
49 Moose::Meta::Class->create( $not_blessed => (
50 superclasses => ['Catalyst::Component'],
52 COMPONENT => sub { {} }
56 Moose::Meta::Class->create( $regular => (
57 superclasses => ['Catalyst::Component'],
59 COMPONENT => sub { shift->new }
64 no warnings 'redefine', 'once';
68 local *Catalyst::Exception::throw = sub { shift; my %h = @_; $message = $h{message} };
70 $component = eval { TestAppComponent->setup_component($no_sub) };
71 ok( !$@, "setup_component doesnt die with $no_sub" );
72 is( $message, undef, "no exception thrown" );
73 isa_ok( $component, $no_sub, "the returned value isa the component" );
76 $component = eval { TestAppComponent->setup_component($config) };
77 ok( !$@, "setup_component doesnt die with $config" );
78 is( $message, undef, "no exception thrown" );
79 is_deeply( $component, \%config, "the returned config is correct" );
82 $component = eval { TestAppComponent->setup_component($dieing) };
83 ok( !$@, "setup_component doesnt die with $dieing" );
84 like( $message, qr/Could not create component/, "the exception is thrown correctly" );
87 $component = eval { TestAppComponent->setup_component($not_blessed) };
88 ok( !$@, "setup_component doesnt die with $not_blessed" );
89 isnt( $message, undef, "it throws an exception" );
92 $component = eval { TestAppComponent->setup_component($regular) };
93 ok( !$@, "setup_component doesnt die with $regular" );
94 is( $message, undef, "no exception thrown" );
95 isa_ok( $component, $regular, "the returned value is correct" );