File Coverage

inc/WebService/Cmis/Test/Xml.pm
Criterion Covered Total %
statement 3 3 100.0
branch n/a
condition n/a
subroutine 1 1 100.0
pod n/a
total 4 4 100.0


line stmt bran cond sub pod time code
1             package WebService::Cmis::Test::Object;
2 1     1   805 use base qw(WebService::Cmis::Test);
  1         2  
  1         606  
3             use Test::More;
4              
5             use strict;
6             use warnings;
7              
8             use WebService::Cmis qw(:collections :utils :relations :namespaces :contenttypes);
9             use WebService::Cmis::AtomEntry ();
10             use WebService::Cmis::Object ();
11             use WebService::Cmis::Property ();
12             use WebService::Cmis::Repository ();
13              
14             sub test_Object_CMIS_XPATH_PROPERTIES : Tests {
15             my $this = shift;
16              
17             my $xml = $this->getTestXml("object");
18             ok(defined $xml);
19              
20             my @nodes = $xml->findnodes($WebService::Cmis::Object::CMIS_XPATH_PROPERTIES);
21             ok(scalar(@nodes));
22             note("found ".scalar(@nodes)." nodes");
23              
24             my %props = ();
25             foreach my $node (@nodes) {
26             my $property = WebService::Cmis::Property::load($node);
27             ok(defined $property) || diag("failed to create property from node");
28             my $propId = $property->getId;
29             ok(defined $propId) || diag("property does not have an id");
30             note("property = ".$property->toString);
31             ok(!defined $props{$propId}) || diag("duplicate property $propId");
32             $props{$propId} = $property;
33             }
34              
35             ok(defined $props{"cmis:name"} && $props{"cmis:name"}->getValue eq "free.jpg");
36             ok(defined $props{"cmis:objectId"});
37             ok(defined $props{"cmis:objectTypeId"});
38             ok(defined $props{"cmis:isLatestMajorVersion"});
39             ok(defined $props{"cmis:contentStreamLength"} && $props{"cmis:contentStreamLength"}->getValue == 63118);
40             ok(defined $props{"cmis:contentStreamId"});
41             ok(defined $props{"cmis:contentStreamMimeType"} && $props{"cmis:contentStreamMimeType"}->getValue eq "image/jpeg");
42             ok(defined $props{"cmis:baseTypeId"} && $props{"cmis:baseTypeId"}->getValue eq "cmis:document");
43             ok(defined $props{"cmis:lastModificationDate"});
44             }
45              
46             # TODO
47             # $WebService::Cmis::AtomEntry::CMIS_XPATH_TITLE
48             # $WebService::Cmis::AtomEntry::CMIS_XPATH_UPDATED
49             # $WebService::Cmis::AtomEntry::CMIS_XPATH_SUMMARY
50             # $WebService::Cmis::AtomEntry::CMIS_XPATH_PUBLISHED
51             # $WebService::Cmis::AtomEntry::CMIS_XPATH_EDITED
52             # $WebService::Cmis::AtomEntry::CMIS_XPATH_AUTHOR
53             # $WebService::Cmis::AtomEntry::CMIS_XPATH_ID
54             # $WebService::Cmis::Repository::CMIS_XPATH_REPOSITORIES
55              
56             # $WebService::Cmis::ChangeEntry::CMIS_XPATH_PROPERTIES
57             # $WebService::Cmis::ChangeEntry::CMIS_XPATH_CHANGETYPE
58             # $WebService::Cmis::ChangeEntry::CMIS_XPATH_CHANGETIME
59             # $WebService::Cmis::ChangeEntry::CMIS_XPATH_ACL
60              
61             1;