|
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 |
}; |