#!/usr/bin/perl -w ######################################################################### # This tests loads an xml based API (Testobject::API) and makes sure that # the right things are set up in the repository ######################################################################### use strict; use warnings; use Test::More; use Test::Differences; use FindBin qw/$Bin/; use File::Spec::Functions 'catfile'; eval { require JavaScript::Standalone }; plan skip_all => "froodydoc.js needs JavaScript::Standalone" if $@; plan tests => 1; my $bin_script = catfile($Bin, qw/.. bin froodydoc.js/); # ./lib needs to be in the inc path - FOR THE $bin_script process. so set $ENV{PERL5LIB} $ENV{PERL5LIB} = join(":", $ENV{PERL5LIB}||'', catfile($Bin, qw/.. lib/) ); open POD, "$bin_script Froody::API::Reflection|" or die "Unable to open froodydoc.js pipe for reading: $!"; { local $/; eq_or_diff , , "Pod matches"; } __DATA__ =head1 NAME Froody::API::Reflection =head1 METHODS =head2 froody.reflection.getMethodInfo Returns information for a given froody API method. As long as there is a method matching the given method_name, returns description and usage of that method in xml. =head3 Arguments =over =item method_name The name of the method to fetch information for. =back =head3 Response A fake method xml-response-example Your favorite color. Your happy fun clothing of choice. Don't cross the streams. Don't cross the streams. =head3 Errors =over =item froody.error.notfound.method - Method not found The requested method was not found. =back =head2 froody.reflection.getMethods Returns a list of available froody API methods. =head3 Arguments None. =head3 Response froody.reflection.getMethods froody.reflection.getMethodInfo bar.baz.blargle heartofgold.towel.location =head2 froody.reflection.getErrorTypes Returns a list of all available froody error types for this repository. =head3 Arguments None. =head3 Response froody.error froody.error.blog =head2 froody.reflection.getErrorTypeInfo Request information about an Error Type =head3 Arguments =over =item code The code of the error type whose information is being requested. =back =head3 Response Internal structure of your error type goes here (including XML) =head3 Errors =over =item froody.error.notfound.errortype - Error Type not Found =back =head2 froody.reflection.getSpecification Request the full public specification for a froody endpoint. =head3 Arguments None. =head3 Response A fake method xml-response-example Your favorite color. Your happy fun clothing of choice. Don't cross the streams. Don't cross the streams. A fake method xml-response-example Your favorite color. Your happy fun clothing of choice. Don't cross the streams. Don't cross the streams. Internal structure of your error type goes here (including XML) Internal structure of your error type goes here (including XML)