BEGIN { use_ok(
'ODG::Record'
) };
{
package
MyClass;
has
area_code
=> (
is
=>
'ro'
,
isa
=>
'Int'
,
index
=> 0 ,
traits
=> [
'Index'
] ,
);
has
exchange
=> (
is
=>
'rw'
,
isa
=>
'Int'
,
index
=> 1 ,
traits
=> [
'Index'
] ,
);
has
number
=> (
is
=>
'rw'
,
isa
=>
'Int'
,
index
=> 2 ,
traits
=> [
'Index'
] ,
);
}
my
$record
= MyClass->new(
_data
=> [ 213, 555, 1212 ] );
isa_ok(
$record
,
'MyClass'
);
ok
$record
->_has_data,
'_has_data'
;
ok
$record
->area_code == 213,
'ro attribute'
;
ok
$record
->exchange == 555,
'rw attribute'
;
ok
$record
->number == 1212,
'rw attribute'
;
$record
->exchange( 444 );
ok
$record
->exchange == 444,
'Standard Moose Accessor no type checking'
;
$record
->number = 1234;
ok
$record
->number == 1234,
'Lvalue accessor'
;
ok
$record
->_has_data,
'_has_data'
;
$record
->_data = [ 000, 000, 0000 ];
ok
$record
->area_code == 000 ,
'lvalue data replacement'
;