Lines 628-651
subtest 'store() tests' => sub {
Link Here
|
628 |
|
628 |
|
629 |
plan tests => 16; |
629 |
plan tests => 16; |
630 |
|
630 |
|
631 |
# Using Koha::ApiKey to test Koha::Object>-store |
631 |
# Using Koha::Cash::Register to test Koha::Object>-store |
632 |
# Simple object with foreign keys and unique key |
632 |
# Simple object with foreign keys and unique key |
633 |
|
633 |
|
634 |
$schema->storage->txn_begin; |
634 |
$schema->storage->txn_begin; |
635 |
|
635 |
|
636 |
# Create a patron to make sure its ID doesn't exist on the DB |
636 |
# Create a library to make sure its ID doesn't exist on the DB |
637 |
my $patron = $builder->build_object({ class => 'Koha::Patrons' }); |
637 |
my $library = $builder->build_object({ class => 'Koha::Libraries' }); |
638 |
my $patron_id = $patron->id; |
638 |
my $branchcode = $library->branchcode; |
639 |
$patron->delete; |
639 |
$library->delete; |
640 |
|
640 |
|
641 |
my $api_key = Koha::ApiKey->new({ patron_id => $patron_id, secret => 'a secret', description => 'a description' }); |
641 |
my $cash_register = Koha::Cash::Register->new( |
|
|
642 |
{ |
643 |
branch => $library->branchcode, |
644 |
name => 'a cash register', |
645 |
description => 'a description', |
646 |
} |
647 |
); |
642 |
|
648 |
|
643 |
my $dbh = $schema->storage->dbh; |
649 |
my $dbh = $schema->storage->dbh; |
644 |
{ |
650 |
{ |
645 |
local *STDERR; |
651 |
local *STDERR; |
646 |
open STDERR, '>', '/dev/null'; |
652 |
open STDERR, '>', '/dev/null'; |
647 |
throws_ok |
653 |
throws_ok |
648 |
{ $api_key->store } |
654 |
{ $cash_register->store } |
649 |
'Koha::Exceptions::Object::FKConstraint', |
655 |
'Koha::Exceptions::Object::FKConstraint', |
650 |
'Exception is thrown correctly'; |
656 |
'Exception is thrown correctly'; |
651 |
is( |
657 |
is( |
Lines 655-675
subtest 'store() tests' => sub {
Link Here
|
655 |
); |
661 |
); |
656 |
is( |
662 |
is( |
657 |
$@->broken_fk, |
663 |
$@->broken_fk, |
658 |
'patron_id', |
664 |
'branch', |
659 |
'Exception field is correct' |
665 |
'Exception field is correct' |
660 |
); |
666 |
); |
661 |
|
667 |
|
662 |
$patron = $builder->build_object({ class => 'Koha::Patrons' }); |
668 |
$cash_register = $builder->build_object({ class => 'Koha::Cash::Registers' }); |
663 |
$api_key = $builder->build_object({ class => 'Koha::ApiKeys' }); |
|
|
664 |
|
669 |
|
665 |
my $new_api_key = Koha::ApiKey->new({ |
670 |
my $new_cash_register = Koha::Cash::Register->new( |
666 |
patron_id => $patron_id, |
671 |
{ |
667 |
secret => $api_key->secret, |
672 |
branch => $cash_register->branch, |
668 |
description => 'a description', |
673 |
name => $cash_register->name, |
669 |
}); |
674 |
description => 'a description', |
|
|
675 |
} |
676 |
); |
670 |
|
677 |
|
671 |
throws_ok |
678 |
throws_ok |
672 |
{ $new_api_key->store } |
679 |
{ $new_cash_register->store } |
673 |
'Koha::Exceptions::Object::DuplicateID', |
680 |
'Koha::Exceptions::Object::DuplicateID', |
674 |
'Exception is thrown correctly'; |
681 |
'Exception is thrown correctly'; |
675 |
|
682 |
|
Lines 681-698
subtest 'store() tests' => sub {
Link Here
|
681 |
|
688 |
|
682 |
like( |
689 |
like( |
683 |
$@->duplicate_id, |
690 |
$@->duplicate_id, |
684 |
qr/(api_keys\.)?secret/, |
691 |
qr/(cash_register\.)?name/, |
685 |
'Exception field is correct (note that MySQL 8 is displaying the tablename)' |
692 |
'Exception field is correct (note that MySQL 8 is displaying the tablename)' |
686 |
); |
693 |
); |
687 |
close STDERR; |
694 |
close STDERR; |
688 |
} |
695 |
} |
689 |
|
696 |
|
690 |
# Successful test |
697 |
# Successful test |
691 |
$api_key->set({ secret => 'Manuel' }); |
698 |
$cash_register->set({ name => 'Manuel' }); |
692 |
my $ret = $api_key->store; |
699 |
my $ret = $cash_register->store; |
693 |
is( ref($ret), 'Koha::ApiKey', 'store() returns the object on success' ); |
700 |
is( ref($ret), 'Koha::Cash::Register', 'store() returns the object on success' ); |
694 |
|
701 |
|
695 |
my $library = $builder->build_object( { class => 'Koha::Libraries' } ); |
702 |
$library = $builder->build_object( { class => 'Koha::Libraries' } ); |
696 |
my $patron_category = $builder->build_object( |
703 |
my $patron_category = $builder->build_object( |
697 |
{ |
704 |
{ |
698 |
class => 'Koha::Patron::Categories', |
705 |
class => 'Koha::Patron::Categories', |
Lines 700-706
subtest 'store() tests' => sub {
Link Here
|
700 |
} |
707 |
} |
701 |
); |
708 |
); |
702 |
|
709 |
|
703 |
$patron = eval { |
710 |
my $patron = eval { |
704 |
Koha::Patron->new( |
711 |
Koha::Patron->new( |
705 |
{ |
712 |
{ |
706 |
categorycode => $patron_category->categorycode, |
713 |
categorycode => $patron_category->categorycode, |
707 |
- |
|
|