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