#!/usr/bin/perl -w

use strict;
use Getopt::Std;
use File::Basename;
use Data::Dumper;

use lib '/app/tools/common/lib';
use Common::RSApp;

use lib '/app/tools/metadata/lib';
use Metadata::Validate::Album;
use Validate::Util;
use Metadata::Rule::Album::Sequential;
use Metadata::Rule::Album::Common;
use Metadata::Rule::Album::Unique;

MAIN: {

    my $catalog_id = "AZ21230";

    my $appSingleton = new Common::RSApp( clientID => 14 );

    my $seq = new Metadata::Rule::Album::Sequential();

    $seq->unifying_field("catalog_no");
    $seq->target_field("track_number");
    $seq->allow_duplicates(0);
    $seq->minimum(1);

    printf( "Sequential Track Test: %s\n", $seq->ok("$catalog_id") == 0 ? "passed" : "failed" )
      if ( $seq->is_configured() );

    $seq->unifying_field("catalog_no");
    $seq->target_field("disc_no");
    $seq->allow_duplicates(1);
    $seq->minimum(1);

    printf( "Sequential Disk Test: %s\n", $seq->ok("$catalog_id") == 0 ? "passed" : "failed" )
      if ( $seq->is_configured() );

    my $common = new Metadata::Rule::Album::Common();

    $common->unifying_field("catalog_no");
    $common->target_field("disc_no");

    printf( "Album Title Test: %s\n", $common->ok("$catalog_id") == 0 ? "passed" : "failed" )
      if ( $common->is_configured() );

    my $unique = new Metadata::Rule::Album::Unique();

    $unique->unifying_field("isrc");
    $unique->target_field("disc_no");

    printf( "Album Isrc Test: %s\n", $unique->ok("$catalog_id") == 0 ? "passed" : "failed" )
      if ( $unique->is_configured() );

}
