package KohaTest::Members::DebarMember;
use base qw( KohaTest::Members );

use strict;
use warnings;

use Test::More;

use C4::Members;
sub testing_class { 'C4::Members' };


sub simple_usage : Test( 6 ) {
    my $self = shift;

    ok( $self->{'memberid'}, 'we have a valid memberid to test with' );

    my $details = C4::Members::GetMemberDetails( $self->{'memberid'} );
    ok(     exists $details->{'flags'},                  'member details has a "flags" attribute');
    isa_ok( $details->{'flags'},                 'HASH', 'the "flags" attribute is a hashref');
    ok(     ! $details->{'flags'}->{'DBARRED'},          'this member is NOT debarred' );

    # Now, let's debar this member and see what happens
    my $success = C4::Members::DebarMember( $self->{'memberid'}, '2099-12-31' );

    ok( $success, 'we were able to debar the member' );
    
    $details = C4::Members::GetMemberDetails( $self->{'memberid'} );
    ok( $details->{'flags'}->{'DBARRED'},         'this member is debarred now' )
      or diag( Data::Dumper->Dump( [ $details->{'flags'} ], [ 'flags' ] ) );
}

sub incorrect_usage : Test( 2 ) {
    my $self = shift;

    my $result = C4::Members::DebarMember();
    ok( ! defined $result, 'DebarMember returns undef when passed no parameters' );

    $result = C4::Members::DebarMember( 'this is not a borrowernumber' );
    ok( ! defined $result, 'DebarMember returns undef when not passed a numeric argument' );

}

1;
