Dave Cross: Still Munging Data With Perl: Online event - Mar 27 Learn more

#! perl -I. -w
{
my $er = error_response(
error_code => 42,
error_message => "The error is in the message",
);
isa_ok($er, 'Dancer::RPCPlugin::ErrorResponse');
is($er->error_code, 42, "->error_code()");
is($er->error_data, undef, "->error_data()");
is_deeply(
$er->as_xmlrpc_fault,
{
faultCode => 42,
faultString => "The error is in the message",
},
"->as_xmlrpc_fault()"
);
is_deeply(
$er->as_jsonrpc_error,
{
error => {
code => 42,
message => "The error is in the message",
}
},
"->as_jsonrpc_error()"
);
}
{
my $er = error_response(
error_code => 42,
error_message => "The error is in the message",
error_data => {one => 2},
);
isa_ok($er, 'Dancer::RPCPlugin::ErrorResponse');
is($er->error_code, 42, "->error_code()");
is_deeply($er->error_data, {one => 2}, "->error_data()");
is_deeply(
$er->as_xmlrpc_fault,
{
faultCode => 42,
faultString => "The error is in the message",
},
"->as_xmlrpc_fault()"
);
is_deeply(
$er->as_jsonrpc_error,
{
error => {
code => 42,
message => "The error is in the message",
data => {one => 2},
}
},
"->as_jsonrpc_error()"
);
}
{
use SOMERPC;
my $err = error_response(
error_code => -32601,
error_message => 'Custom error with 403',
);
isa_ok($err, 'Dancer::RPCPlugin::ErrorResponse');
is($err->return_status('somerpc'), 403, "HTTPReturnCode 403");
is_deeply(
$err->as_somerpc_fault,
{ error_message => $err->error_message },
"->as_somerpc_fault"
);
}
done_testing();