#!/usr/bin/perl use strict; use warnings; use Test::More qw(no_plan); my $pkg; BEGIN { $pkg = q{Email::Moose::Header}; use_ok $pkg; can_ok $pkg, qw(new field_name value); } Object_initiation: { Scalar: { ok( my $header = $pkg->new(qq{Header: Value\r\n}), q{Object with scalar} ); isa_ok( $header, $pkg ); is $header->field_name(), q{Header}, q{field_name}; is $header->value(), q{Value}, q{value}; } ScalarRef: { ok( my $header = $pkg->new(\qq{Header: Value\r\n}), q{Object with scalarref} ); isa_ok( $header, $pkg ); is $header->field_name(), q{Header}, q{field_name}; is $header->value(), q{Value}, q{value}; } List: { ok( my $header = $pkg->new(qw(Header Value)), q{Object with list} ); isa_ok( $header, $pkg ); is $header->field_name(), q{Header}, q{field_name}; is $header->value(), q{Value}, q{value}; } ArrayRef: { ok( my $header = $pkg->new([qw(Header Value)]), q{Object with arrayref} ); isa_ok( $header, $pkg ); is $header->field_name(), q{Header}, q{field_name}; is $header->value(), q{Value}, q{value}; } HashRef: { ok( my $header = $pkg->new({field_name => q{Header}, value => q{Value}}), q{Object with hashref} ); isa_ok( $header, $pkg ); is $header->field_name(), q{Header}, q{field_name}; is $header->value(), q{Value}, q{value}; } Empty: { ok( my $header = $pkg->new(), q{Object with empty list} ); isa_ok( $header, $pkg ); is $header->field_name(), undef, q{field_name}; is $header->value(), undef, q{value}; is $header->field_name(q{Header}), q{Header}, q{field_name}; is $header->value(q{Value}), q{Value}, q{value}; is $header->field_name(), q{Header}, q{field_name}; is $header->value(), q{Value}, q{value}; } } Object_as_string: { Basic: { ok( my $header = $pkg->new(q{Header}, q{Value}), q{Object with list} ); isa_ok( $header, $pkg ); is $header->as_string(), qq{Header: Value\r\n}, q{header as string}; } }