1#!/usr/bin/perl 2 3use strict; 4use warnings; 5 6use Test::More; 7use Test::Fatal; 8 9use Web::Machine; 10 11{ 12 package My::Plack::Request; 13 use strict; 14 use warnings; 15 16 use parent 'Plack::Request'; 17} 18 19my $app = Web::Machine->new( 20 resource => 'Web::Machine::Resource', 21 request_class => 'My::Plack::Request', 22); 23 24my $request = $app->inflate_request({}); 25 26isa_ok($request, 'My::Plack::Request'); 27isa_ok($request, 'Plack::Request'); 28 29ok( 30 exception { 31 Web::Machine->new( 32 resource => 'Web::Machine::Resource', 33 request_class => $request, 34 ); 35 }, 36 'The constructor dies when request_class is not a module name...' 37); 38 39like( 40 exception { 41 Web::Machine->new( 42 resource => 'Web::Machine::Resource', 43 request_class => 'Web::Machine', 44 ); 45 }, 46 qr/must inherit from Plack::Request/, 47 '...or if the request_class class does not inherit from Plack::Request' 48); 49 50like( 51 exception { 52 Web::Machine->new( 53 resource => 'Web::Machine::Resource', 54 request_class => 'Does::not::Exist', 55 ); 56 }, 57 qr/must inherit from Plack::Request/, 58 '...or if the request_class class does not exist' 59); 60 61done_testing; 62