#!/usr/bin/perl

use lib '.';

use strict;
use warnings;

use MIME::Tools;
use MIME::Entity;
use MIME::Parser;

use Mail::Box::Manager;
use Mail::Message::Convert::MailInternet;
use Mail::Message::Convert::MimeEntity;

my $testfile = 'test.msg';
my $testmbox = 'test.mbox';

unlink $testfile if -f $testfile;
unlink $testmbox if -f $testmbox;

open(F, ">$testfile") or die "Can't open $testfile: $!\n";
print F <<EOMSG;
From: foo\@example.com
To: bar\@example.com

Here's a test message where one of the lines starts with an
>From that's unescaped.  What happens to this line when the
message is added to a mailbox?

EOMSG
close(F);

my $mgr = Mail::Box::Manager->new();
die "Could not create new Mail::Box::Manager: $!\n" unless $mgr;

my $mbox = $mgr->open(
                        folder => $testmbox,
                        create => 1,
                        access => 'rw',
        );
die "Could not open $testmbox: $!\n" unless $mbox;
my $parser = new MIME::Parser;
$parser->tmp_to_core(1);
$parser->output_to_core(1);
my $ent = $parser->parse_open($testfile);

warn "ENTITY";
$ent->print;

my $msg = Mail::Box::Mbox::Message->coerce($ent);

warn "PRINT";
$msg->print;

warn "WRITE";
$msg->write;

$mbox->addMessage($msg);                # Add the message...
$msg = Mail::Box::Mbox::Message->coerce($ent);
$mbox->addMessage($msg);                # ... twice
$mbox->close();
