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

#! perl -I. -w
{
my $dispatch = dispatch_table_from_config(
plugin => 'xmlrpc',
endpoint => '/xmlrpc',
config => {
'/xmlrpc' => {
'TestProject::SystemCalls' => {
'system.ping' => 'do_ping',
'system.version' => 'do_version',
}
}
}
);
is_deeply(
$dispatch,
{
'system.ping' => dispatch_item(
code => TestProject::SystemCalls->can('do_ping'),
package => 'TestProject::SystemCalls',
),
'system.version' => dispatch_item(
code => TestProject::SystemCalls->can('do_version'),
package => 'TestProject::SystemCalls',
),
},
"Dispatch from YAML-config"
);
like(
exception {
dispatch_table_from_config(
plugin => 'xmlrpc',
endpoint => '/xmlrpc',
config => {
'/xmlrpc' => {
'TestProject::SystemCalls' => {
'system.nonexistent' => 'nonexistent',
}
}
},
);
},
qr/Handler not found for system.nonexistent: TestProject::SystemCalls::nonexistent doesn't seem to exist/,
"Setting a non-existent dispatch target throws an exception"
);
}
done_testing();