Bugzilla – Attachment 161660 Details for
Bug 35248
Bookings needs unit tests
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 35248: Add unit tests for Koha::Bibilio->check_booking
Bug-35248-Add-unit-tests-for-KohaBibilio-checkbook.patch (text/plain), 4.05 KB, created by
Martin Renvoize (ashimema)
on 2024-01-30 17:10:07 UTC
(
hide
)
Description:
Bug 35248: Add unit tests for Koha::Bibilio->check_booking
Filename:
MIME Type:
Creator:
Martin Renvoize (ashimema)
Created:
2024-01-30 17:10:07 UTC
Size:
4.05 KB
patch
obsolete
>From 9fc404c7ea1e61df7baa7425418be3d4fd6b9f97 Mon Sep 17 00:00:00 2001 >From: Martin Renvoize <martin.renvoize@ptfs-europe.com> >Date: Tue, 30 Jan 2024 16:38:08 +0000 >Subject: [PATCH] Bug 35248: Add unit tests for Koha::Bibilio->check_booking > >This patch adds basic unit tests for Koha::Biblio->check_booking > >Test plan >1) Run t/db_dependent/Koha/Biblio.t >--- > t/db_dependent/Koha/Biblio.t | 108 ++++++++++++++++++++++++++++++++++- > 1 file changed, 107 insertions(+), 1 deletion(-) > >diff --git a/t/db_dependent/Koha/Biblio.t b/t/db_dependent/Koha/Biblio.t >index 5624ac28c14..b17e02c137b 100755 >--- a/t/db_dependent/Koha/Biblio.t >+++ b/t/db_dependent/Koha/Biblio.t >@@ -17,7 +17,7 @@ > > use Modern::Perl; > >-use Test::More tests => 31; >+use Test::More tests => 32; > use Test::Exception; > use Test::Warn; > >@@ -25,6 +25,7 @@ use C4::Biblio qw( AddBiblio ModBiblio ModBiblioMarc ); > use C4::Circulation qw( AddIssue AddReturn ); > > use Koha::Database; >+use Koha::DateUtils qw( dt_from_string ); > use Koha::Cache::Memory::Lite; > use Koha::Caches; > use Koha::Acquisition::Orders; >@@ -1299,3 +1300,108 @@ sub host_record { > ); > return $marc; > } >+ >+subtest 'check_booking tests' => sub { >+ plan tests => 4; >+ >+ $schema->storage->txn_begin; >+ >+ my $biblio = $builder->build_sample_biblio(); >+ my @items; >+ for ( 0 .. 2 ) { >+ my $item = $builder->build_sample_item( { biblionumber => $biblio->biblionumber, bookable => 1 } ); >+ push @items, $item; >+ } >+ >+ my $can_book = $biblio->check_booking( >+ { >+ start_date => dt_from_string(), >+ end_date => dt_from_string()->add( days => 7 ) >+ } >+ ); >+ >+ is( >+ $can_book, 1, >+ "True returned from Koha::Biblio->check_booking if there are no bookings" >+ ); >+ >+ my $start_1 = dt_from_string()->subtract( days => 7 ); >+ my $end_1 = dt_from_string()->subtract( days => 1 ); >+ my $start_2 = dt_from_string(); >+ my $end_2 = dt_from_string()->add( days => 7 ); >+ >+ # Past bookings >+ my @bookings; >+ for my $item (@items) { >+ >+ my $booking = $builder->build_object( >+ { >+ class => 'Koha::Bookings', >+ value => { >+ biblio_id => $biblio->biblionumber, >+ item_id => $item->itemnumber, >+ start_date => $start_1, >+ end_date => $end_1 >+ } >+ } >+ ); >+ push @bookings, $booking; >+ } >+ >+ $can_book = $biblio->check_booking( >+ { >+ start_date => dt_from_string(), >+ end_date => dt_from_string()->add( days => 7 ), >+ } >+ ); >+ >+ is( >+ $can_book, >+ 1, >+ "Koha::Biblio->check_booking returns true when we all existing bookings are in the past" >+ ); >+ >+ # Current bookings >+ my @current_bookings; >+ for my $item (@items) { >+ my $booking = $builder->build_object( >+ { >+ class => 'Koha::Bookings', >+ value => { >+ biblio_id => $biblio->biblionumber, >+ item_id => $item->itemnumber, >+ start_date => $start_2, >+ end_date => $end_2 >+ } >+ } >+ ); >+ push @current_bookings, $booking; >+ } >+ >+ $can_book = $biblio->check_booking( >+ { >+ start_date => dt_from_string(), >+ end_date => dt_from_string()->add( days => 7 ), >+ } >+ ); >+ is( >+ $can_book, >+ 0, >+ "Koha::Biblio->check_booking returns false if the booking would conflict with existing bookings" >+ ); >+ >+ $can_book = $biblio->check_booking( >+ { >+ start_date => dt_from_string(), >+ end_date => dt_from_string()->add( days => 7 ), >+ booking_id => $current_bookings[0]->booking_id >+ } >+ ); >+ is( >+ $can_book, >+ 1, >+ "Koha::Biblio->check_booking returns true if we pass the booking_id of one of the bookings that we would conflict with" >+ ); >+ >+ $schema->storage->txn_rollback; >+}; >-- >2.43.0
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 35248
:
161061
|
161062
|
161608
|
161611
|
161620
|
161621
|
161632
|
161636
|
161651
|
161652
|
161653
|
161654
|
161655
|
161656
|
161657
|
161658
|
161659
|
161660
|
161821
|
161822
|
161823
|
161824
|
161825
|
161826
|
161827
|
161828
|
161829
|
161830
|
161831
|
161861
|
161862
|
161863
|
161864
|
161865
|
161866
|
161867
|
161868
|
161869
|
161870
|
161871
|
161890
|
161891
|
161893
|
161894
|
161895
|
161896
|
161897
|
161898
|
161899
|
161900
|
161901
|
161902
|
161903
|
161904
|
161905
|
161906
|
161907
|
161908
|
161909
|
161910
|
161911
|
161912