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