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

(-)a/t/db_dependent/Koha/Patron/Attribute.t (-27 / +45 lines)
Lines 43-50 subtest 'store() tests' => sub { Link Here
43
43
44
        my $patron = $builder->build( { source => 'Borrower' } )->{borrowernumber};
44
        my $patron = $builder->build( { source => 'Borrower' } )->{borrowernumber};
45
        my $attribute_type_1 = $builder->build(
45
        my $attribute_type_1 = $builder->build(
46
            {   source => 'BorrowerAttributeType',
46
            {
47
                value  => { repeatable => 1 }
47
                source => 'BorrowerAttributeType',
48
                value  => { repeatable => 1, is_date => 0 }
48
            }
49
            }
49
        );
50
        );
50
        Koha::Patron::Attribute->new(
51
        Koha::Patron::Attribute->new(
Lines 67-74 subtest 'store() tests' => sub { Link Here
67
            '2 repeatable attributes stored and retrieved correcctly' );
68
            '2 repeatable attributes stored and retrieved correcctly' );
68
69
69
        my $attribute_type_2 = $builder->build(
70
        my $attribute_type_2 = $builder->build(
70
            {   source => 'BorrowerAttributeType',
71
            {
71
                value  => { repeatable => 0 }
72
                source => 'BorrowerAttributeType',
73
                value  => { repeatable => 0, is_date => 0 }
72
            }
74
            }
73
        );
75
        );
74
76
Lines 107-126 subtest 'store() tests' => sub { Link Here
107
    };
109
    };
108
110
109
    subtest 'is_date attributes tests' => sub {
111
    subtest 'is_date attributes tests' => sub {
110
        plan tests => 2;
112
        plan tests => 3;
111
113
112
        $schema->storage->txn_begin;
114
        $schema->storage->txn_begin;
113
115
114
        my $patron = $builder->build( { source => 'Borrower' } )->{borrowernumber};
116
        my $patron           = $builder->build( { source => 'Borrower' } )->{borrowernumber};
115
        my $attribute_type_1 = $builder->build(
117
        my $attribute_type_1 = $builder->build(
116
            {   source => 'BorrowerAttributeType',
118
            {
119
                source => 'BorrowerAttributeType',
117
                value  => { is_date => 1 }
120
                value  => { is_date => 1 }
118
            }
121
            }
119
        );
122
        );
120
123
121
        throws_ok {
124
        throws_ok {
122
            Koha::Patron::Attribute->new(
125
            Koha::Patron::Attribute->new(
123
                {   borrowernumber => $patron,
126
                {
127
                    borrowernumber => $patron,
124
                    code           => $attribute_type_1->{code},
128
                    code           => $attribute_type_1->{code},
125
                    attribute      => 'not_a_date'
129
                    attribute      => 'not_a_date'
126
                }
130
                }
Lines 131-155 subtest 'store() tests' => sub { Link Here
131
135
132
        is(
136
        is(
133
            "$@",
137
            "$@",
134
            "Tried to use an invalid value for attribute type. type="
138
            "Tried to use an invalid value for attribute type. type=" . $attribute_type_1->{code} . " value=not_a_date",
135
            . $attribute_type_1->{code}
136
            . " value=not_a_date",
137
            'Exception stringified correctly, attribute passed correctly'
139
            'Exception stringified correctly, attribute passed correctly'
138
        );
140
        );
139
141
140
        Koha::Patron::Attribute->new(
142
        Koha::Patron::Attribute->new(
141
            {   borrowernumber => $patron,
143
            {
144
                borrowernumber => $patron,
142
                code           => $attribute_type_1->{code},
145
                code           => $attribute_type_1->{code},
143
                attribute      => '2024-03-04'
146
                attribute      => '2024-03-04'
144
            }
147
            }
145
        )->store;
148
        )->store;
146
149
147
        my $attr_count
150
        my $attr_count =
148
            = Koha::Patron::Attributes->search(
151
            Koha::Patron::Attributes->search( { borrowernumber => $patron, code => $attribute_type_1->{code} } )->count;
149
            { borrowernumber => $patron, code => $attribute_type_1->{code} } )
152
        is(
150
            ->count;
153
            $attr_count, 1,
151
        is( $attr_count, 1,
154
            '1 date attribute stored and retrieved correctly'
152
            '1 date attribute stored and retrieved correctly' );
155
        );
153
156
154
        $schema->storage->txn_rollback;
157
        $schema->storage->txn_rollback;
155
    };
158
    };
Lines 164-171 subtest 'store() tests' => sub { Link Here
164
        my $patron_2 = $builder->build( { source => 'Borrower' } )->{borrowernumber};
167
        my $patron_2 = $builder->build( { source => 'Borrower' } )->{borrowernumber};
165
168
166
        my $attribute_type_1 = $builder->build(
169
        my $attribute_type_1 = $builder->build(
167
            {   source => 'BorrowerAttributeType',
170
            {
168
                value  => { unique_id => 0 }
171
                source => 'BorrowerAttributeType',
172
                value  => { unique_id => 0, is_date => 0 }
169
            }
173
            }
170
        );
174
        );
171
        Koha::Patron::Attribute->new(
175
        Koha::Patron::Attribute->new(
Lines 188-195 subtest 'store() tests' => sub { Link Here
188
            '2 non-unique attributes stored and retrieved correcctly' );
192
            '2 non-unique attributes stored and retrieved correcctly' );
189
193
190
        my $attribute_type_2 = $builder->build(
194
        my $attribute_type_2 = $builder->build(
191
            {   source => 'BorrowerAttributeType',
195
            {
192
                value  => { unique_id => 1 }
196
                source => 'BorrowerAttributeType',
197
                value  => { unique_id => 1, is_date => 0 }
193
            }
198
            }
194
        );
199
        );
195
200
Lines 239-245 subtest 'store() tests' => sub { Link Here
239
                class => 'Koha::Patron::Attribute::Types',
244
                class => 'Koha::Patron::Attribute::Types',
240
                value => {
245
                value => {
241
                    unique_id  => 0,
246
                    unique_id  => 0,
242
                    repeatable => 0
247
                    repeatable => 0,
248
                    is_date    => 0
243
                }
249
                }
244
            }
250
            }
245
        );
251
        );
Lines 278-283 subtest 'store() tests' => sub { Link Here
278
                    mandatory     => 0,
284
                    mandatory     => 0,
279
                    repeatable    => 0,
285
                    repeatable    => 0,
280
                    unique_id     => 1,
286
                    unique_id     => 1,
287
                    is_date       => 0,
281
                    category_code => undef
288
                    category_code => undef
282
                }
289
                }
283
            }
290
            }
Lines 352-370 subtest 'merge_and_replace_with' => sub { Link Here
352
    my $unique_attribute_type = $builder->build_object(
359
    my $unique_attribute_type = $builder->build_object(
353
        {
360
        {
354
            class => 'Koha::Patron::Attribute::Types',
361
            class => 'Koha::Patron::Attribute::Types',
355
            value => { unique_id=> 1, repeatable => 0 }
362
            value => {
363
                unique_id  => 1,
364
                repeatable => 0,
365
                is_date    => 0
366
            }
356
        }
367
        }
357
    );
368
    );
358
    my $repeatable_attribute_type = $builder->build_object(
369
    my $repeatable_attribute_type = $builder->build_object(
359
        {
370
        {
360
            class => 'Koha::Patron::Attribute::Types',
371
            class => 'Koha::Patron::Attribute::Types',
361
            value => { unique_id => 0, repeatable => 1 }
372
            value => {
373
                unique_id  => 0,
374
                repeatable => 1,
375
                is_date    => 0
376
            }
362
        }
377
        }
363
    );
378
    );
364
    my $normal_attribute_type = $builder->build_object(
379
    my $normal_attribute_type = $builder->build_object(
365
        {
380
        {
366
            class => 'Koha::Patron::Attribute::Types',
381
            class => 'Koha::Patron::Attribute::Types',
367
            value => { unique_id => 0, repeatable => 0 }
382
            value => {
383
                unique_id  => 0,
384
                repeatable => 0,
385
                is_date    => 0
386
            }
368
        }
387
        }
369
    );
388
    );
370
    my $non_existent_attribute_type = $builder->build_object(
389
    my $non_existent_attribute_type = $builder->build_object(
371
- 

Return to bug 32610