#!perl -Tw use strict; use warnings; use Test::More tests => 19; BEGIN { use_ok( 'App::HWD' ); } my ($tasks,$work,$tasks_by_id,$errors) = App::HWD::get_tasks_and_work( *DATA ); is_deeply( $errors, [], "No errors" ); FIRST: { my $task = $tasks->[0]; is( $task->name, 'Phase A', 'First task name' ); is( $task->parent, undef, 'First has no parent' ); } SECOND: { my $task = $tasks->[1]; is( $task->name, 'Prep', 'Second task name' ); is( $task->parent->name, 'Phase A', "Second task's parent's name" ); is( $task->parent->parent, undef, 'Second has no grandparent' ); like( ($task->notes)[0], qr/customers.+properly/ ); is( $task->work, 3, "Three work items done" ); } THIRD: { my $task = $tasks->[2]; is( $task->name, 'NLW changes', 'Third name' ); is_deeply( [$task->notes], [], 'No notes' ); is( $task->work, 0, "Three work items done" ); } FOURTH: { my $task = $tasks->[3]; is( $task->name, 'NLW::MissileTracking', 'Fourth name' ); is( scalar $task->notes, 1, 'Only one line of notes' ); like( ($task->notes)[0], qr/YAGNI/, 'First line of notes' ); is( $task->work, 4, "Four work items done" ); } FIFTH: { my $task = $tasks->[4]; is( $task->name, 'NLW::Transmute::Gold2Lead', 'Fifth name' ); is_deeply( [$task->notes], [], 'No notes' ); is( $task->work, 1, "One work item done" ); } __DATA__ -Phase A --Prep (#401) Need to make sure customers are getting handled properly. alester 2006-01-29 ^ 1.5 # Initial sniffing alester 2006-02-05 ^ 3 X --NLW changes # Another comment ---NLW::MissileTracking (3h) This will probably a YAGNI. autarch 2006-02-11 ^ 5 # Comment in the middle of nowhere autarch 2006-02-12 ^ 2 X # Finished autarch 2006-02-13 401 1.5 # I want to track 401 here for some reason autarch 2006-02-14 ^ 3 # Bug fixes autarch 2006-02-15 ^ 3 X # Finished the fixes ---NLW::Transmute::Gold2Lead alester 2006-01-15 ^ 3