Fix set_column on non-native (+columns) selections (RT#86685)
[dbsrgits/DBIx-Class.git] / t / row / set_extra_column.t
1 use strict;
2 use warnings;
3
4 use Test::More;
5
6 use lib qw(t/lib);
7 use DBICTest;
8
9 my $schema = DBICTest->init_schema();
10
11 my $rs_with_avg = $schema->resultset('CD')->search({}, {
12   '+columns' => { avg_year => $schema->resultset('CD')->get_column('year')->func_rs('avg')->as_query },
13   order_by => 'cdid',
14 });
15
16 for my $in_storage (1, 0) {
17   my $cd = $rs_with_avg->first;
18
19   ok ! $cd->is_column_changed('avg_year'), 'no changes';
20
21   $cd->in_storage($in_storage);
22
23   ok ! $cd->is_column_changed('avg_year'), 'still no changes';
24
25   $cd->set_column( avg_year => 42 );
26   $cd->set_column( avg_year => 69 );
27
28   ok $cd->is_column_changed('avg_year'), 'changed';
29   is $cd->get_column('avg_year'), 69, 'correct value'
30 }
31
32 done_testing;