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

## make sure all repeated fields are processed when 
## one of them have problems. 

use strict;
use warnings;
use Test::More qw( no_plan );
use MARC::Record;

use_ok( 'MARC::Detrans' );
use_ok( 'MARC::Detrans::Rules' );
use_ok( 'MARC::Detrans::Rule' );
use_ok( 'MARC::Detrans::Config' );

my $engine = MARC::Detrans->new( config => 't/testconfig.xml' );

OK: {
    my $r = MARC::Record->new();
    $r->append_fields( 
        MARC::Field->new( '008', ' ' x 35 . 'rus' ),
        MARC::Field->new( '440', ' ', ' ', a => 'a' ),
        MARC::Field->new( '440', ' ', ' ', a => 'b' )
    );
    $r = $engine->convert( $r );
    is( $engine->errors(), 0, 'errors()' );
    is( $r->fields(), 6, 'expected amt of fields' );
}

NOT_OK: {
    my $r = MARC::Record->new();
    $r->append_fields( 
        MARC::Field->new( '008', ' ' x 35 . 'rus' ),
        MARC::Field->new( '440', ' ', ' ', a => 'j' ),
        MARC::Field->new( '440', ' ', ' ', a => 'a' )
    );
    $r = $engine->convert( $r );
    is( $engine->errors(), 1, 'errors()' );
    is( $r->fields(), 5, 'expected amount of fields' );
}