#!/usr/bin/env perl
use strict;
use warnings;
use Test::More;
use Plack::Test;
use Test::Requires 'MooseX::NonMoose';
{
package Custom::App;
use Moose;
use MooseX::NonMoose;
extends 'Plack::Component';
has thing => (
is => 'ro',
isa => 'Str',
required => 1,
);
sub call {
my $self = shift;
my ($env) = @_;
return [200, [], ["$env->{PATH_INFO}: " . $self->thing]];
}
}
{
package OX::App;
use OX;
has thing => (
is => 'ro',
isa => 'Str',
value => 'THING',
);
router as {
mount '/' => 'Custom::App' => (
thing => 'thing',
);
};
}
test_psgi
app => OX::App->new->to_app,
client => sub {
my $cb = shift;
{
my $req = HTTP::Request->new(GET => 'http://localhost/foo');
my $res = $cb->($req);
is($res->content, "/foo: THING", "got the right content");
}
};
done_testing;