File: 24-meta_info.t

package info (click to toggle)
libclass-dbi-perl 3.0.17-3
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 548 kB
  • ctags: 251
  • sloc: perl: 2,118; makefile: 2
file content (33 lines) | stat: -rwxr-xr-x 864 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
use strict;
use Test::More tests => 3;

package Temp::DBI;
use base qw(Class::DBI);
Temp::DBI->columns(All => qw(id date));
Temp::DBI->has_a( date => 'Time::Piece', inflate => sub { 
	Time::Piece->strptime(shift, "%Y-%m-%d") 
});


package Temp::Person;
use base 'Temp::DBI';
Temp::Person->table('people');
Temp::Person->columns(Info => qw(name pet));
Temp::Person->has_a( pet => 'Temp::Pet' );

package Temp::Pet;
use base 'Temp::DBI';
Temp::Pet->table('pets');
Temp::Pet->columns(Info => qw(name));
Temp::Pet->has_many(owners => 'Temp::Person');

package main;

my $pn_meta = Temp::Person->meta_info('has_a');
is_deeply [sort keys %$pn_meta], [qw/date pet/], "Person has Date and Pet";

my $pt_meta = Temp::Pet->meta_info;
is_deeply [keys %{$pt_meta->{has_a}}], [qw/date/], "Pet has Date";
is_deeply [keys %{$pt_meta->{has_many}}], [qw/owners/], "And owners";