#!/usr/bin/env perl -w use strict; use warnings; use Moose (); use Test::More tests => 1;; package FooController; use Railsish::Controller; use Test::More; sub bar { response->body( params("id") ); } package main; use Railsish::Router; Railsish::Router->draw( sub { my ($map) = @_; $map->connect("/:controller/:action/:id"); $map->connect("/:controller/:action"); $map->connect("/:controller", action => 'index'); $map->connect("", controller => "foo"); } ); use Railsish::Dispatcher; use HTTP::Engine; use HTTP::Request; my $response = HTTP::Engine->new( interface => { module => "Test", request_handler => sub { Railsish::Dispatcher->dispatch(@_); } } )->run( HTTP::Request->new(GET => "http://localhost/foo/bar/baz"), connection_info => { request_uri => "/foo/bar/baz" } ); # The returned $response is a HTTP::Response object is($response->content, "baz");