#!/usr/bin/perl -w
use strict;
use Test::More tests => 6;
use Data::Bind;

my $db_formalize_sig = Data::Bind->sig
    ({ var => '$title' },
     { var => '$subtitle' },
     { var => '$case', named_only => 1 },
     { var => '$justify', named_only => 1 });

#warn Dumper($db_formalize_sig);


is( $db_formalize_sig->is_compatible
      ([\'this is title', \'subtitle'], { case => \'blah'}),
    1 );

is( $db_formalize_sig->is_compatible
      ([\'this is title', \'subtitle'], { justify => \'blah'}),
    1 );

is( $db_formalize_sig->is_compatible([\'this is title'], { justify => \'blah'}),
    0);

$db_formalize_sig = Data::Bind->sig
    ({ var => '$title' },
     { var => '$subtitle', optional => 1 },
     { var => '$case', named_only => 1 },
     { var => '$justify', named_only => 1, required => 1});

is($db_formalize_sig->is_compatible([\'this is title'], { justify => \'blah'}),
   1);

is($db_formalize_sig->is_compatible([], { title => \'title by name', justify => \'blah'}),
   1);

is( $db_formalize_sig->is_compatible([\'this is title'], { case => \'blah'}),
    0);


syntax highlighted by Code2HTML, v. 0.9.1