4 use Moose::Meta::Class;
12 Moose::Meta::Class->create( TestAppComponent => (
13 superclasses => ['Catalyst'],
16 TestAppComponent->config(
17 'Model::With::Config' => { %config },
20 TestAppComponent->setup_config;
23 push @comps, "TestAppComponent::$_" for qw/
24 Without::Component::Sub
30 my ($no_sub, $config, $dieing, $not_blessed, $regular) = @comps;
32 Moose::Meta::Class->create( $no_sub => (
33 superclasses => ['Catalyst::Component'],
36 Moose::Meta::Class->create( $config => (
37 superclasses => ['Catalyst::Component'],
39 COMPONENT => sub { bless $_[2] }
43 Moose::Meta::Class->create( $dieing => (
44 superclasses => ['Catalyst::Component'],
46 COMPONENT => sub { die "Could not create component" }
50 Moose::Meta::Class->create( $not_blessed => (
51 superclasses => ['Catalyst::Component'],
53 COMPONENT => sub { {} }
57 Moose::Meta::Class->create( $regular => (
58 superclasses => ['Catalyst::Component'],
60 COMPONENT => sub { shift->new }
65 no warnings 'redefine', 'once';
69 local *Catalyst::Exception::throw = sub { shift; my %h = @_; $message = $h{message} };
71 $component = eval { TestAppComponent->setup_component($no_sub) };
72 ok( !$@, "setup_component doesnt die with $no_sub" );
73 is( $message, undef, "no exception thrown" );
74 isa_ok( $component, $no_sub, "the returned value isa the component" );
77 $component = eval { TestAppComponent->setup_component($config) };
78 ok( !$@, "setup_component doesnt die with $config" );
79 is( $message, undef, "no exception thrown" );
80 is_deeply( $component, bless(\%config, $config), "the returned config is correct" );
83 $component = eval { TestAppComponent->setup_component($dieing) };
84 ok( !$@, "setup_component doesnt die with $dieing" );
85 like( $message, qr/Could not create component/, "the exception is thrown correctly" );
88 $component = eval { TestAppComponent->setup_component($not_blessed) };
89 ok( !$@, "setup_component doesnt die with $not_blessed" );
90 isnt( $message, undef, "it throws an exception" );
93 $component = eval { TestAppComponent->setup_component($regular) };
94 ok( !$@, "setup_component doesnt die with $regular" );
95 is( $message, undef, "no exception thrown" );
96 isa_ok( $component, $regular, "the returned value is correct" );