#!/usr/bin/env perl
#
# Yes. This is the test for the test...
#
use strict;
use warnings;
use Test::More tests => 22;
use Test::Clustericious;
package SomeService;
use base 'Clustericious::App';
use Clustericious::RouteBuilder;
my $object;
get '/object/id' => sub { my $c = shift;
if ($object) { $c->render_json($object) }
else { $c->res->code(404);
$c->render_text('Not Found') } };
post '/object' => sub { my $c = shift;
$object = $c->parse_autodata;
$c->render_json($object) };
del '/object/id' => sub { my $c = shift;
$object = undef;
$c->render_text('ok') };
package main;
my $t = new_ok('Test::Clustericious', [ app => "SomeService" ]);
my $test_obj = { a => 'b', c => 'd' };
my $x = $t->create_ok('/object', $test_obj);
is_deeply($x, $test_obj, 'Check created object = sent object');
$x = $t->retrieve_ok('/object/id');
is_deeply($x, $test_obj, 'Check retrieved object = created object');
$t->remove_ok('/object/id');
$t->notfound_ok('/object/id');
$test_obj = $t->testdata('testobject');
$x = $t->create_ok('/object', 'testobject');
is_deeply($x, $test_obj, 'Check uploading object from a file');
$x = $t->retrieve_ok('/object/id');
is_deeply($x, $test_obj, 'Check retrieved object = object from file');
1;