diff options
Diffstat (limited to 't')
-rw-r--r-- | t/07-inherit.t | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/t/07-inherit.t b/t/07-inherit.t new file mode 100644 index 0000000..2974e6f --- /dev/null +++ b/t/07-inherit.t @@ -0,0 +1,67 @@ +#!perl +package Base;{ +use strict; +use warnings; +use Tree::Template::Declare builder => '+DAG_Node'; + +sub doc { + my ($self)=@_; + tree { + node { + name 'doc'; + $self->head(); + $self->body(); + } + } +} + +sub head { + node { name 'title' }; +} + +sub body { + node { + name 'content'; + $_[0]->content(); + } +} + +sub content { + node { name 'stuff' } +} + +} + +package Derived;{ +use strict; +use warnings; +use Tree::Template::Declare builder => '+DAG_Node'; +use base 'Base'; + +sub head { + node { name 'whatever' }; + $_[0]->SUPER::head(); +} + +sub content { + node { name 'something' } +} + +} + +package main; +use Test::Most tests=>2,'die'; +use strict; +use warnings; + +my $base_tree=Base->doc(); + +is_deeply($base_tree->tree_to_lol(), + [['title'],[['stuff'],'content'],'doc'], + 'base tree'); + +my $deriv_tree=Derived->doc(); + +is_deeply($deriv_tree->tree_to_lol(), + [['whatever'],['title'],[['something'],'content'],'doc'], + 'derived tree'); |