The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use warnings;

use Test::More tests => 3;

BEGIN { use_ok('UML::Sequence::PerlOOSeq'); }

my $out_rec     = UML::Sequence::PerlOOSeq
                    ->grab_outline_text(qw(t/roller.methods t/roller));

shift @$out_rec;  # some Perl's make the first line main, others say (eval)
                  # to avoid a false error, discard the first line

chomp(my @correct_out = <DATA>);

unless (is_deeply($out_rec, \@correct_out, "perl OOCallSeq trace")) {
    local $" = "\n";
    diag("unexpected trace output\n@$out_rec\n");
}

my $methods     = UML::Sequence::PerlOOSeq->grab_methods($out_rec);

my @correct_methods = (
"DiePair::new",
"Die::new",
"DiePair::roll",
"Die::roll",
"DiePair::total",
"DiePair::doubles",
);

unless (is_deeply($methods, \@correct_methods, "method list")) {
    local $" = "\n";
    diag("unexpected method list @$methods\n");
}

unlink "tmon.out";

__DATA__
  diePair1:DiePair::new
    die1:Die::new
    die2:Die::new
  diePair1:DiePair::roll
    die1:Die::roll
    die2:Die::roll
  diePair1:DiePair::total
  diePair1:DiePair::doubles