public function testPickShardWithEmptyIdKey()
{
$sharding = $this->getShardingMock();
$sharding->expects($this->never())->method('selectGlobal');
$sharding->expects($this->once())->method('selectShard')->will($this->returnValue(null));
// returns wrong configuration
$query = $this->getMock('\\Repo2\\QueryReactor\\Tests\\Sharding\\ShardedStubQuery');
$query->expects($this->never())->method('getExpression');
$query->expects($this->once())->method('getDistributionName');
$query->expects($this->once())->method('getDistributionValue');
$query->expects($this->never())->method('resolve');
$query->expects($this->once())->method('reject')->with($this->callback(function ($err) {
return is_object($err) && $err instanceof \RuntimeException;
}));
$reactor = $this->createReactor($this->createShardingController($sharding));
$reactor->execQuery($query)->await();
}