1*5486feefSafresh1#!./perl 2*5486feefSafresh1 3*5486feefSafresh1BEGIN { 4*5486feefSafresh1 chdir 't' if -d 't'; 5*5486feefSafresh1 require './test.pl'; 6*5486feefSafresh1 set_up_inc('../lib'); 7*5486feefSafresh1 require Config; 8*5486feefSafresh1} 9*5486feefSafresh1 10*5486feefSafresh1use v5.36; 11*5486feefSafresh1use utf8; 12*5486feefSafresh1use feature 'class'; 13*5486feefSafresh1no warnings 'experimental::class'; 14*5486feefSafresh1 15*5486feefSafresh1# A bunch of test cases with non-ASCII, non-Latin1. Esperanto is good for that 16*5486feefSafresh1# as the accented characters are not in Latin1. 17*5486feefSafresh1 18*5486feefSafresh1STDOUT->binmode( ":encoding(UTF-8)" ); 19*5486feefSafresh1 20*5486feefSafresh1my $manĝis; 21*5486feefSafresh1 22*5486feefSafresh1class Sandviĉon { 23*5486feefSafresh1 method manĝu { $manĝis++ } 24*5486feefSafresh1 25*5486feefSafresh1 field $tranĉaĵoj :param :reader = undef; 26*5486feefSafresh1} 27*5486feefSafresh1 28*5486feefSafresh1# class name 29*5486feefSafresh1{ 30*5486feefSafresh1 my $s = Sandviĉon->new; 31*5486feefSafresh1 isa_ok( $s, "Sandviĉon", '$s' ); 32*5486feefSafresh1} 33*5486feefSafresh1 34*5486feefSafresh1# methods 35*5486feefSafresh1{ 36*5486feefSafresh1 my $s = Sandviĉon->new; 37*5486feefSafresh1 $s->manĝu; 38*5486feefSafresh1 ok( $manĝis, 'UTF-8 method name works' ); 39*5486feefSafresh1} 40*5486feefSafresh1 41*5486feefSafresh1# field params + accessors default names 42*5486feefSafresh1{ 43*5486feefSafresh1 my $s = Sandviĉon->new( tranĉaĵoj => 3 ); 44*5486feefSafresh1 is( $s->tranĉaĵoj, 3, 'Can obtain value from field via accessor' ); 45*5486feefSafresh1} 46*5486feefSafresh1 47*5486feefSafresh1class Sandwich { 48*5486feefSafresh1 field $slices :param(tranĉaĵoj) :reader(tranĉaĵoj) = undef; 49*5486feefSafresh1} 50*5486feefSafresh1 51*5486feefSafresh1{ 52*5486feefSafresh1 my $s = Sandwich->new( tranĉaĵoj => 5 ); 53*5486feefSafresh1 is( $s->tranĉaĵoj, 5, 'Can obtain value from field via accessor with overridden name' ); 54*5486feefSafresh1} 55*5486feefSafresh1 56*5486feefSafresh1done_testing; 57