View | Details | Raw Unified | Return to bug 22001
Collapse All | Expand All

(-)a/t/db_dependent/Koha/Object.t (-49 / +46 lines)
Lines 610-659 subtest 'store() tests' => sub { Link Here
610
610
611
    my $api_key = Koha::ApiKey->new({ patron_id => $patron_id, secret => 'a secret', description => 'a description' });
611
    my $api_key = Koha::ApiKey->new({ patron_id => $patron_id, secret => 'a secret', description => 'a description' });
612
612
613
    my $print_error = $schema->storage->dbh->{PrintError};
613
    my $dbh = $schema->storage->dbh;
614
    $schema->storage->dbh->{PrintError} = 0;
614
    {
615
    throws_ok
615
        local $dbh->{PrintError} = 0;
616
        { $api_key->store }
616
        local $dbh->{RaiseError} = 0;
617
        'Koha::Exceptions::Object::FKConstraint',
617
        throws_ok
618
        'Exception is thrown correctly';
618
            { $api_key->store }
619
    is(
619
            'Koha::Exceptions::Object::FKConstraint',
620
        $@->message,
620
            'Exception is thrown correctly';
621
        "Broken FK constraint",
621
        is(
622
        'Exception message is correct'
622
            $@->message,
623
    );
623
            "Broken FK constraint",
624
    is(
624
            'Exception message is correct'
625
        $@->broken_fk,
625
        );
626
        'patron_id',
626
        is(
627
        'Exception field is correct'
627
            $@->broken_fk,
628
    );
628
            'patron_id',
629
629
            'Exception field is correct'
630
    $patron = $builder->build_object({ class => 'Koha::Patrons' });
630
        );
631
    $api_key = $builder->build_object({ class => 'Koha::ApiKeys' });
631
632
632
        $patron = $builder->build_object({ class => 'Koha::Patrons' });
633
    my $new_api_key = Koha::ApiKey->new({
633
        $api_key = $builder->build_object({ class => 'Koha::ApiKeys' });
634
        patron_id => $patron_id,
634
635
        secret => $api_key->secret,
635
        my $new_api_key = Koha::ApiKey->new({
636
        description => 'a description',
636
            patron_id => $patron_id,
637
    });
637
            secret => $api_key->secret,
638
638
            description => 'a description',
639
    throws_ok
639
        });
640
        { $new_api_key->store }
641
        'Koha::Exceptions::Object::DuplicateID',
642
        'Exception is thrown correctly';
643
644
    is(
645
        $@->message,
646
        'Duplicate ID',
647
        'Exception message is correct'
648
    );
649
650
    like(
651
       $@->duplicate_id,
652
       qr/(api_keys\.)?secret/,
653
       'Exception field is correct (note that MySQL 8 is displaying the tablename)'
654
    );
655
640
656
    $schema->storage->dbh->{PrintError} = $print_error;
641
        throws_ok
642
            { $new_api_key->store }
643
            'Koha::Exceptions::Object::DuplicateID',
644
            'Exception is thrown correctly';
645
646
        is(
647
            $@->message,
648
            'Duplicate ID',
649
            'Exception message is correct'
650
        );
651
652
        like(
653
           $@->duplicate_id,
654
           qr/(api_keys\.)?secret/,
655
           'Exception field is correct (note that MySQL 8 is displaying the tablename)'
656
        );
657
    }
657
658
658
    # Successful test
659
    # Successful test
659
    $api_key->set({ secret => 'Manuel' });
660
    $api_key->set({ secret => 'Manuel' });
Lines 705-722 subtest 'store() tests' => sub { Link Here
705
706
706
        my $patron = $builder->build_object({ class => 'Koha::Patrons' });
707
        my $patron = $builder->build_object({ class => 'Koha::Patrons' });
707
708
708
        my $print_error = $schema->storage->dbh->{PrintError};
709
        $schema->storage->dbh->{PrintError} = 0;
710
711
        try {
709
        try {
710
            local $schema->storage->dbh->{RaiseError} = 0;
711
            local $schema->storage->dbh->{PrintError} = 0;
712
            $patron->lastseen('wrong_value')->store;
712
            $patron->lastseen('wrong_value')->store;
713
        } catch {
713
        } catch {
714
            ok( $_->isa('Koha::Exceptions::Object::BadValue'), 'Exception thrown correctly' );
714
            ok( $_->isa('Koha::Exceptions::Object::BadValue'), 'Exception thrown correctly' );
715
            like( $_->property, qr/(borrowers\.)?lastseen/, 'Column should be the expected one' ); # The table name is not always displayed, it depends on the DBMS version
715
            like( $_->property, qr/(borrowers\.)?lastseen/, 'Column should be the expected one' ); # The table name is not always displayed, it depends on the DBMS version
716
            is( $_->value, 'wrong_value', 'Value should be the expected one' );
716
            is( $_->value, 'wrong_value', 'Value should be the expected one' );
717
        };
717
        };
718
719
        $schema->storage->dbh->{PrintError} = $print_error;
720
    };
718
    };
721
719
722
    $schema->storage->txn_rollback;
720
    $schema->storage->txn_rollback;
723
- 

Return to bug 22001