The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!perl -Tw

use Test::More tests => 6; 

use strict;

## make sure that MARC::Field::subfield() is aware of the context 
## in which it is called. In list context it returns *all* subfields
## and in scalar just the first.

use_ok( 'MARC::Field' );
my $field = MARC::Field->new( '245', '', '', a=>'foo', b=>'bar', a=>'baz' );
isa_ok( $field, 'MARC::Field' );

my $subfieldA = $field->subfield( 'a' );
is( $subfieldA, 'foo', 'subfield() in scalar context' );

my @subfieldsA = $field->subfield( 'a' );
is( $subfieldsA[0], 'foo', 'subfield() in list context 1' );
is( $subfieldsA[1], 'baz', 'subfield() in list context 2' );

## should not be able to call subfield on field < 010
$field = MARC::Field->new( '000', 'foobar' );
eval { $field->subfield( 'a' ) };
like( 
    $@, qr/just tags below 010/, 
    'subfield cannot be called on fields < 010' 
);