# -*-perl-*-

use strict;
use warnings;
use Test::More;

BEGIN {
    require 't/lib/testlib.pl';
}
use Gearman::Client;
use Data::Dumper;

my $db = TestDB->new;
plan tests => 1;

ok( $db, "got a test database" );

my $srv = TestServer->new($db);
ok( $srv, "got a test server" );

my $cl = $srv->gearman_client;

my $ret;

# FIXME: test currently requires running gearmand on localhost
{
    use IO::Socket::INET;
    my $sock = IO::Socket::INET->new( PeerAddr => "127.0.0.1:7003" );
    ok( $sock, "local gearmand is up for testing" )
        or die "can't continue";
}

sub do_req {
    my $req = shift;
    my $ret = $cl->do_task( "insert_job", json($req) );
    return undef unless $ret;
    return $$ret unless $$ret =~ /^\s*[\[\{]/;
    return unjson($$ret);
}

$ret = do_req(
    {   funcname => "foo",
        arg      => "fooarg",
    }
);
like( $ret, qr/^\w+-\d+$/, "got a job handle" );

