use InvalidArgumentException;
/**
- * Trivial LoadBalancer that always returns an injected connection handle
+ * Trivial LoadBalancer that always returns an injected connection handle.
+ *
+ * Note that, while this LoadBalancer does not open any connections itself,
+ * it still closes the injected connection at times, including during destruction.
+ * It is therefore unsuitable for use in tests unless you have a Database instance
+ * separate from the main test database (which is expected to stay open).
*/
class LoadBalancerSingle extends LoadBalancer {
/** @var IDatabase */
'trxProfiler' => $params['trxProfiler'] ?? null,
'srvCache' => $params['srvCache'] ?? null,
'wanCache' => $params['wanCache'] ?? null,
- 'localDomain' => $params['localDomain'] ?? $this->db->getDomainID()
+ 'localDomain' => $params['localDomain'] ?? $this->db->getDomainID(),
+ 'readOnlyReason' => $params['readOnlyReason'] ?? false,
] );
if ( isset( $params['readOnlyReason'] ) ) {