#!/usr/bin/perl
use strict;
use warnings;
use Test::More 'no_plan';
use ok "Mail::Summary::Tools::Summary::Thread";
my $now = time;
my $early = $now - 100;
my $late = $now + 100;
my $earlier = $early - 100;
my $later = $late + 100;
{
my $thread = Mail::Summary::Tools::Summary::Thread->new(
message_id => 'foo@bar.com',
subject => 'Moose',
extra => {
date_from => $early,
date_to => $late,
},
);
my $thread_new = Mail::Summary::Tools::Summary::Thread->new(
message_id => 'foo@bar.com',
subject => 'Moose',
extra => {
date_from => $earlier,
date_to => $later,
},
);
$thread->merge( $thread_new );
is( $thread->extra->{date_from}, $earlier, "date_from" );
is( $thread->extra->{date_to}, $later, "date_to" );
ok( !$thread->extra->{out_of_date}, "not marked as out of date because no summary" );
}
{
my $thread = Mail::Summary::Tools::Summary::Thread->new(
message_id => 'foo@bar.com',
subject => 'Moose',
summary => 'oink',
extra => {
date_from => $early,
date_to => $late,
},
);
my $thread_new = Mail::Summary::Tools::Summary::Thread->new(
message_id => 'foo@bar.com',
subject => 'Moose',
extra => {
date_from => $early,
date_to => $late,
},
);
$thread->merge( $thread_new );
is( $thread->extra->{date_from}, $early, "date_from" );
is( $thread->extra->{date_to}, $late, "date_to" );
ok( !$thread->extra->{out_of_date}, "not marked as out of date because dates didn't change" );
is( $thread->summary, "oink", "summary" );
}
{
my $thread = Mail::Summary::Tools::Summary::Thread->new(
message_id => 'foo@bar.com',
subject => 'Moose',
summary => 'oink',
extra => {
date_from => $early,
date_to => $late,
},
);
my $thread_new = Mail::Summary::Tools::Summary::Thread->new(
message_id => 'foo@bar.com',
subject => 'Moose',
extra => {
date_from => $earlier,
date_to => $later,
},
);
$thread->merge( $thread_new );
is( $thread->extra->{date_from}, $earlier, "date_from" );
is( $thread->extra->{date_to}, $later, "date_to" );
ok( $thread->extra->{out_of_date}, "marked as out of date" );
is( $thread->summary, "oink", "summary" );
}
{
my $thread = Mail::Summary::Tools::Summary::Thread->new(
message_id => 'foo@bar.com',
subject => 'Moose',
hidden => 1,
extra => {
date_from => $early,
date_to => $late,
},
);
my $thread_new = Mail::Summary::Tools::Summary::Thread->new(
message_id => 'foo@bar.com',
subject => 'Moose',
extra => {
date_from => $earlier,
date_to => $later,
},
);
$thread->merge( $thread_new );
is( $thread->extra->{date_from}, $earlier, "date_from" );
is( $thread->extra->{date_to}, $later, "date_to" );
ok( $thread->extra->{out_of_date}, "marked as out of date" );
ok( $thread->hidden, "hidden" );
}
{
my $thread = Mail::Summary::Tools::Summary::Thread->new(
message_id => 'foo@bar.com',
subject => 'Moose',
extra => {
date_from => $earlier,
date_to => $later,
},
);
my $thread_new = Mail::Summary::Tools::Summary::Thread->new(
message_id => 'foo@bar.com',
subject => 'Moose',
summary => 'oink',
extra => {
date_from => $early,
date_to => $late,
},
);
$thread->merge( $thread_new );
is( $thread->extra->{date_from}, $earlier, "date_from" );
is( $thread->extra->{date_to}, $later, "date_to" );
ok( $thread->extra->{out_of_date}, "marked as out of date" );
is( $thread->summary, "oink", "summary" );
}
{
my $thread = Mail::Summary::Tools::Summary::Thread->new(
message_id => 'foo@bar.com',
subject => 'Moose',
summary => 'oink',
extra => {
date_from => $earlier,
date_to => $later,
},
);
my $thread_new = Mail::Summary::Tools::Summary::Thread->new(
message_id => 'foo@bar.com',
subject => 'Moose',
extra => {
date_from => $early,
date_to => $late,
},
);
$thread->merge( $thread_new );
is( $thread->extra->{date_from}, $earlier, "date_from" );
is( $thread->extra->{date_to}, $later, "date_to" );
ok( !$thread->extra->{out_of_date}, "not marked as out of date" );
is( $thread->summary, "oink", "summary" );
}
{
my $thread = Mail::Summary::Tools::Summary::Thread->new(
message_id => 'foo@bar.com',
subject => 'Moose',
extra => {
date_from => $early,
date_to => $late,
},
);
my $thread_new = Mail::Summary::Tools::Summary::Thread->new(
message_id => 'foo@bar.com',
subject => 'Moose',
summary => 'oink',
extra => {
date_from => $earlier,
date_to => $later,
},
);
$thread->merge( $thread_new );
is( $thread->extra->{date_from}, $earlier, "date_from" );
is( $thread->extra->{date_to}, $later, "date_to" );
ok( !$thread->extra->{out_of_date}, "not marked as out of date because summary was new" );
is( $thread->summary, "oink", "summary" );
}