Catmandu-MediaHaven

 view release on metacpan or  search on metacpan

t/Catmandu-Exporter-MediaHaven.t  view on Meta::CPAN

use strict;
use warnings;
use Test::More;
use Test::Exception;
use Cpanel::JSON::XS;

my $pkg;

BEGIN {
    $pkg = 'Catmandu::Exporter::MediaHaven';
    use_ok $pkg;
}
require_ok $pkg;

my $url  = $ENV{MEDIAHAVEN_URL} || "";
my $user = $ENV{MEDIAHAVEN_USER} || "";
my $pwd  = $ENV{MEDIAHAVEN_PWD} || "";

SKIP: {
    skip "No Mediahaven server environment settings found (MEDIAHAVEN_URL,"
	 . "MEDIAHAVEN_USER,MEDIAHAVEN_PWD).",
	100 if (! $url || ! $user || ! $pwd);

    my $exporter = Catmandu->exporter(
                        'MediaHaven',
                        url => $url ,
                        username => $user ,
                        password => $pwd ,
                        json_key => 'description');

    ok $exporter , 'got an exporter';

    ok $exporter->mediahaven , 'got a connection';

    my $res = $exporter->mediahaven->search();

    ok $res , 'got search result';

    my $fragmentId = $res->{mediaDataList}->[1]->{fragmentId};

    ok $fragmentId , "got one record $fragmentId";

    my $record = { _id => $fragmentId , date => time , test => [qw(1 2 3)]};

    ok $exporter->add($record) , "updated record $fragmentId";

    ok $exporter->commit , "can do a commit";

    sleep(20);
    
    my $record2 = $exporter->mediahaven->record($fragmentId);

    ok $record2 , 'got the record back';

    my $description = $record2->{description};

    ok $description , "got a description: $description";

    my $json_rec = decode_json $description;

    ok $json_rec  , "got json";

    is_deeply $record , $json_rec  , "update was a success";
}

done_testing;



( run in 0.811 second using v1.01-cache-2.11-cpan-d80b1682f3f )