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

use Statistics::RserveClient::REXP::String;

use Test::More tests => 8;

my $string = new Statistics::RserveClient::REXP::String;

isa_ok( $string, 'Statistics::RserveClient::REXP::String', 'new returns an object that' );
ok( $string->isString(),      'String is a string' );
ok( $string->isVector(),      'String is a vector' );

is( $string->length(), 0, 'empty vector has length 0' );
ok( !defined $string->getValues(), 'empty vector has no values' );

my @val = ( "foo", "bar", "baz" );
$string->setValues( \@val );

is( $string->length(), 3, 'length 3 when set to 3 values' );

is( $string->getValues(), @val, 'values is [1, 2, 3]' );

my $expected_html = << 'END_HTML';
<div class='rexp vector xt_34'>
<span class="typename">string*</span>
<span class='length'>3</span>
<div class='values'>
<div class='value'>"foo"</div>
<div class='value'>"bar"</div>
<div class='value'>"baz"</div>
</div>
</div>
END_HTML
chomp($expected_html);

is( $string->toHTML(), $expected_html, 'convert to HTML' );

done_testing();