#!/usr/bin/perl ##################################################################### # checks the reflection methods are loaded by the repository ##################################################################### use strict; use warnings; use Test::More tests => 12; use Test::Exception; use Froody::Repository; use Test::Differences; use Froody::Response::Terse; use lib 't/lib'; use_ok ('Other'); use Froody::Dispatch; my $client = Froody::Dispatch->config({modules=>['Other']}); my $repo = $client->repository; is scalar $repo->get_methods(), 6, 'One method plus the reflection methods'; is scalar $repo->get_methods(qr'^reflection'), 0, 'partial query'; is scalar $repo->get_methods(qr'^other'), 1, 'partial query'; is scalar @{ $client->call('froody.reflection.getMethods')->{method} }, 6, '1 method plus reflection ones'; my $method = $repo->get_method('other.object.method'); is $method->module, 'Other::Object', 'namespace transform worked'; isa_ok $repo->get_method('other.object.method'), 'Froody::Method'; throws_ok { $repo->get_method('Ack.Bar'); } qr/Method 'Ack.Bar' not found/; isa_ok $method, 'Froody::Method'; ok my $ret = $client->call('froody.reflection.getMethodInfo', method_name => 'froody.reflection.getSpecification'); ok $method = $repo->get_method('froody.reflection.getSpecification'); my $buggy = $method->example_response->as_terse->content; eq_or_diff $buggy->{errortypes}, { 'errortype' => [ { '-text' => 'Internal structure of your error type goes here (including XML)', 'code' => 'mycode' }, { '-text' => 'Internal structure of your error type goes here (including XML)', 'code' => 'mycode' } ] }, "So... we were doing bad things with our examples.";