1use strict;
2use Test::More tests => 3;
3
4package Temp::DBI;
5use base qw(Class::DBI);
6Temp::DBI->columns(All => qw(id date));
7Temp::DBI->has_a( date => 'Time::Piece', inflate => sub { 
8	Time::Piece->strptime(shift, "%Y-%m-%d") 
9});
10
11
12package Temp::Person;
13use base 'Temp::DBI';
14Temp::Person->table('people');
15Temp::Person->columns(Info => qw(name pet));
16Temp::Person->has_a( pet => 'Temp::Pet' );
17
18package Temp::Pet;
19use base 'Temp::DBI';
20Temp::Pet->table('pets');
21Temp::Pet->columns(Info => qw(name));
22Temp::Pet->has_many(owners => 'Temp::Person');
23
24package main;
25
26my $pn_meta = Temp::Person->meta_info('has_a');
27is_deeply [sort keys %$pn_meta], [qw/date pet/], "Person has Date and Pet";
28
29my $pt_meta = Temp::Pet->meta_info;
30is_deeply [keys %{$pt_meta->{has_a}}], [qw/date/], "Pet has Date";
31is_deeply [keys %{$pt_meta->{has_many}}], [qw/owners/], "And owners";
32
33
34