deprecated add_row_info and added replacement method build_metadata
[dbsrgits/DBIx-Class-ResultSet-WithMetaData.git] / t / custom_methods.t
1 #!perl
2
3 use Test::More;
4 use lib qw(t/lib);
5 use DBICTest;
6 use Data::Dumper;
7
8 # set up and populate schema
9 ok(my $schema = DBICTest->init_schema(), 'got schema');
10
11 {
12         my $artist_rs = $schema->resultset('Artist')->search({}, { order_by => 'artistid' })->display();
13         is_deeply($artist_rs, [
14                 {
15                         'artistid' => '1',
16                         'name' => 'Caterwauler McCrae'
17                 },
18                 {
19                         'artistid' => '2',
20                         'name' => 'Random Boy Band'
21                 },
22                 {
23                         'artistid' => '3',
24                         'name' => 'We Are Goth'
25                 }
26         ], 'ordered display returned as expected');
27 }
28
29 {
30         my $artists = $schema->resultset('Artist')->search({}, { order_by => 'artistid' })->with_substr->display();
31         is_deeply($artists, [
32                 {
33                         'artistid' => '1',
34                         'name' => 'Caterwauler McCrae',
35                         'substr' => 'Cat'
36                 },
37                 {
38                         'artistid' => '2',
39                         'name' => 'Random Boy Band',
40                         'substr' => 'Ran'
41                 },
42                 {
43                         'artistid' => '3',
44                         'name' => 'We Are Goth',
45                         'substr' => 'We '
46                 }
47         ], 'display with substring okay');
48 }
49
50 # {
51 #       my $artists = $schema->resultset('Artist')->search({}, { order_by => 'artistid' })->with_substr_old->display();
52 #       is_deeply($artists, [
53 #               {
54 #                       'artistid' => '1',
55 #                       'name' => 'Caterwauler McCrae',
56 #                       'substr' => 'Cat'
57 #               },
58 #               {
59 #                       'artistid' => '2',
60 #                       'name' => 'Random Boy Band',
61 #                       'substr' => 'Ran'
62 #               },
63 #               {
64 #                       'artistid' => '3',
65 #                       'name' => 'We Are Goth',
66 #                       'substr' => 'We '
67 #               }
68 #       ], 'display with substring okay');
69 # }
70
71 {
72         my $artists = $schema->resultset('Artist')->search({}, { order_by => 'artistid' })->with_substr->search({}, { prefetch => 'cds', rows => 1 })->display();
73         is_deeply($artists, [
74       { 
75         'artistid' => 1,
76         'cds' => [ 
77           { 
78             'cdid' => 3,
79             'artist' => 1,
80             'title' => 'Caterwaulin\' Blues',
81             'year' => '1997'
82           },
83           { 
84             'cdid' => 1,
85             'artist' => 1,
86             'title' => 'Spoonful of bees',
87             'year' => '1999'
88           },
89           { 
90             'cdid' => 2,
91             'artist' => 1,
92             'title' => 'Forkful of bees',
93             'year' => '2001'
94           }
95         ],
96         'name' => 'Caterwauler McCrae',
97         'substr' => 'Cat'
98       }
99         ], 'substring before prefetch okay');
100 }
101
102 done_testing();