The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# ----------------------------------------------------------------
    use strict;
    use Test::More tests => 23;
    BEGIN { use_ok('XML::FeedPP') };
# ----------------------------------------------------------------
    my $url = "http://www.kawa.net/";
    my $cate1 = "hoge";
    my $cate2 = "pomu";
    my $cate3 = "foobar";
    my $catem = [ \$cate1, \$cate2, \$cate3 ];
    my $caten = scalar @$catem;
# ----------------------------------------------------------------
    my $feed0 = XML::FeedPP::RSS->new();
    $feed0->link( $url );
    my $item0 = $feed0->add_item( $url );
    $item0->category( $catem );
    ok( ref $item0->category(), "init multi ref" );
    my $source = $feed0->to_string();
    like( $source, qr/><!\[CDATA\[\Q$cate1\E\]\]></s, "init multi 1/3" );
    like( $source, qr/><!\[CDATA\[\Q$cate2\E\]\]></s, "init multi 2/3" );
    like( $source, qr/><!\[CDATA\[\Q$cate3\E\]\]></s, "init multi 3/3" );
# ----------------------------------------------------------------
    my $feeds = [
        XML::FeedPP::RDF->new(),
        XML::FeedPP::RSS->new(),
#       XML::FeedPP::Atom::Atom10->new(),   # Atom 1.0's <category> doesn't use CDATA
    ];
# ----------------------------------------------------------------
    foreach my $feed1 ( @$feeds ) {
        my $type = ref $feed1;
        $feed1->merge( $source );
        my $item1 = $feed1->get_item(0);
        my $icate = $item1->category();
        ok( ref $icate, "$type load ref" );
        is( scalar @$icate, $caten, "$type load count" );

        $item1->category( \$cate1 );
        is( $item1->category(), $cate1, "$type one" );
        like( $feed1->to_string(), qr/><!\[CDATA\[\Q$cate1\E\]\]></s, "$type one source" );

        $item1->category( $catem );
        my $jcate = $item1->category();
        ok( ref $jcate, "$type multi ref" );
        is( scalar @$jcate, $caten, "$type multi count" );

        $source = $feed1->to_string();
        like( $source, qr/><!\[CDATA\[\Q$cate1\E\]\]></s, "$type multi 1/3" );
        like( $source, qr/><!\[CDATA\[\Q$cate2\E\]\]></s, "$type multi 2/3" );
        like( $source, qr/><!\[CDATA\[\Q$cate3\E\]\]></s, "$type multi 3/3" );
    }
# ----------------------------------------------------------------
;1;
# ----------------------------------------------------------------