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

(-)a/t/db_dependent/Reserves.t (-2 / +188 lines)
Lines 17-23 Link Here
17
17
18
use Modern::Perl;
18
use Modern::Perl;
19
19
20
use Test::More tests => 69;
20
use Test::More tests => 70;
21
use Test::MockModule;
21
use Test::MockModule;
22
use Test::Warn;
22
use Test::Warn;
23
23
Lines 2091-2093 subtest 'HOLDDGST tests' => sub { Link Here
2091
2091
2092
    $schema->txn_rollback;
2092
    $schema->txn_rollback;
2093
};
2093
};
2094
- 
2094
2095
subtest 'Hold priority tests' => sub {
2096
2097
    plan tests => 2;
2098
2099
    subtest 'Using priority=1' => sub {
2100
2101
        plan tests => 5;
2102
2103
        $schema->storage->txn_begin;
2104
2105
        # Create the items and patrons we need
2106
        my $library = $builder->build_object( { class => 'Koha::Libraries' } );
2107
        my $itype   = $builder->build_object( { class => "Koha::ItemTypes", value => { notforloan => 0 } } );
2108
        my $item    = $builder->build_sample_item(
2109
            {
2110
                itype   => $itype->itemtype,
2111
                library => $library->branchcode
2112
            }
2113
        );
2114
        my $patron_1 = $builder->build_object( { class => "Koha::Patrons" } );
2115
        my $patron_2 = $builder->build_object( { class => "Koha::Patrons" } );
2116
        my $patron_3 = $builder->build_object( { class => "Koha::Patrons" } );
2117
        my $patron_4 = $builder->build_object( { class => "Koha::Patrons" } );
2118
2119
        # Place a hold on the title for both patrons
2120
        my $hold_1 = Koha::Holds->find(
2121
            C4::Reserves::AddReserve(
2122
                {
2123
                    branchcode     => $library->branchcode,
2124
                    borrowernumber => $patron_1->borrowernumber,
2125
                    biblionumber   => $item->biblionumber,
2126
                    priority       => 1,
2127
                    itemnumber     => $item->itemnumber,
2128
                }
2129
            )
2130
        );
2131
        my $hold_2 = Koha::Holds->find(
2132
            C4::Reserves::AddReserve(
2133
                {
2134
                    branchcode     => $library->branchcode,
2135
                    borrowernumber => $patron_2->borrowernumber,
2136
                    biblionumber   => $item->biblionumber,
2137
                    priority       => 1,
2138
                    itemnumber     => $item->itemnumber,
2139
                }
2140
            )
2141
        );
2142
        my $hold_3 = Koha::Holds->find(
2143
            C4::Reserves::AddReserve(
2144
                {
2145
                    branchcode     => $library->branchcode,
2146
                    borrowernumber => $patron_3->borrowernumber,
2147
                    biblionumber   => $item->biblionumber,
2148
                    priority       => 1,
2149
                    itemnumber     => $item->itemnumber,
2150
                }
2151
            )
2152
        );
2153
        my $hold_4 = Koha::Holds->find(
2154
            C4::Reserves::AddReserve(
2155
                {
2156
                    branchcode     => $library->branchcode,
2157
                    borrowernumber => $patron_4->borrowernumber,
2158
                    biblionumber   => $item->biblionumber,
2159
                    priority       => 1,
2160
                    itemnumber     => $item->itemnumber,
2161
                }
2162
            )
2163
        );
2164
2165
        # Each AddReserve call has an impact on the other hold's priorities
2166
        # Refresh just in case
2167
        $hold_1->discard_changes;
2168
        $hold_2->discard_changes;
2169
        $hold_3->discard_changes;
2170
        $hold_4->discard_changes;
2171
2172
        is( $item->biblio->holds->count, 4, '4 holds on the biblio' );
2173
2174
        use DDP;
2175
        p( $hold_1->priority );
2176
        p( $hold_2->priority );
2177
        p( $hold_3->priority );
2178
        p( $hold_4->priority );
2179
2180
        is( $hold_1->priority, 1, 'Priority is correct (1)' );
2181
        is( $hold_2->priority, 2, 'Priority is correct (2)' );
2182
        is( $hold_3->priority, 3, 'Priority is correct (3)' );
2183
        is( $hold_4->priority, 4, 'Priority is correct (4)' );
2184
2185
        $schema->storage->txn_rollback;
2186
    };
2187
2188
    subtest 'Using priority=undef' => sub {
2189
2190
        plan tests => 5;
2191
2192
        $schema->storage->txn_begin;
2193
2194
        # Create the items and patrons we need
2195
        my $library = $builder->build_object( { class => 'Koha::Libraries' } );
2196
        my $itype   = $builder->build_object( { class => "Koha::ItemTypes", value => { notforloan => 0 } } );
2197
        my $item    = $builder->build_sample_item(
2198
            {
2199
                itype   => $itype->itemtype,
2200
                library => $library->branchcode
2201
            }
2202
        );
2203
        my $patron_1 = $builder->build_object( { class => "Koha::Patrons" } );
2204
        my $patron_2 = $builder->build_object( { class => "Koha::Patrons" } );
2205
        my $patron_3 = $builder->build_object( { class => "Koha::Patrons" } );
2206
        my $patron_4 = $builder->build_object( { class => "Koha::Patrons" } );
2207
2208
        # Place a hold on the title for both patrons
2209
        my $hold_1 = Koha::Holds->find(
2210
            C4::Reserves::AddReserve(
2211
                {
2212
                    branchcode     => $library->branchcode,
2213
                    borrowernumber => $patron_1->borrowernumber,
2214
                    biblionumber   => $item->biblionumber,
2215
2216
                    # priority       => 1,
2217
                    itemnumber => $item->itemnumber,
2218
                }
2219
            )
2220
        );
2221
        my $hold_2 = Koha::Holds->find(
2222
            C4::Reserves::AddReserve(
2223
                {
2224
                    branchcode     => $library->branchcode,
2225
                    borrowernumber => $patron_2->borrowernumber,
2226
                    biblionumber   => $item->biblionumber,
2227
2228
                    # priority       => 1,
2229
                    itemnumber => $item->itemnumber,
2230
                }
2231
            )
2232
        );
2233
        my $hold_3 = Koha::Holds->find(
2234
            C4::Reserves::AddReserve(
2235
                {
2236
                    branchcode     => $library->branchcode,
2237
                    borrowernumber => $patron_3->borrowernumber,
2238
                    biblionumber   => $item->biblionumber,
2239
2240
                    # priority       => 1,
2241
                    itemnumber => $item->itemnumber,
2242
                }
2243
            )
2244
        );
2245
        my $hold_4 = Koha::Holds->find(
2246
            C4::Reserves::AddReserve(
2247
                {
2248
                    branchcode     => $library->branchcode,
2249
                    borrowernumber => $patron_4->borrowernumber,
2250
                    biblionumber   => $item->biblionumber,
2251
2252
                    # priority       => 1,
2253
                    itemnumber => $item->itemnumber,
2254
                }
2255
            )
2256
        );
2257
2258
        # Each AddReserve call has an impact on the other hold's priorities
2259
        # Refresh just in case
2260
        $hold_1->discard_changes;
2261
        $hold_2->discard_changes;
2262
        $hold_3->discard_changes;
2263
        $hold_4->discard_changes;
2264
2265
        is( $item->biblio->holds->count, 4, '4 holds on the biblio' );
2266
2267
        use DDP;
2268
        p( $hold_1->priority );
2269
        p( $hold_2->priority );
2270
        p( $hold_3->priority );
2271
        p( $hold_4->priority );
2272
2273
        is( $hold_1->priority, 1, 'Priority is correct (1)' );
2274
        is( $hold_2->priority, 2, 'Priority is correct (2)' );
2275
        is( $hold_3->priority, 3, 'Priority is correct (3)' );
2276
        is( $hold_4->priority, 4, 'Priority is correct (4)' );
2277
2278
        $schema->storage->txn_rollback;
2279
    };
2280
};

Return to bug 40062