CatalystX-RequestModel
view release on metacpan or search on metacpan
BEGIN {
use Test::Most;
eval "use Catalyst 5.90090; 1" || do {
plan skip_all => "Need a newer version of Catalyst => $@";
};
}
use Test::Lib;
use HTTP::Request::Common;
use Catalyst::Test 'Example';
{
ok my $body_parameters = [
'person.first_name' => 2,
'person.first_name' => 'John', # flatten array should just pick the last one
'person.last_name' => 'Napiorkowski',
'person.username' => 'jjn',
'person.notes' => '{"test":"one", "foo":"bar"}',
'person.maybe_array' => 'one',
'person.maybe_array2' => 'one',
'person.maybe_array2' => 'two',
'person.indexed[0]' => 100,
'person.indexed[1]' => 200,
'person.indexed[]' => 300,
'person.profile.address' => '15604 Harry Lind Road',
'person.profile.birthday' => '2000-01-01',
'person.profile.city' => 'Elgin',
'person.profile.id' => 1,
'person.profile.phone_number' => 16467081837,
'person.profile.registered' => 0,
'person.profile.registered' => 'sdfsdfsdfsd',
'person.profile.state_id' => 2,
'person.profile.status' => '',
'person.profile.status' => 'pending',
'person.profile.zip' => 78621,
'person.credit_cards[0]._delete' => 0,
'person.credit_cards[0].card_number' => 1231231231,
'person.credit_cards[0].expiration' => '3000-01-01',
'person.credit_cards[0].id' => 1,
'person.credit_cards[1]._delete' => 0,
'person.credit_cards[1].card_number' => 44444455555,
'person.credit_cards[1].expiration' => '4000-01-01',
'person.credit_cards[1].id' => 2,
'person.credit_cards[1]._delete' => 0,
'person.credit_cards[].card_number' => 888888899,
'person.credit_cards[].expiration' => '5000-01-01',
'person.credit_cards[].id' => 3,
'person.person_roles[0]._nop' => 1,
'person.person_roles[1].role_id' => 1,
'person.person_roles[2].role_id' => 2,
];
ok my $res = request POST '/account/one', $body_parameters;
ok my $data = eval $res->content;
is_deeply $data, +{
credit_cards => [
{
_delete => 0,
card_number => "1231231231",
expiration => "3000-01-01",
id => 1,
},
{
_delete => 0,
card_number => "44444455555",
expiration => "4000-01-01",
id => 2,
},
( run in 2.039 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )