The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use Test::Simple tests => 14;

use Java::Import qw(
	java.lang.Class
);

#call a method that returns a Java Array and check it out
my $sb_class = java::lang::Class->forName(jstring("java.lang.StringBuffer"));
my $constructors = $sb_class->getConstructors();
ok(scalar(@$constructors) == 3);

#look at each element in the array and make sure it is what we think it is
foreach my $constructor ( @$constructors ) {
	if ( $constructor->isa('java::lang::reflect::Constructor') ) {
		ok(1);
	}
}

#access the array via regular array syntax
for ( my $i = 0; $i < scalar(@$constructors); $i++ ) {
	my $constructor = $$constructors[$i];
	if ( $constructor->isa('java::lang::reflect::Constructor') ) {
		ok(1);
	}
}

#create a Java Array
my $array = Java::Import::newJavaArray('java.lang.String', 3);
ok($array);

#populate the array
for ( my $i = 0; $i < scalar(@$array); $i++ ) {
	$$array[$i] = jstring("$i");
	ok(1);
}

#access it again to make sure we can get what we put in there, and they are in the right place
for ( my $i = 0; $i < scalar(@$array); $i++ ) {
	my $test = $$array[$i];
	if ( "$test" == "$i" ) {
		ok(1);
	}
}