|
Lines 2-8
Link Here
|
| 2 |
|
2 |
|
| 3 |
use Modern::Perl; |
3 |
use Modern::Perl; |
| 4 |
|
4 |
|
| 5 |
use Test::More tests => 88; |
5 |
use Test::More tests => 101; |
| 6 |
use Test::MockModule; |
6 |
use Test::MockModule; |
| 7 |
use Test::Warn; |
7 |
use Test::Warn; |
| 8 |
|
8 |
|
|
Lines 11-19
use Koha::DateUtils;
Link Here
|
| 11 |
use DateTime::Duration; |
11 |
use DateTime::Duration; |
| 12 |
use t::lib::Mocks; |
12 |
use t::lib::Mocks; |
| 13 |
use C4::Acquisition; |
13 |
use C4::Acquisition; |
|
|
14 |
use C4::Contract qw( GetContract ); |
| 15 |
use C4::Items qw ( GetItem ); |
| 14 |
use C4::Serials; |
16 |
use C4::Serials; |
| 15 |
use C4::Budgets; |
17 |
use C4::Budgets; |
| 16 |
use C4::Biblio; |
18 |
use C4::Biblio; |
|
|
19 |
use t::lib::TestBuilder; |
| 17 |
|
20 |
|
| 18 |
use Koha::Acquisition::Order; |
21 |
use Koha::Acquisition::Order; |
| 19 |
use Koha::Database; |
22 |
use Koha::Database; |
|
Lines 40-45
$schema->storage->txn_begin();
Link Here
|
| 40 |
|
43 |
|
| 41 |
$dbh->{RaiseError} = 1; |
44 |
$dbh->{RaiseError} = 1; |
| 42 |
|
45 |
|
|
|
46 |
our $builder = t::lib::TestBuilder->new; |
| 47 |
|
| 43 |
#Start tests |
48 |
#Start tests |
| 44 |
$dbh->do(q|DELETE FROM aqorders|); |
49 |
$dbh->do(q|DELETE FROM aqorders|); |
| 45 |
$dbh->do(q|DELETE FROM aqbasket|); |
50 |
$dbh->do(q|DELETE FROM aqbasket|); |
|
Lines 746-751
is( $contacts->[0]->phone,
Link Here
|
| 746 |
is( scalar @$contacts, |
751 |
is( scalar @$contacts, |
| 747 |
1, 'Only one contact after modification' ); |
752 |
1, 'Only one contact after modification' ); |
| 748 |
|
753 |
|
|
|
754 |
my $bookseller1 = create('Aqbookseller'); |
| 755 |
my $booksellerid1 = $bookseller1->{id}; |
| 756 |
my $bookseller2 = create('Aqbookseller'); |
| 757 |
my $booksellerid2 = $bookseller2->{id}; |
| 758 |
|
| 759 |
my $bg1 = create( 'Aqbasketgroup', $booksellerid1 ); |
| 760 |
my $bg2 = create( 'Aqbasketgroup', $booksellerid1 ); |
| 761 |
my $bg3 = create( 'Aqbasketgroup', $booksellerid2 ); |
| 762 |
|
| 763 |
my $basket1 = create( 'Aqbasket', $booksellerid1 ); |
| 764 |
my $basket2 = create( 'Aqbasket', $booksellerid1 ); |
| 765 |
|
| 766 |
my $contract = create( 'Aqcontract', $booksellerid1 ); |
| 767 |
|
| 768 |
my $contact = create( 'Aqcontact', $booksellerid1 ); |
| 769 |
|
| 770 |
my $invoice = create( 'Aqinvoice', $booksellerid1 ); |
| 771 |
|
| 772 |
my $deleteditem = create( 'Deleteditem', $booksellerid1 ); |
| 773 |
|
| 774 |
my $item1 = create( 'Item', $booksellerid1 ); |
| 775 |
|
| 776 |
my $subscription = create( 'Subscription', $booksellerid1 ); |
| 777 |
|
| 778 |
$bookseller = Koha::Acquisition::Bookseller->fetch( { id => $booksellerid1 } ); |
| 779 |
|
| 780 |
my $result = eval { $bookseller->merge_with(345876876) }; |
| 781 |
ok( |
| 782 |
$@ =~ /^Unknown target bookseller number: 345876876/, |
| 783 |
'Merge to unknown bookseller return an error' |
| 784 |
); |
| 785 |
|
| 786 |
$result = $bookseller->merge_with($booksellerid2); |
| 787 |
my $expected_result = { |
| 788 |
Aqbasketgroup => [ $bg1->{id}, $bg2->{id} ], |
| 789 |
Aqbasket => [ $basket1->{basketno}, $basket2->{basketno} ], |
| 790 |
Aqcontract => [ $contract->{contractnumber} ], |
| 791 |
Aqcontact => [ $contact->{id} ], |
| 792 |
Aqinvoice => [ $invoice->{invoiceid} ], |
| 793 |
Deleteditem => [ $deleteditem->{itemnumber} ], |
| 794 |
Item => [ $item1->{itemnumber} ], |
| 795 |
Subscription => [ $subscription->{subscriptionid} ] |
| 796 |
}; |
| 797 |
|
| 798 |
is_deeply( $result, $expected_result, 'Result should be as expected' ); |
| 799 |
|
| 800 |
is( GetBasketgroup( $bg1->{id} )->{'booksellerid'}, |
| 801 |
$booksellerid2, 'Basket group 1 has bookseller 2' ); |
| 802 |
|
| 803 |
is( GetBasketgroup( $bg2->{id} )->{'booksellerid'}, |
| 804 |
$booksellerid2, 'Basket group 2 has bookseller 2' ); |
| 805 |
|
| 806 |
is( GetBasketgroup( $bg3->{id} )->{'booksellerid'}, |
| 807 |
$booksellerid2, 'Basket group 3 keep bookseller 2' ); |
| 808 |
|
| 809 |
is( GetBasket( $basket1->{basketno} )->{'booksellerid'}, |
| 810 |
$booksellerid2, 'Basket 1 has bookseller 2' ); |
| 811 |
|
| 812 |
is( GetBasket( $basket2->{basketno} )->{'booksellerid'}, |
| 813 |
$booksellerid2, 'Basket 2 has bookseller 2' ); |
| 814 |
|
| 815 |
is( |
| 816 |
GetContract( { contractnumber => $contract->{contractnumber} } ) |
| 817 |
->{'booksellerid'}, |
| 818 |
$booksellerid2, |
| 819 |
'Basket 1 has bookseller 2' |
| 820 |
); |
| 821 |
|
| 822 |
is( C4::Bookseller::Contact->fetch( $contact->{id} )->{'booksellerid'}, |
| 823 |
$booksellerid2, 'Contact 1 has booksellerid 2' ); |
| 824 |
|
| 825 |
is( GetInvoice( $invoice->{invoiceid} )->{'booksellerid'}, |
| 826 |
$booksellerid2, 'Invoice has bookseller 2' ); |
| 827 |
|
| 828 |
my $item = Koha::Database->new()->schema->resultset('Deleteditem') |
| 829 |
->find( { itemnumber => $deleteditem->{itemnumber} } ); |
| 830 |
is( $item->get_column('booksellerid'), |
| 831 |
$booksellerid2, 'Deleted item has bookseller 2' ); |
| 832 |
|
| 833 |
is( GetItem( $item1->{itemnumber} )->{'booksellerid'}, |
| 834 |
$booksellerid2, 'Item has bookseller 2' ); |
| 835 |
|
| 836 |
is( GetSubscription( $subscription->{subscriptionid} )->{'aqbooksellerid'}, |
| 837 |
$booksellerid2, 'Subscription has bookseller 2' ); |
| 838 |
|
| 749 |
#End transaction |
839 |
#End transaction |
| 750 |
$schema->storage->txn_rollback(); |
840 |
$schema->storage->txn_rollback(); |
| 751 |
|
841 |
|
|
Lines 769-771
sub field_filter {
Link Here
|
| 769 |
} |
859 |
} |
| 770 |
return $struct; |
860 |
return $struct; |
| 771 |
} |
861 |
} |
| 772 |
- |
862 |
|
|
|
863 |
sub create { |
| 864 |
my ( $source, $booksellerid ) = @_; |
| 865 |
|
| 866 |
my $build = { source => $source }; |
| 867 |
my $foreign_key = |
| 868 |
$source eq 'Subscription' ? 'aqbooksellerid' : 'booksellerid'; |
| 869 |
$build->{value} = { $foreign_key => $booksellerid } if $booksellerid; |
| 870 |
|
| 871 |
my $entity = $builder->build($build); |
| 872 |
|
| 873 |
return $entity; |
| 874 |
} |