X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F87ordered.t;h=219c942a690c6a79b9fae72b1a74b640af1d97b4;hb=f064a2abb15858bb39a141ad50391d4191988d2c;hp=63651f62c90b8072acf7ed982d8c6cbb91778e31;hpb=d146b340450aaf82f53b6e781606139c51d79f84;p=dbsrgits%2FDBIx-Class.git diff --git a/t/87ordered.t b/t/87ordered.t index 63651f6..219c942 100644 --- a/t/87ordered.t +++ b/t/87ordered.t @@ -1,12 +1,14 @@ +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(); @@ -96,7 +98,32 @@ ok( "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) { @@ -131,7 +158,9 @@ $to_pos = undef; $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) { @@ -156,15 +185,15 @@ $employee->group_id_2(1); $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; @@ -173,21 +202,21 @@ $employee->group_id_3(3); $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 {