Added test for metadata search.
[LibTracker-Client-Perl.git] / t / 03-metadata.t
blob63c8be6ee236091e2669ed31e0d67976e5d08c66
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         my $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         ok( ref $results =~ /ARRAY/, "search results return type" );
33         ok( contains( $results, $file ), "test file in results" );
36 # register metadata type
38 $tracker->register_metadata_type("Doc:Text", DATA_STRING_INDEXABLE);
39 pass("register metadata type");         # if it reaches this - it passed.
41 my $arrayref = $tracker->get_registered_metadata_classes();
42 ok( $arrayref, "metadata_classes return value" );
43 ok( ref $arrayref =~ /ARRAY/, "metadata_classes return value type" );
45 my $types = $tracker->get_registered_metadata_types($arrayref->[0]);
46 ok( $types, "metadata_types return value" );
47 ok( ref $types =~ /ARRAY/, "metadata_types return value type" );
49 my $wt = $tracker->get_writeable_metadata_types($arrayref->[0]);
50 ok( $wt, "writeable_metadata_types return value" );
51 ok( ref $wt =~ /ARRAY/, "writeable_metadata_types return value type" );