X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Flib%2FTreeTest.pm;h=a3054cbd522eb73d750ad8cdee463564f282ad7c;hb=c0d76c37162678a26ce56f769aa98e3cf1ae11c1;hp=e77eea1a583cbe4857662765fa6b8aacab4b4382;hpb=609f3762041d091605655b61642f5a70c4e9911b;p=dbsrgits%2FDBIx-Class-Tree.git diff --git a/t/lib/TreeTest.pm b/t/lib/TreeTest.pm index e77eea1..a3054cb 100644 --- a/t/lib/TreeTest.pm +++ b/t/lib/TreeTest.pm @@ -8,7 +8,7 @@ use TreeTest::Schema; our $NODE_COUNT = 80; sub count_tests { - my $count = 13; + my $count = 22; if( TreeTest::Schema::Node->can('position_column') ){ $count ++; } @@ -38,11 +38,11 @@ sub run_tests { ok( ($nodes->find(22)->children->count()==2), 'node 22 has correct number of children' ); ok( ($nodes->find(22)->siblings->count()==3), 'node 22 has correct number of siblings' ); - $nodes->find(22)->attach_child( $nodes->find(3) ); + $nodes->find(22)->add_child( $nodes->find(3) ); ok( ($nodes->find(22)->children->count()==3), 'node 22 has correct number of children' ); ok( ($nodes->find(22)->siblings->count()==2), 'node 22 has correct number of siblings' ); - $nodes->find(22)->attach_sibling( $nodes->find(3) ); + $nodes->find(22)->add_sibling( $nodes->find(3) ); ok( ($nodes->find(22)->children->count()==2), 'node 22 has correct number of children' ); ok( ($nodes->find(22)->siblings->count()==3), 'node 22 has correct number of siblings' ); @@ -52,6 +52,38 @@ sub run_tests { if( TreeTest::Schema::Node->can('position_column') ){ ok( check_positions(scalar $root->children()), 'positions are correct' ); } + + #$nodes->delete; + $schema = TreeTest::Schema->connect(); + $nodes = $schema->resultset('Node'); + $root = $nodes->create({ name=>'root' }); + @parents = ( + 1,1,3,2,3,3,6,6,2,5,3,5,12,1 + ); + foreach my $parent_id (@parents) { + my $node = $nodes->create({ name=>'child' }); + $node->parent( $parent_id ); + } + + ok ($nodes->find(1)->descendents == 14, 'root node has 14 descendents'); + ok ($nodes->find(2)->descendents == 4, 'node 2 has 4 descendents'); + ok ($nodes->find(6)->descendents == 2, 'node 6 has 2 descendents'); + ok ($nodes->find(10)->descendents == 0, 'node 10 has no descendents'); + + $nodes->find(2)->pharaoh_delete; + ok ($nodes->find(1)->descendents == 9, 'root node has 9 descendents after pharaohing node 2'); + + ok ($nodes->find(3)->children == 4, 'node 3 has 4 children'); + $nodes->find(6)->grandmother_delete; + ok ($nodes->find(3)->children == 5, 'node 3 has 5 children after node 6 dies'); + + $nodes->find(3)->replace_with_and_delete($nodes->find(12)); + ok ($nodes->find(12)->children == 5, 'node 12 has 5 children after taking over from node 3'); + ok ($nodes->find(7)->parent->id == 12, 'node 7\'s parent is node 12'); + + + + } sub check_positions {