File: 02_access.t

package info (click to toggle)
libcatmandu-fedoracommons-perl 0.5-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 568 kB
  • sloc: perl: 2,523; xml: 78; makefile: 7
file content (72 lines) | stat: -rw-r--r-- 2,586 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
use Test::More tests=>31;
use Data::Dumper;
use Catmandu::FedoraCommons;

my $host = $ENV{FEDORA_HOST} || "";
my $port = $ENV{FEDORA_PORT} || "";
my $user = $ENV{FEDORA_USER} || "";
my $pwd  = $ENV{FEDORA_PWD} || "";

SKIP: {
    skip "No Fedora server environment settings found (FEDORA_HOST,"
	 . "FEDORA_PORT,FEDORA_USER,FEDORA_PWD).",
	31 if (! $host || ! $port || ! $user || ! $pwd);

    my $x = Catmandu::FedoraCommons->new("http://$host:$port/fedora",$user,$pwd);

    ok($res = $x->findObjects(terms=>'*'),'findObjects');
    ok($res->is_ok,'is_ok');
    ok($obj = $res->parse_content,'parse_content');
    is(@{ $obj->{results} } , 20 , 'resultList');

    printf "[session = %s]\n" , $obj->{token};

    for my $hit (@{ $obj->{results} }) {
        printf "%s\n" , $hit->{pid};
    }

    ok($res = $x->resumeFindObjects(sessionToken => $obj->{token}), 'resumeFindObjects');
    ok($res->is_ok,'is_ok');
    ok($obj = $res->parse_content,'parse_content');
    is(@{ $obj->{results} } , 20 , 'resultList');

    printf "[session = %s]\n" , $obj->{token};

    for my $hit (@{ $obj->{results} }) {
        printf "%s\n" , $hit->{pid};
    }

    ok($res = $x->getDatastreamDissemination(pid => 'demo:5', dsID => 'THUMBRES_IMG'));
    ok($res->is_ok,'is_ok');
    ok(length $res->raw > 0, 'raw');
    ok($res = $x->getDatastreamDissemination(pid => 'demo:5', dsID => 'VERYHIGHRES', callback => \&process),'callback');

    ok($res = $x->getDissemination(pid => 'demo:29', sdefPid => 'demo:27' , method => 'resizeImage' , width => 100),'getDissemination');
    is($res->content_type, 'image/jpeg','content_type');
    ok($res->length > 3000, 'length');

    ok($res = $x->getObjectHistory(pid => 'demo:29'),'getObjectHistory');
    ok($res->is_ok,'is_ok');
    ok($obj = $res->parse_content, 'parse_content');
    is($obj->{objectChangeDate}->[0],'2008-07-02T05:09:43.234Z','objectChangeDate');

    ok($res = $x->getObjectProfile(pid => 'demo:29' ), 'getObjectProfile');
    ok($res->is_ok,'is_ok');
    ok($obj = $res->parse_content, 'parse_content');
    is($obj->{pid},'demo:29','pid');

    ok($res = $x->listDatastreams(pid => 'demo:29'), 'listDatastreams');
    ok($res->is_ok,'is_ok');
    ok($obj = $res->parse_content, 'parse_content');
    ok(@{ $obj->{datastream} } == 3, 'count datastreams');

    ok($res = $x->listMethods(pid => 'demo:29'));
    ok($res->is_ok,'is_ok');
    ok($obj = $res->parse_content, 'parse_content');
    ok(@{ $obj->{sDef} } == 2, 'count methods');
}

sub process {
    my ( $data, $response, $protocol ) = @_;
    ok($data, 'callback');
}