#!/usr/bin/perl use strict; use warnings; use Test::More qw(no_plan); my $pkg; BEGIN { $pkg = q{Email::Moose}; use_ok $pkg; can_ok $pkg, qw(new raw_body); } Object_initiation: { Scalar: { open(my $fh, q{t/testdata/initial}) or die q{Could not open file}; my $scalar = do { local $/; <$fh> }; close $fh or die q{Could not close file}; ok( my $obj = $pkg->new(raw_body => $scalar), q{New $pkg object (Scalar)} ); isa_ok $obj, $pkg; isa_ok $obj->raw_body(), q{IO::String}; } ScalarRef: { open(my $fh, q{t/testdata/initial}) or die q{Could not open file}; my $scalar = do { local $/; <$fh> }; close $fh or die q{Could not close file}; ok( my $obj = $pkg->new(raw_body => \$scalar), q{New $pkg object (ScalarRef)} ); isa_ok $obj, $pkg; isa_ok $obj->raw_body(), q{IO::String}; } FileHandle: { open(my $fh, q{t/testdata/initial}) or die q{Could not open file}; ok( my $obj = $pkg->new(raw_body => $fh), q{New $pkg object (FileHandle)} ); isa_ok $obj, $pkg; isa_ok $obj->raw_body(), q{IO::File}; close $fh or die q{Could not close file}; } } Object_as_string: { open(my $fh, q{t/testdata/initial}) or die q{Could not open file}; my $scalar = do { local $/; <$fh> }; close $fh or die q{Could not close file}; ok( my $obj = $pkg->new(raw_body => $scalar), q{New $pkg object (Scalar)} ); isa_ok $obj, $pkg; is $obj->as_string, qq{Initial test data\n}, q{as_string}; }