Froody

 view release on metacpan or  search on metacpan

t/froodydoc_pod_js.t  view on Meta::CPAN

#!/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>, <DATA>, "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


  <response>
    <method name="froody.fakeMethod" needslogin="1">
      <description>A fake method</description>
      <response>xml-response-example</response>
      <arguments>
        <argument name="color" optional="1" type="scalar">Your favorite color.</argument>
        <argument name="fleece" optional="0" type="csv">Your happy fun clothing of choice.</argument>
      </arguments>
      <errors>
        <error code="1" message="it would be bad">Don't cross the streams.</error>
        <error code="1" message="it would be bad">Don't cross the streams.</error>
      </errors>
    </method>
  </response>

=head3 Errors



( run in 2.097 seconds using v1.01-cache-2.11-cpan-8f98c5d2c55 )