X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Flib%2FTreeTest.pm;h=7af89b30803d690138af2d9c2753ff679058b359;hb=3c94ae56c4e2a8553d44944a111f479b0a87ff7d;hp=e77eea1a583cbe4857662765fa6b8aacab4b4382;hpb=eccca9212017ca7aae985dcf16c8de73234cac90;p=dbsrgits%2FDBIx-Class-Tree.git diff --git a/t/lib/TreeTest.pm b/t/lib/TreeTest.pm index e77eea1..7af89b3 100644 --- a/t/lib/TreeTest.pm +++ b/t/lib/TreeTest.pm @@ -3,12 +3,13 @@ use strict; use warnings; use Test::More; +use Test::Exception; use TreeTest::Schema; our $NODE_COUNT = 80; sub count_tests { - my $count = 13; + my $count = 17; if( TreeTest::Schema::Node->can('position_column') ){ $count ++; } @@ -27,6 +28,7 @@ sub run_tests { my $node = $nodes->create({ name=>'child' }); $node->parent( $parent_id ); } + ok( ($nodes->count()==81), 'correct number of nodes in random tree' ); ok( ($nodes->find(3)->children->count()==7), 'node 3 has correct number of children' ); ok( ($nodes->find(22)->children->count()==3), 'node 22 has correct number of children' ); @@ -49,9 +51,18 @@ sub run_tests { ok( ($nodes->find(22)->parents->count()==1), 'node 22 has correct number of parents' ); ok( (($nodes->find(22)->parents->all())[0]->id()==$nodes->find(22)->parent->id()), 'node 22 parent matches parents' ); + my @ancestors = $nodes->find(44)->ancestors(); + ok( scalar(@ancestors)==8, 'node 44 has correct number of ancestors' ); + ok( $ancestors[0]->id == $nodes->find(44)->parent_id, 'node 44\'s first ancestor is its parent' ); + ok( $ancestors[-1]->name eq 'root', 'node 44\'s last ancestor is root' ); + if( TreeTest::Schema::Node->can('position_column') ){ ok( check_positions(scalar $root->children()), 'positions are correct' ); } + + lives_and ( sub { + is( $nodes->find(3)->copy({name => 'special'})->name,'special','copy test'); + }, 'copy does not throw'); } sub check_positions {