CatalystX-RequestModel

 view release on metacpan or  search on metacpan

t/form.t  view on Meta::CPAN

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 )