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 ok "Mail::Summary::Tools::Summary";
use ok "Mail::Summary::Tools::Summary::List";
use ok "Mail::Summary::Tools::Summary::Thread";

my $s = Mail::Summary::Tools::Summary->new;

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

is_deeply( [ $s->lists ], [], "no lists yet" );

my $list = Mail::Summary::Tools::Summary::List->new( name => "awesome list" );

isa_ok( $list, "Mail::Summary::Tools::Summary::List" );

can_ok( $s, "add_lists" );

$s->add_lists( $list );

is_deeply( [ $s->lists ], [ $list ], "single list" );

can_ok( $list, "threads" );

is_deeply( [ $list->threads ], [ ], "no threads" );

my $thread = Mail::Summary::Tools::Summary::Thread->new(
	message_id => 'unique@example.com',
	subject    => "Green things in general",
);

isa_ok( $thread, "Mail::Summary::Tools::Summary::Thread" );

can_ok( $list, "add_threads" );

$list->add_threads( $thread );

is_deeply( [ $list->threads ], [ $thread ], "single thread" );

my $yaml = $s->save;

ok( !ref($yaml), "looks like a string" );

my $mid = $thread->message_id;
like( $yaml, qr/message_id\s*:\s*\Q$mid\E/, "YAML has data in it" );