The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use Test::More tests => 1;

    
# build the testing classes
package Person;
use Storm::Object;
storm_table( 'People' );

has 'identifier' => ( is => 'rw', traits => [qw( PrimaryKey AutoIncrement )] );
has 'name' => ( is => 'rw' );
one_to_many 'pets' => (
    foreign_class => 'Pet',
    match_on => 'caretaker',
    handles => {
       'pets' => 'iter', 
    } 
);



package Pet;
use Storm::Object;
storm_table( 'Pets' );

has 'identifier' => ( is => 'rw', traits => [qw( PrimaryKey AutoIncrement )] );
has 'name' => ( is => 'rw' );
has 'caretaker' => ( is => 'rw', isa => 'Person' );



package main;
   
use Storm;

my $storm = Storm->new( source => ['DBI:SQLite:dbname=:memory:'] );
$storm->aeolus->install_class( 'Person' );
$storm->aeolus->install_class( 'Pet' );


my $person = Person->new( name => 'Marge' );
$storm->insert( $person );

for ('Santa\'s Little Helper', 'Snowball 2') {
    my $pet = Pet->new( name => $_, caretaker => $person );
    $storm->insert( $pet );
}

is scalar( $person->pets->all ), 2, 'pets retrieved';