Updated pod synopsis.
[LibTracker-Client-Perl.git] / t / 03-metadata.t
blob14ddef4c29daa719bf9edfe6cff1e13f23cc8a28
1 use Test::More;
2 use LibTracker::Client qw(:all);
4 if( !defined $ENV{LTC_TRACKER_RUNNING} ) {
5         plan skip_all => "LTC_TRACKER_RUNNING not set";
7 else {
8         plan tests => 12;
11 my $tracker = LibTracker::Client->get_instance();
13 SKIP: {
14         skip "LTC_TEST_PATH not set", 5 unless defined $ENV{LTC_TEST_PATH};
16         my $path = $ENV{LTC_TEST_PATH};
17         my $field = $ENV{LTC_META_FIELD} || "File:Other";
18         my $test_value = "XXX_LTCMETA_XXX";
20         # try to set metadata
21         my $metadata = { $field => $test_value };
22         my $num_changes = $tracker->set_metadata(SERVICE_FILES, $path, $metadata);
23         is( $num_changes, 1, "number of fields changed" );
25         # get metadata
26         $metadata = $tracker->get_metadata(SERVICE_FILES, $path, [ $field ]);
27         is( $metadata->{$field}, $test_value, "metadata" );
29         # search metadata
30         my $results = $tracker->search_metadata(SERVICE_FILES, $field, $test_value, 0, 100);
31         ok( $results, "search results" );
32         is( ref $results, "ARRAY", "search results return type" );
33         TODO: {
34                 local $TODO = "metadata search has problems";
35                 ok( contains( $results, $path ), "test file in results" );
36         }
39 # register metadata type
41 $tracker->register_metadata_type("Doc:Text", DATA_STRING_INDEXABLE);
42 pass("register metadata type");         # if it reaches this - it passed.
44 my $arrayref = $tracker->get_registered_metadata_classes();
45 ok( $arrayref, "metadata_classes return value" );
46 is( ref $arrayref, "ARRAY", "metadata_classes return value type" );
48 my $types = $tracker->get_registered_metadata_types($arrayref->[0]);
49 ok( $types, "metadata_types return value" );
50 is( ref $types, "ARRAY", "metadata_types return value type" );
52 my $wt = $tracker->get_writeable_metadata_types($arrayref->[0]);
53 ok( $wt, "writeable_metadata_types return value" );
54 is( ref $wt, "ARRAY", "writeable_metadata_types return value type" );
57 sub contains
59         my $aref = shift;
60         my $value = shift;
62         foreach my $elem ( @{$aref} ) {
63                 return 1 if ($elem eq $value);
64         }
66         return 0;