#!perl
use strict;
use warnings;
use Test::More 'no_plan';
BEGIN { use_ok("Rubric::Config", 't/config/rubric.yml'); }
use Rubric::Entry;
my @tagstrings = (
[ '' => {} ],
[ 'foo' => { foo => undef } ],
[ 'foo bar' => { foo => undef, bar => undef } ],
[ 'foo baz:peanut bar' => { foo => undef, bar => undef, baz => 'peanut' } ],
[ 'foo baz: bar' => { foo => undef, bar => undef, baz => '' } ],
[ 'bad()tag foo bar' => undef ],
[ 'bad:tag|value foo' => undef ],
);
for (@tagstrings) {
my ($string, $expected_tags) = @$_;
my $tags = eval { Rubric::Entry->tags_from_string($string); };
is_deeply(
$tags,
$expected_tags,
"tags from <$string>" . (! defined $expected_tags ? ' (invalid)' : ''),
);
}