The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use warnings;

use FindBin qw($Bin);
use lib $Bin;

use Test::More;
use Net::Fluidinfo;
use Net::Fluidinfo::TestUtils;

use_ok('Net::Fluidinfo::Tag');

my $fin = Net::Fluidinfo->_new_for_net_fluidinfo_test_suite;

my ($tag, $tag2, $description, $name, $path);

$description = random_description;
$name = random_name;
$path = $fin->username . "/$name";

# create a tag
$tag = Net::Fluidinfo::Tag->new(
    fin         => $fin,
    description => $description,
    indexed     => 1,
    path        => $path
);
ok $tag->create;
ok $tag->has_object_id;
ok $tag->object->id eq $tag->object_id;
ok $tag->name eq $name;
ok $tag->path_of_parent eq $fin->username;
ok $tag->namespace->name eq $fin->username;
ok $tag->path eq $path;

# fetch it
$tag2 = Net::Fluidinfo::Tag->get($fin, $tag->path, description => 1);
ok $tag2->description eq $tag->description;
ok $tag2->indexed;
ok $tag2->object_id eq $tag->object_id;
ok $tag2->name eq $tag->name;
ok $tag2->path_of_parent eq $tag->path_of_parent;
ok $tag2->namespace->name eq $tag->namespace->name;
ok $tag2->path eq $tag->path;

# update description
$description = random_description;
$tag->description($description);
ok $tag->update;

$tag2 = Net::Fluidinfo::Tag->get($fin, $tag->path, description => 1);
ok $tag2->description eq $tag->description;

# delete it
ok $tag->delete;

done_testing;