use strict;
use warnings;
=head1 NAME
stringify.t - test of the stringify attribute on DustyDB::Key
=cut
use Test::More tests => 9;
use_ok('DustyDB');
# Declare a model
package Rot13;
use DustyDB::Object;
has key name => (
is => 'rw',
isa => 'Str',
stringify => sub {
my $ALPHA = join '', ('A' .. 'Z');
my $alpha = join '', ('a' .. 'z');
my $APHLA = reverse $ALPHA;
my $aphla = reverse $alpha;
eval "tr/$ALPHA$alpha/$APHLA$aphla/";
$_
},
);
package main;
my $db = DustyDB->new( path => 't/stringify.db' );
ok($db, 'Loaded the database object');
isa_ok($db, 'DustyDB');
my $rot13 = $db->model('Rot13');
is(Rot13->meta->get_attribute_map->{name}->perform_stringify('Testing'),
'Gvhgrmt',
'perform_stringify works');
{
my $rot13_thing = $rot13->create( name => 'Testing' );
ok($rot13_thing, 'created Testing');
is($rot13_thing->name, 'Testing', 'name is still Testing');
}
ok(defined $db->dbm->{'models'}{'Rot13'}{'Gvhgrmt'}, 'Gvhgrmt is stored');
{
my $rot13_thing = $rot13->load( name => 'Testing' );
ok($rot13_thing, 'loaded Testing with Testing');
is($rot13_thing->name, 'Testing', 'name is again Testing');
}
unlink 't/stringify.db';