Skip to content

Commit

Permalink
fix test
Browse files Browse the repository at this point in the history
  • Loading branch information
papix committed Nov 22, 2019
1 parent cec59fc commit 312a032
Showing 1 changed file with 31 additions and 19 deletions.
50 changes: 31 additions & 19 deletions t/04_inflate.t
Original file line number Diff line number Diff line change
Expand Up @@ -3,51 +3,63 @@ use warnings;
use Test::More;
use Test::Exception;

use DateTime;

{
package
L;

use Class::Accessor::Typed (
rw => {
date => { isa => 'DateTime', inflate => sub { DateTime->from_epoch(epoch => shift) } },
rw => { isa => 'M', inflate => sub { M->new(shift) } },
},
new => 1,
);
}
{
package
M;

sub new {
my ($class, $value) = @_;

return bless {
value => $value,
}, $class;
}

sub value { shift->{value} }
}

subtest 'new' => sub {
subtest 'use DataTime object' => sub {
my $obj = L->new(date => DateTime->from_epoch(epoch => 1234567890));
subtest 'use M object' => sub {
my $obj = L->new(rw => 'hello');
isa_ok $obj, 'L';

isa_ok $obj->date, 'DateTime';
is $obj->date->epoch, 1234567890;
isa_ok $obj->rw, 'M';
is $obj->rw->value, 'hello';
};
subtest 'use epoch (and inflate)' => sub {
my $obj = L->new(date => 1234567890);
my $obj = L->new(rw => M->new('hello'));
isa_ok $obj, 'L';

isa_ok $obj->date, 'DateTime';
is $obj->date->epoch, 1234567890;
isa_ok $obj->rw, 'M';
is $obj->rw->value, 'hello';
};
};

subtest 'setter' => sub {
subtest 'use DateTime object' => sub {
my $obj = L->new(date => DateTime->from_epoch(epoch => 1234567890));
$obj->date(DateTime->from_epoch(epoch => 1231231230));
subtest 'use M object' => sub {
my $obj = L->new(rw => 'hello');
$obj->rw(M->new('good bye'));

isa_ok $obj->date, 'DateTime';
is $obj->date->epoch, 1231231230;
isa_ok $obj->rw, 'M';
is $obj->rw->value, 'good bye';
};
subtest 'use epoch (and inflate)' => sub {
my $obj = L->new(date => DateTime->from_epoch(epoch => 1234567890));
$obj->date(1231231230);
my $obj = L->new(rw => 'hello');
$obj->rw('good bye');

isa_ok $obj->date, 'DateTime';
is $obj->date->epoch, 1231231230;
isa_ok $obj->rw, 'M';
is $obj->rw->value, 'good bye';
};
};

Expand Down

0 comments on commit 312a032

Please sign in to comment.