+BEGIN { do "./t/lib/ANFANG.pm" or die ( $@ || $! ) }
+
# vim: filetype=perl
use strict;
-use warnings;
+use warnings;
use Test::More;
-use lib qw(t/lib);
+
use DBICTest;
-use POSIX qw(ceil);
+use POSIX ();
my $schema = DBICTest->init_schema();
"overloaded update 7"
);
+$employee->group_id(2);
+$employee->name('E of the month');
+$employee->update({ employee_id => 666, position => 2 });
+is_deeply(
+ { $employee->get_columns },
+ {
+ employee_id => 666,
+ encoded => undef,
+ group_id => 2,
+ group_id_2 => undef,
+ group_id_3 => undef,
+ name => "E of the month",
+ position => 2
+ },
+ 'combined update() worked correctly'
+);
+is_deeply(
+ { $employee->get_columns },
+ { $employee->get_from_storage->get_columns },
+ 'object matches database state',
+);
+
+#####
# multicol tests begin here
+#####
+
DBICTest::Employee->grouping_column(['group_id_2', 'group_id_3']);
$employees->delete();
foreach my $group_id_2 (1..4) {
$to_pos++;
$to_group = ($to_group % 3) + 1;
$to_group_2_base++;
- $to_group_2 = (ceil($to_group_2_base/3.0) %3) +1
+ $to_group_2 = (
+ POSIX::ceil( $to_group_2_base / 3.0 ) % 3
+ ) + 1;
}
}
foreach my $group_id_2 (1..4) {
$employee->update;
ok(
check_rs($employees->search_rs({group_id_2=>4, group_id_3=>1}))
- && check_rs($employees->search_rs({group_id_2=>1, group_id_3=>1})),
- "overloaded multicol update 1"
+ && check_rs($employees->search_rs({group_id_2=>1, group_id_3=>1})),
+ "overloaded multicol update 1"
);
$employee = $employees->search({group_id_2=>4, group_id_3=>1})->first;
$employee->update({group_id_2=>2});
ok( check_rs($employees->search_rs({group_id_2=>4, group_id_3=>1}))
- && check_rs($employees->search_rs({group_id_2=>2, group_id_3=>1})),
- "overloaded multicol update 2"
+ && check_rs($employees->search_rs({group_id_2=>2, group_id_3=>1})),
+ "overloaded multicol update 2"
);
$employee = $employees->search({group_id_2=>3, group_id_3=>1})->first;
$employee->update();
ok( check_rs($employees->search_rs({group_id_2=>3, group_id_3=>1}))
&& check_rs($employees->search_rs({group_id_2=>1, group_id_3=>3})),
- "overloaded multicol update 3"
+ "overloaded multicol update 3"
);
$employee = $employees->search({group_id_2=>3, group_id_3=>1})->first;
$employee->update({group_id_2=>2, group_id_3=>3});
ok( check_rs($employees->search_rs({group_id_2=>3, group_id_3=>1}))
- && check_rs($employees->search_rs({group_id_2=>2, group_id_3=>3})),
- "overloaded multicol update 4"
+ && check_rs($employees->search_rs({group_id_2=>2, group_id_3=>3})),
+ "overloaded multicol update 4"
);
$employee = $employees->search({group_id_2=>3, group_id_3=>2})->first;
$employee->update({group_id_2=>2, group_id_3=>4, position=>2});
ok( check_rs($employees->search_rs({group_id_2=>3, group_id_3=>2}))
- && check_rs($employees->search_rs({group_id_2=>2, group_id_3=>4})),
- "overloaded multicol update 5"
+ && check_rs($employees->search_rs({group_id_2=>2, group_id_3=>4})),
+ "overloaded multicol update 5"
);
sub hammer_rs {