X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Frun%2F26positioned.tl;h=720b173bd2f7aab26a8d9aa4444d6b2390fc6912;hb=5faa95affd5bb016d0fa81f7f99411ce4db5ff08;hp=ad6a91948b8e73e3dfb86d8635b224e7bafc6928;hpb=133dd22a652e4745443b7c45f7d40af5877aaab5;p=dbsrgits%2FDBIx-Class-Historic.git diff --git a/t/run/26positioned.tl b/t/run/26positioned.tl index ad6a919..720b173 100644 --- a/t/run/26positioned.tl +++ b/t/run/26positioned.tl @@ -2,48 +2,64 @@ sub run_tests { - plan tests => 96; + plan tests => 66; my $schema = shift; my $employees = $schema->resultset('Employee::Positioned'); + $employees->delete(); - if ($employees->result_class->can('position_column')) { - - $employees->delete(); - foreach (1..5) { - $employees->create({ name=>'temp' }); - } + foreach (1..5) { + $employees->create({ name=>'temp' }); + } + $employees = $employees->search(undef,{order_by=>'position'}); + ok( check_positions($employees), "$class: intial positions" ); - $employees = $employees->search(undef,{order_by=>'position'}); - ok( check_positions($employees), "$class: intial positions" ); + my $employee; - my $employee; + foreach my $position (1..$employees->count()) { - foreach my $position (1..$employees->count()) { + $employee = $employees->find({ position=>$position }); + $employee->move_previous(); + ok( check_positions($employees), "$class: move_previous( $position )" ); - $employee = $employees->find({ position=>$position }); - $employee->move_previous(); - ok( check_positions($employees), "$class: move_previous( $position )" ); + $employee = $employees->find({ position=>$position }); + $employee->move_next(); + ok( check_positions($employees), "$class: move_next( $position )" ); - $employee = $employees->find({ position=>$position }); - $employee->move_next(); - ok( check_positions($employees), "$class: move_next( $position )" ); + $employee = $employees->find({ position=>$position }); + $employee->move_first(); + ok( check_positions($employees), "$class: move_first( $position )" ); - $employee = $employees->find({ position=>$position }); - $employee->move_first(); - ok( check_positions($employees), "$class: move_first( $position )" ); + $employee = $employees->find({ position=>$position }); + $employee->move_last(); + ok( check_positions($employees), "$class: move_last( $position )" ); + foreach my $to_position (1..$employees->count()) { $employee = $employees->find({ position=>$position }); - $employee->move_last(); - ok( check_positions($employees), "$class: move_last( $position )" ); - - foreach my $to_position (1..$employees->count()) { - $employee = $employees->find({ position=>$position }); - $employee->move_to($to_position); - ok( check_positions($employees), "$class: move_to( $position => $to_position )" ); - } + $employee->move_to($to_position); + ok( check_positions($employees), "$class: move_to( $position => $to_position )" ); + } + $employee = $employees->find({ position=>$position }); + if ($position==1) { + ok( !$employee->previous_sibling(), 'no previous sibling' ); + ok( $employee->next_sibling(), 'next sibling' ); + ok( !$employee->first_sibling(), 'no first sibling' ); + ok( $employee->last_sibling(), 'last sibling' ); + } + elsif ($position==$employees->count()) { + ok( $employee->previous_sibling(), 'previous sibling' ); + ok( !$employee->next_sibling(), 'no next sibling' ); + ok( $employee->first_sibling(), 'first sibling' ); + ok( !$employee->last_sibling(), 'no last sibling' ); } + else { + ok( $employee->previous_sibling(), 'previous sibling' ); + ok( $employee->next_sibling(), 'next sibling' ); + ok( $employee->first_sibling(), 'first sibling' ); + ok( $employee->last_sibling(), 'last sibling' ); + } + } }