The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl

use strict;
use warnings;

use Test::More 'no_plan';

use FindBin qw/$Bin/;
use File::Spec;

use ok "Mail::Summary::Tools::Summary";

my $file = File::Spec->catfile( $Bin, "data", "summary.yaml" );

my $summary = Mail::Summary::Tools::Summary->load( $file, thread => { default_archive => "moose" } );

isa_ok( $summary, "Mail::Summary::Tools::Summary" );

my @lists = $summary->lists;
is( scalar(@lists), 1, "one list" );

my @threads = $lists[0]->threads;
is( scalar(@threads), 1, "one thread" );

my $thread = $threads[0];

is( $thread->subject, "The Message Subject", "thread subject" );
like( $thread->summary, qr/cheese/, "the summary is correct" );
like( $thread->message_id, qr/.+\@[\w\.]+/, "message id looks ok" );

ok( $thread->extra, "extra keys were found" );
is_deeply( [ keys %{ $thread->extra } ], [ "posters" ], "posters in extra" );
is( ref( $thread->extra->{posters} ), "ARRAY", "posters is an array" );

is( $thread->default_archive, "moose", "default options provided to constructors" );

ok( $summary->extra, "summary contains extra data" );