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

(-)a/t/db_dependent/Koha/Patrons/Import.t (-2 / +79 lines)
Lines 845-851 subtest 'test_format_dates' => sub { Link Here
845
845
846
subtest 'patron_attributes' => sub {
846
subtest 'patron_attributes' => sub {
847
847
848
    plan tests => 16;
848
    plan tests => 17;
849
849
850
    t::lib::Mocks::mock_preference('ExtendedPatronAttributes', 1);
850
    t::lib::Mocks::mock_preference('ExtendedPatronAttributes', 1);
851
851
Lines 968-973 subtest 'patron_attributes' => sub { Link Here
968
        is( $patron, undef );
968
        is( $patron, undef );
969
    }
969
    }
970
970
971
    subtest 'update existing patron' => sub {
972
        plan tests => 6;
973
974
        my $patron = $builder->build_object(
975
            {
976
                class => 'Koha::Patrons',
977
                value => { cardnumber => $cardnumber }
978
            }
979
        );
980
981
        my $attributes = {
982
            $unique_attribute_type->code => ['my unique attribute 1'],
983
            $repeatable_attribute_type->code => [ 'my repeatable attribute 1', 'my repeatable attribute 2' ],
984
            $normal_attribute_type->code => ['my normal attribute 1'],
985
        };
986
        my $fh = build_csv({ %$attributes });
987
        my $result = $patrons_import->import_patrons(
988
            {
989
                file                         => $fh,
990
                matchpoint                   => 'cardnumber',
991
                overwrite_cardnumber         => 1,
992
                preserve_extended_attributes => 1
993
            }
994
        );
995
996
        is( $result->{overwritten}, 1 );
997
998
        compare_patron_attributes($patron->extended_attributes->unblessed, { %$attributes } );
999
1000
        # Adding a new non-repeatable attribute
1001
        my $new_attributes = {
1002
            $normal_attribute_type->code => ['my normal attribute 2'],
1003
        };
1004
        $fh = build_csv({ %$new_attributes });
1005
        $result = $patrons_import->import_patrons(
1006
            {
1007
                file                         => $fh,
1008
                matchpoint                   => 'cardnumber',
1009
                overwrite_cardnumber         => 1,
1010
                preserve_extended_attributes => 1
1011
            }
1012
        );
1013
1014
        is( $result->{overwritten}, 1 );
1015
1016
        # The normal_attribute_type has been replaced with 'my normal attribute 2'
1017
        compare_patron_attributes($patron->extended_attributes->unblessed, { %$attributes, %$new_attributes } );
1018
1019
1020
        # uniqueness
1021
        $patron->extended_attributes->delete; # reset
1022
        $builder->build_object(
1023
            {
1024
                class => 'Koha::Patron::Attributes',
1025
                value => { code => $unique_attribute_type->code, attribute => 'unique' }
1026
            }
1027
        );
1028
        $attributes = {
1029
            $unique_attribute_type->code => ['unique'],
1030
            $repeatable_attribute_type->code => [ 'my repeatable attribute 1', 'my repeatable attribute 2' ],
1031
            $normal_attribute_type->code => ['my normal attribute 1'],
1032
        };
1033
        $fh = build_csv({ %$attributes });
1034
        $result = $patrons_import->import_patrons(
1035
            {
1036
                file                         => $fh,
1037
                matchpoint                   => 'cardnumber',
1038
                overwrite_cardnumber         => 1,
1039
                preserve_extended_attributes => 1
1040
            }
1041
        );
1042
1043
        is( $result->{overwritten}, 0 );
1044
1045
        compare_patron_attributes($patron->extended_attributes->unblessed, { %$attributes } );
1046
1047
    };
1048
971
};
1049
};
972
1050
973
# got is { code => $code, attribute => $attribute }
1051
# got is { code => $code, attribute => $attribute }
974
- 

Return to bug 28220