use strict ;
use Test ;
use Inline Config =>
DIRECTORY => './_Inline_test';
use Inline(
Java => 'DATA',
) ;
BEGIN {
plan(tests => 28) ;
}
my $t = new types4() ;
{
$t->{_byte} = 123 ;
ok($t->{_byte} == 123) ;
$t->{_Byte} = 123 ;
ok($t->{_Byte} == 123) ;
$t->{_short} = 123 ;
ok($t->{_short} == 123) ;
$t->{_Short} = 123 ;
ok($t->{_Short} == 123) ;
$t->{_int} = 123 ;
ok($t->{_int} == 123) ;
$t->{_Integer} = 123 ;
ok($t->{_Integer} == 123) ;
$t->{_long} = 123 ;
ok($t->{_long} == 123) ;
$t->{_Long} = 123 ;
ok($t->{_Long} == 123) ;
$t->{_float} = 123.456 ;
ok($t->{_float} == 123.456) ;
$t->{_Float} = 123.456 ;
ok($t->{_Float} == 123.456) ;
$t->{_double} = 123.456 ;
ok($t->{_double} == 123.456) ;
$t->{_Double} = 123.456 ;
ok($t->{_Double} == 123.456) ;
$t->{_boolean} = 1 ;
ok($t->{_boolean}) ;
$t->{_Boolean} = 1 ;
ok($t->{_Boolean}) ;
$t->{_char} = "a" ;
ok($t->{_char}, "a") ;
$t->{_Character} = "a" ;
ok($t->{_Character}, "a") ;
$t->{_String} = "string" ;
ok($t->{_String}, "string") ;
$t->{_StringBuffer} = "stringbuffer" ;
ok($t->{_StringBuffer}, "stringbuffer") ;
my $obj1 = new obj14() ;
$t->{_Object} = $obj1 ;
ok($t->{_Object}->get_data(), "obj1") ;
$t->{_Object} = "object" ;
ok($t->{_Object}, "object") ;
$t->{_Object} = undef ;
ok($t->{_Object}, undef) ;
$t->{_int} = undef ;
ok($t->{_int} == 0) ;
# Receive an unbound object and try to call a member
my $unb = $t->get_unbound() ;
eval {$unb->{toto} = 1} ; ok($@, qr/Can't set member/) ;
eval {my $a = $unb->{toto}} ; ok($@, qr/Can't get member/) ;
# Unexisting member
eval {$t->{toto} = 1} ; ok($@, qr/No public member/) ;
eval {my $a = $t->{toto}} ; ok($@, qr/No public member/) ;
# Incompatible type
eval {$t->{_long} = $obj1} ; ok($@, qr/Can't convert/) ;
}
ok($t->__get_private()->{proto}->ObjectCount(), 1) ;
__END__
__Java__
import java.util.* ;
class obj14 {
String data = "obj1" ;
public obj14() {
}
public String get_data(){
return data ;
}
}
class types4 {
public byte _byte ;
public Byte _Byte ;
public short _short ;
public Short _Short ;
public int _int ;
public Integer _Integer ;
public long _long ;
public Long _Long ;
public float _float ;
public Float _Float ;
public double _double ;
public Double _Double ;
public boolean _boolean ;
public Boolean _Boolean ;
public char _char ;
public Character _Character ;
public String _String ;
public StringBuffer _StringBuffer ;
public Object _Object ;
public types4(){
}
public ArrayList get_unbound(){
ArrayList al = new ArrayList() ;
al.add(0, "al_elem") ;
return al ;
}
public String send_unbound(ArrayList al){
return (String)al.get(0) ;
}
}