From: Chris Andrews Date: Sun, 7 Jun 2009 17:41:47 +0000 (+0100) Subject: Remove this module back to other repo. X-Git-Tag: 0.0.6~11 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Engine-STOMP.git;a=commitdiff_plain;h=6ddbeb3b06c04db7fc2818e2e0aef3c17b25e44d Remove this module back to other repo. --- diff --git a/lib/Catalyst/Test/MessageDriven.pm b/lib/Catalyst/Test/MessageDriven.pm deleted file mode 100644 index 7462d04..0000000 --- a/lib/Catalyst/Test/MessageDriven.pm +++ /dev/null @@ -1,105 +0,0 @@ -package Catalyst::Test::MessageDriven; -use Class::MOP; -use Sub::Exporter; -use HTTP::Request; - -BEGIN { - $ENV{CATALYST_ENGINE} = 'Test::MessageDriven'; -}; - -=head1 NAME - -Catalyst::Test::MessageDriven - test message-driven Catalyst apps - -=head1 DESCRIPTION - -Derived from Catalyst::Test, this module provides a way to run tests -against message-driven Catalyst applications - those with -Catalyst::Controller::MessageDriven-based controllers, and expect to -run with Catalyst::Engine::Stomp. - -=head1 SYNOPSIS - - BEGIN { use_ok 'Catalyst::Test::MessageDriven', 'SomeApp' }; - - my $req = '... some message text ...'; - my $queue = 'somequeue'; - my $res = request($queue, $req); - ok($res); - -=head1 EXPORTS - -=head2 request(queue, message) - -This function accepts a queue and a message, and runs the request in -that context. Returns a response object. - -=head1 TODO - -Some test wrappers - successful / error message conditions? - -=cut - -my $message_driven_request = sub { - my ($app, $path, $req_message) = @_; - my $url = "message://localhost:61613/$path"; - - my $request = HTTP::Request->new( POST => $url ); - $request->content($req_message); - $request->content_length(length $req_message); - $request->content_type('application/octet-stream'); - - my $response; - $app->handle_request($request, \$response); - - return $response; -}; - -my $build_exports = sub { - my ($self, $meth, $args, $defaults) = @_; - - my $request; - my $class = $args->{class}; - - if (!$class) { - $request = sub { Catalyst::Exception->throw("Must specify a test app: use Catalyst::Test::MessageDriven 'TestApp'") }; - } - else { - unless (Class::MOP::is_class_loaded($class)) { - Class::MOP::load_class($class); - } - $class->import; - - my $app = $class->run(); - $request = sub { $message_driven_request->( $app, @_ ) }; - } - - return { - request => $request, - }; -}; - -{ - my $import = Sub::Exporter::build_exporter({ - groups => [ all => $build_exports ], - into_level => 1, - }); - - sub import { - my ($self, $class) = @_; - $import->($self, '-all' => { class => $class }); - return 1; - } -} - -package # Hide from PAUSE - Catalyst::Engine::Test::MessageDriven; -use base 'Catalyst::Engine::Embeddable'; - -sub run { - my ($self, $app) = @_; - return $app; -} - -1; -