#!/usr/bin/perl
{
BEGIN {
Object::Pad->import_into(
"AClass"
);
my
$classmeta
= Object::Pad::MOP::Class->begin_class(
"AClass"
);
::is(
$classmeta
->name,
"AClass"
,
'$classmeta->name'
);
}
method message {
return
"Hello"
}
}
is( AClass->new->message,
"Hello"
,
'->begin_class can create a class'
);
}
{
BEGIN {
Object::Pad->import_into(
"BClass"
);
my
$classmeta
= Object::Pad::MOP::Class->begin_class(
"BClass"
,
abstract
=> 1 );
::ok(
$classmeta
->is_abstract,
'$classmeta->is_abstract for abstract class'
);
}
}
}
class Parent { field
$thing
=
"parent"
; }
{
BEGIN {
Object::Pad->import_into(
"Child"
);
my
$classmeta
= Object::Pad::MOP::Class->begin_class(
"Child"
,
isa
=>
"Parent"
);
::is(
$classmeta
->name,
"Child"
,
'$classmeta->name for Child'
);
}
field
$other
=
"child"
;
method other {
return
$other
}
}
is( Child->new->other,
"child"
,
'->begin_class can extend superclasses'
);
}
done_testing;