Bugzilla – Attachment 79278 Details for
Bug 20664
Optimize retrieval of biblio and item data
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 20664: Unit tests for GetMarcItemFields
Bug-20664-Unit-tests-for-GetMarcItemFields.patch (text/plain), 5.96 KB, created by
Josef Moravec
on 2018-09-24 08:06:51 UTC
(
hide
)
Description:
Bug 20664: Unit tests for GetMarcItemFields
Filename:
MIME Type:
Creator:
Josef Moravec
Created:
2018-09-24 08:06:51 UTC
Size:
5.96 KB
patch
obsolete
>From 45db25cfd0de8a6fabdbc1b129a818b9fc7fb1fd Mon Sep 17 00:00:00 2001 >From: Nick Clemens <nick@bywatersolutions.com> >Date: Wed, 4 Jul 2018 01:26:02 +0000 >Subject: [PATCH] Bug 20664: Unit tests for GetMarcItemFields > >To test: >prove -v t/db_dependent/Items.t > >Signed-off-by: Josef Moravec <josef.moravec@gmail.com> >--- > t/db_dependent/Items.t | 100 +++++++++++++++++++++++++++++++++++++++++++++++-- > 1 file changed, 97 insertions(+), 3 deletions(-) > >diff --git a/t/db_dependent/Items.t b/t/db_dependent/Items.t >index 33d10a0..b1b4a6f 100755 >--- a/t/db_dependent/Items.t >+++ b/t/db_dependent/Items.t >@@ -34,7 +34,8 @@ use C4::Items; > use t::lib::Mocks; > use t::lib::TestBuilder; > >-use Test::More tests => 13; >+use Test::More tests => 14; >+ > use Test::Warn; > > my $schema = Koha::Database->new->schema; >@@ -888,12 +889,11 @@ subtest 'tests for GetMarcItem' => sub { > cn_sort => "", > } > }); >- my ($itemtag, $item_num_subfield )=C4::Biblio::GetMarcFromKohaField("items.itemnumber"); > my $get_itemnumber = $item1->itemnumber; > my $item1_marc = C4::Items::GetMarcItem( $biblio->{biblionumber}, $item1->itemnumber ); > my (undef, undef, $itemnumber2 ) = AddItemFromMarc( $item1_marc, $biblio->{biblionumber} ); > my $item2_marc = C4::Items::GetMarcItem( $biblio->{biblionumber}, $itemnumber2 ); >- ($itemtag, $item_num_subfield )=C4::Biblio::GetMarcFromKohaField("items.itemnumber"); #get itemnumber tag >+ my ($itemtag, $item_num_subfield )=C4::Biblio::GetMarcFromKohaField("items.itemnumber"); #get itemnumber tag > $item1_marc->field($itemtag)->delete_subfield(code => $item_num_subfield); #and remove it > $item2_marc->field($itemtag)->delete_subfield(code => $item_num_subfield); #because it won't match > is_deeply( $item1_marc, $item2_marc, "The Marc should match if the items are the same"); >@@ -901,6 +901,100 @@ subtest 'tests for GetMarcItem' => sub { > > }; > >+subtest 'tests for GetMarcItemFields' => sub { >+ >+ plan tests => 5; >+ >+ $schema->storage->txn_begin; >+ #Setup the information we need >+ my $builder = t::lib::TestBuilder->new; >+ my $library = $builder->build({ source => 'Branch', }); >+ my $itemtype = $builder->build({ source => 'Itemtype', }); >+ my $biblio = $builder->build({ >+ source => 'Biblio', >+ value=>{ >+ frameworkcode => "", >+ } >+ }); >+ my $biblioitem = $builder->build({ >+ source => 'Biblioitem', >+ value => { biblionumber => $biblio->{biblionumber} }, >+ }); >+ my @items; >+ my $item1 = $builder->build_object({ >+ class => 'Koha::Items', >+ value => { >+ biblionumber => $biblio->{biblionumber}, >+ biblioitemnumber => $biblioitem->{biblioitemnumber}, >+ itype => $itemtype->{itemtype}, >+ homebranch => $library->{branchcode}, >+ barcode => undef, >+ restricted => 1, >+ itemcallnumber => "", >+ cn_sort => "", >+ withdrawn => 0, >+ } >+ }); >+ push @items, GetItem( $item1->itemnumber ); >+ my $item2 = $builder->build_object({ >+ class => 'Koha::Items', >+ value => { >+ biblionumber => $biblio->{biblionumber}, >+ biblioitemnumber => $biblioitem->{biblioitemnumber}, >+ itype => $itemtype->{itemtype}, >+ homebranch => $library->{branchcode}, >+ barcode => undef, >+ restricted => 1, >+ itemcallnumber => "", >+ cn_sort => "", >+ withdrawn => 0, >+ } >+ }); >+ push @items, GetItem( $item2->itemnumber ); >+ my $item3 = $builder->build_object({ >+ class => 'Koha::Items', >+ value => { >+ biblionumber => $biblio->{biblionumber}, >+ biblioitemnumber => $biblioitem->{biblioitemnumber}, >+ itype => $itemtype->{itemtype}, >+ homebranch => $library->{branchcode}, >+ barcode => undef, >+ restricted => 1, >+ itemcallnumber => "", >+ cn_sort => "", >+ withdrawn => 1, >+ } >+ }); >+ push @items, GetItem( $item3->itemnumber ); >+ >+ #Get the marc for our items individually for comparison later >+ my $item1_marc = C4::Items::GetMarcItem( $biblio->{biblionumber}, $item1->itemnumber ); >+ my $item2_marc = C4::Items::GetMarcItem( $biblio->{biblionumber}, $item2->itemnumber ); >+ my $item3_marc = C4::Items::GetMarcItem( $biblio->{biblionumber}, $item3->itemnumber ); >+ my ($itemtag, $item_num_subfield )=C4::Biblio::GetMarcFromKohaField("items.itemnumber"); #get itemnumber tag >+ $item1_marc->field($itemtag)->delete_subfield(code => $item_num_subfield); #and remove it >+ $item2_marc->field($itemtag)->delete_subfield(code => $item_num_subfield); #because it won't match >+ >+ #Testing with hidden items >+ my $opachiddenitems = " >+ withdrawn: [1]"; >+ my $hidingrules = YAML::Load($opachiddenitems); >+ my $marc_items = C4::Items::GetMarcItemFields( $biblio->{biblionumber}, [], $hidingrules ); >+ @$marc_items[0]->delete_subfield(code => $item_num_subfield); >+ @$marc_items[1]->delete_subfield(code => $item_num_subfield); >+ is(scalar @$marc_items, 2, "We should not get a hidden item"); >+ is_deeply( $item1_marc->field($itemtag), @$marc_items[0], "We should get the first item"); >+ is_deeply( $item2_marc->field($itemtag), @$marc_items[1], "We should also get the second item"); >+ >+ #Testing with specified items >+ $marc_items = C4::Items::GetMarcItemFields( $biblio->{biblionumber}, [ $item3->itemnumber ], undef ); >+ is(scalar @$marc_items,1,"We should only get the specifically requested item"); >+ is_deeply( $item3_marc->field($itemtag), @$marc_items[0], "We should get the third item when explicitly requested"); >+ >+ $schema->storage->txn_rollback; >+ >+}; >+ > # Helper method to set up a Biblio. > sub get_biblio { > my ( $frameworkcode ) = @_; >-- >2.1.4
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 20664
:
74873
|
75968
|
76045
|
76046
|
76669
|
78868
|
78869
|
78870
|
79225
|
79227
|
79228
|
79229
|
79276
|
79277
|
79278
|
79279
|
84516
|
84517
|
84518
|
84519
|
84520
|
85106
|
85107
|
85108
|
85109
|
85110
|
85776
|
85777
|
85778
|
85779
|
85780
|
85781
|
85898
|
85899
|
85900
|
85901
|
85902
|
85903
|
85904
|
85905
|
86002
|
86003
|
86004
|
86005
|
86006
|
86007
|
86008
|
86009