beginnings of IndexableBy
[dbsrgits/DBIx-Data-Store-old.git] / t / 02indexed_by.t
1 use strict;
2 use warnings FATAL => 'all';
3 use Test::More;
4 use DBIx::Data::Collection::Set::IndexableBy;
5
6 BEGIN {
7   package BasicCollection;
8   require 't/01basic_collection.t'
9 }
10
11 sub setup_db { BasicCollection::setup_db @_ }
12
13 sub make_store { BasicCollection::make_store @_ }
14
15 sub make_set {
16   BasicCollection::make_set({
17       indexable_by => {
18         name => {
19           set_over => [ 'name' ],
20           store => make_store({
21             select_single_sql => q{SELECT id, name FROM person WHERE name = ?},
22             select_single_argument_order => [ qw(name) ],
23           }),
24         },
25       },
26     },
27     {
28       select_single_sql => q{SELECT id, name FROM person WHERE id = ?},
29       select_single_argument_order => [ qw(id) ],
30     },
31     'DBIx::Data::Collection::Set::IndexableBy'
32   )
33 }
34
35
36 sub run_tests {
37   my @expect = setup_db;
38   my $set = make_set;
39   use Devel::Dwarn;
40   Dwarn $set->get({ id => 1 });
41   my $by_name = $set->indexed_by('name');
42   Dwarn $by_name->get({ name => 'Pterry' });
43   done_testing;
44 }
45
46 run_tests unless caller;