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

(-)a/t/db_dependent/Koha/Patron/Attribute.t (-2 / +74 lines)
Lines 37-43 my $builder = t::lib::TestBuilder->new; Link Here
37
37
38
subtest 'store() tests' => sub {
38
subtest 'store() tests' => sub {
39
39
40
    plan tests => 6;
40
    plan tests => 7;
41
41
42
    subtest 'Update an attribute should update the patron "updated_on" field' => sub {
42
    subtest 'Update an attribute should update the patron "updated_on" field' => sub {
43
43
Lines 282-287 subtest 'store() tests' => sub { Link Here
282
        $schema->storage->txn_rollback;
282
        $schema->storage->txn_rollback;
283
    };
283
    };
284
284
285
subtest 'trim identifier tests (Bug 32767)' => sub {
286
287
        plan tests => 5;
288
289
        $schema->storage->txn_begin;
290
291
        my $patron_1 = $builder->build( { source => 'Borrower' } )->{borrowernumber};
292
        my $patron_2 = $builder->build( { source => 'Borrower' } )->{borrowernumber};
293
294
        my $attribute_type_1 = $builder->build(
295
            {   source => 'BorrowerAttributeType',
296
                value  => { unique_id => 1, trim_value => 0 }
297
            }
298
        );
299
        Koha::Patron::Attribute->new(
300
            {   borrowernumber => $patron_1,
301
                code           => $attribute_type_1->{code},
302
                attribute      => '123'
303
            }
304
        )->store;
305
        Koha::Patron::Attribute->new(
306
            {   borrowernumber => $patron_2,
307
                code           => $attribute_type_1->{code},
308
                attribute      => ' 123'
309
            }
310
        )->store;
311
        my $attr_count
312
            = Koha::Patron::Attributes->search(
313
            { code => $attribute_type_1->{code} } )
314
            ->count;
315
        is( $attr_count, 2,
316
            'Two identical attributes stored and retrieved correctly because one of them had whitespace at the start' );
317
318
        my $attribute_type_2 = $builder->build(
319
            {   source => 'BorrowerAttributeType',
320
                value  => { unique_id => 1, trim_value => 1 }
321
            }
322
        );
323
324
        Koha::Patron::Attribute->new(
325
            {   borrowernumber => $patron_1,
326
                code           => $attribute_type_2->{code},
327
                attribute      => '123'
328
            }
329
        )->store;
330
        throws_ok {
331
            Koha::Patron::Attribute->new(
332
                {   borrowernumber => $patron_2,
333
                    code           => $attribute_type_2->{code},
334
                    attribute      => ' 123'
335
                }
336
            )->store;
337
        }
338
        'Koha::Exceptions::Patron::Attribute::UniqueIDConstraint',
339
            'Exception thrown trying to store more than one unique attribute now that we enabled trim_value';
340
341
        is(
342
            "$@",
343
            "Your action breaks a unique constraint on the attribute. type="
344
            . $attribute_type_2->{code}
345
            . " value=123",
346
            'Exception stringified correctly, attribute passed correctly'
347
        );
348
349
        my $attributes = Koha::Patron::Attributes->search(
350
            { borrowernumber => $patron_1, code => $attribute_type_2->{code} } );
351
        is( $attributes->count, 1, '1 unique attribute stored' );
352
        is( $attributes->next->attribute,
353
            '123', 'our unique attribute remains unchanged' );
354
355
        $schema->storage->txn_rollback;
356
    };
357
285
    subtest 'invalid type tests' => sub {
358
    subtest 'invalid type tests' => sub {
286
359
287
        plan tests => 2;
360
        plan tests => 2;
288
- 

Return to bug 32767