public function testReadPreference()
{
$database = $this->getDatabase();
$this->assertSame(['type' => \MongoClient::RP_PRIMARY], $database->getReadPreference());
$this->assertFalse($database->getSlaveOkay());
$this->assertTrue($database->setReadPreference(\MongoClient::RP_SECONDARY, [['a' => 'b']]));
$this->assertSame(['type' => \MongoClient::RP_SECONDARY, 'tagsets' => [['a' => 'b']]], $database->getReadPreference());
$this->assertTrue($database->getSlaveOkay());
$this->assertTrue($database->setSlaveOkay(true));
$this->assertSame(['type' => \MongoClient::RP_SECONDARY_PREFERRED, 'tagsets' => [['a' => 'b']]], $database->getReadPreference());
$this->assertTrue($database->setSlaveOkay(false));
// Only test a subset since we don't keep tagsets around for RP_PRIMARY
$this->assertArraySubset(['type' => \MongoClient::RP_PRIMARY], $database->getReadPreference());
}