diff options
Diffstat (limited to 't/lib/Test')
-rw-r--r-- | t/lib/Test/Sietima/MailStore.pm | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/t/lib/Test/Sietima/MailStore.pm b/t/lib/Test/Sietima/MailStore.pm index 60054c3..2925fd3 100644 --- a/t/lib/Test/Sietima/MailStore.pm +++ b/t/lib/Test/Sietima/MailStore.pm @@ -1,7 +1,8 @@ package Test::Sietima::MailStore; use Moo; use Sietima::Policy; -use List::AllUtils qw(all); +use List::AllUtils qw(all first_index); +use Digest::SHA1 qw(sha1_hex); use namespace::clean; with 'Sietima::MailStore'; @@ -14,10 +15,11 @@ has _mails => ( sub clear { shift->_mails([]) } sub store ($self,$mail,@tags) { - my $id = time(); + my $str = $mail->as_string; + my $id = sha1_hex($str); push $self->_mails->@*, { id => $id, - mail => $mail->as_string, + mail => $str, tags => { map {$_ => 1;} @tags, }, }; return $id; @@ -45,4 +47,11 @@ sub retrieve_by_id ($self,$id) { return; } +sub remove($self,$id) { + my $idx = first_index { $_->{id} eq $id } $self->_mails->@*; + return unless defined $idx; + splice $self->_mails->@*,$idx,1; + return; +} + 1; |