1#!perl
2use strict;
3use warnings;
4use Test::More tests => 4;
5
6use Email::Sender;
7use Email::Sender::Transport::Print;
8
9{
10  package CP;
11  sub new    { bless { str => '' } => $_[0] }
12  sub print  { shift->{str} .= join '', @_ }
13  sub printf { shift->{str} .= sprintf shift, @_ }
14  sub isa    { return 1 if $_[1] eq 'IO::Handle' }
15}
16
17my $xport = Email::Sender::Transport::Print->new({ fh => CP->new });
18ok($xport->does('Email::Sender::Transport'));
19isa_ok($xport, 'Email::Sender::Transport::Print');
20
21my $message = <<'END_MESSAGE';
22From: from@test.example.com
23To: to@nowhere.example.net
24Subject: this message is going nowhere fast
25
26Dear Recipient,
27
28  You will never receive this.
29
30--
31sender
32END_MESSAGE
33
34my $want = <<"END_WANT";
35ENVELOPE TO  : rcpt\@nowhere.example.net
36ENVELOPE FROM: sender\@test.example.com
37---------- begin message
38$message---------- end message
39END_WANT
40
41my $result = $xport->send(
42  $message,
43  {
44    to   => [ 'rcpt@nowhere.example.net' ],
45    from => 'sender@test.example.com',
46  },
47);
48
49isa_ok($result, 'Email::Sender::Success');
50is($xport->fh->{str}, $want, 'what we expected got printed');
51