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

(-)a/t/db_dependent/Items.t (-4 / +96 lines)
Lines 34-40 use C4::Items; Link Here
34
use t::lib::Mocks;
34
use t::lib::Mocks;
35
use t::lib::TestBuilder;
35
use t::lib::TestBuilder;
36
36
37
use Test::More tests => 13;
37
use Test::More tests => 14;
38
38
39
use Test::Warn;
39
use Test::Warn;
40
40
Lines 862-873 subtest 'tests for GetMarcItem' => sub { Link Here
862
            cn_sort          => "",
862
            cn_sort          => "",
863
        }
863
        }
864
    });
864
    });
865
    my ($itemtag, $item_num_subfield )=C4::Biblio::GetMarcFromKohaField("items.itemnumber");
866
    my $get_itemnumber = $item1->itemnumber;
865
    my $get_itemnumber = $item1->itemnumber;
867
    my $item1_marc = C4::Items::GetMarcItem( $biblio->{biblionumber}, $item1->itemnumber );
866
    my $item1_marc = C4::Items::GetMarcItem( $biblio->{biblionumber}, $item1->itemnumber );
868
    my (undef, undef, $itemnumber2 ) = AddItemFromMarc( $item1_marc, $biblio->{biblionumber} );
867
    my (undef, undef, $itemnumber2 ) = AddItemFromMarc( $item1_marc, $biblio->{biblionumber} );
869
    my $item2_marc = C4::Items::GetMarcItem( $biblio->{biblionumber}, $itemnumber2 );
868
    my $item2_marc = C4::Items::GetMarcItem( $biblio->{biblionumber}, $itemnumber2 );
870
    ($itemtag, $item_num_subfield )=C4::Biblio::GetMarcFromKohaField("items.itemnumber"); #get itemnumber tag
869
    my ($itemtag, $item_num_subfield )=C4::Biblio::GetMarcFromKohaField("items.itemnumber"); #get itemnumber tag
871
    $item1_marc->field($itemtag)->delete_subfield(code => $item_num_subfield); #and remove it
870
    $item1_marc->field($itemtag)->delete_subfield(code => $item_num_subfield); #and remove it
872
    $item2_marc->field($itemtag)->delete_subfield(code => $item_num_subfield); #because it won't match
871
    $item2_marc->field($itemtag)->delete_subfield(code => $item_num_subfield); #because it won't match
873
    is_deeply( $item1_marc, $item2_marc, "The Marc should match if the items are the same");
872
    is_deeply( $item1_marc, $item2_marc, "The Marc should match if the items are the same");
Lines 875-880 subtest 'tests for GetMarcItem' => sub { Link Here
875
874
876
};
875
};
877
876
877
subtest 'tests for GetMarcItemFields' => sub {
878
879
    plan tests => 5;
880
881
    $schema->storage->txn_begin;
882
    #Setup the information we need
883
    my $builder  = t::lib::TestBuilder->new;
884
    my $library  = $builder->build({ source => 'Branch', });
885
    my $itemtype = $builder->build({ source => 'Itemtype', });
886
    my $biblio   = $builder->build({
887
        source => 'Biblio',
888
        value=>{
889
            frameworkcode => "",
890
        }
891
    });
892
    my $biblioitem = $builder->build({
893
        source => 'Biblioitem',
894
        value => { biblionumber => $biblio->{biblionumber} },
895
    });
896
    my @items;
897
    my $item1 = $builder->build_object({
898
        class => 'Koha::Items',
899
        value => {
900
            biblionumber     => $biblio->{biblionumber},
901
            biblioitemnumber => $biblioitem->{biblioitemnumber},
902
            itype            => $itemtype->{itemtype},
903
            homebranch       => $library->{branchcode},
904
            barcode          => undef,
905
            restricted       => 1,
906
            itemcallnumber   => "",
907
            cn_sort          => "",
908
            withdrawn        => 0,
909
        }
910
    });
911
    push @items, GetItem( $item1->itemnumber );
912
    my $item2 = $builder->build_object({
913
        class => 'Koha::Items',
914
        value => {
915
            biblionumber     => $biblio->{biblionumber},
916
            biblioitemnumber => $biblioitem->{biblioitemnumber},
917
            itype            => $itemtype->{itemtype},
918
            homebranch       => $library->{branchcode},
919
            barcode          => undef,
920
            restricted       => 1,
921
            itemcallnumber   => "",
922
            cn_sort          => "",
923
            withdrawn        => 0,
924
        }
925
    });
926
    push @items, GetItem( $item2->itemnumber );
927
    my $item3 = $builder->build_object({
928
        class => 'Koha::Items',
929
        value => {
930
            biblionumber     => $biblio->{biblionumber},
931
            biblioitemnumber => $biblioitem->{biblioitemnumber},
932
            itype            => $itemtype->{itemtype},
933
            homebranch       => $library->{branchcode},
934
            barcode          => undef,
935
            restricted       => 1,
936
            itemcallnumber   => "",
937
            cn_sort          => "",
938
            withdrawn        => 1,
939
        }
940
    });
941
    push @items, GetItem( $item3->itemnumber );
942
943
    #Get the marc for our items individually for comparison later
944
    my $item1_marc = C4::Items::GetMarcItem( $biblio->{biblionumber}, $item1->itemnumber );
945
    my $item2_marc = C4::Items::GetMarcItem( $biblio->{biblionumber}, $item2->itemnumber );
946
    my $item3_marc = C4::Items::GetMarcItem( $biblio->{biblionumber}, $item3->itemnumber );
947
    my ($itemtag, $item_num_subfield )=C4::Biblio::GetMarcFromKohaField("items.itemnumber"); #get itemnumber tag
948
    $item1_marc->field($itemtag)->delete_subfield(code => $item_num_subfield); #and remove it
949
    $item2_marc->field($itemtag)->delete_subfield(code => $item_num_subfield); #because it won't match
950
951
    #Testing with hidden items
952
    my $opachiddenitems = "
953
        withdrawn: [1]";
954
    my $hidingrules = YAML::Load($opachiddenitems);
955
    my $marc_items = C4::Items::GetMarcItemFields( $biblio->{biblionumber}, [], $hidingrules );
956
    @$marc_items[0]->delete_subfield(code => $item_num_subfield);
957
    @$marc_items[1]->delete_subfield(code => $item_num_subfield);
958
    is(scalar @$marc_items, 2, "We should not get a hidden item");
959
    is_deeply( $item1_marc->field($itemtag), @$marc_items[0], "We should get the first item");
960
    is_deeply( $item2_marc->field($itemtag), @$marc_items[1], "We should also get the second item");
961
962
    #Testing with specified items
963
    $marc_items = C4::Items::GetMarcItemFields( $biblio->{biblionumber}, [ $item3->itemnumber ], undef );
964
    is(scalar @$marc_items,1,"We should only get the specifically requested item");
965
    is_deeply( $item3_marc->field($itemtag), @$marc_items[0], "We should get the third item when explicitly requested");
966
967
    $schema->storage->txn_rollback;
968
969
};
970
878
# Helper method to set up a Biblio.
971
# Helper method to set up a Biblio.
879
sub get_biblio {
972
sub get_biblio {
880
    my ( $frameworkcode ) = @_;
973
    my ( $frameworkcode ) = @_;
881
- 

Return to bug 20664