public function testShouldReferenceOne($entity, $field, $fieldValue, $expectedQuery)
{
// Set
$expectedQuery = $expectedQuery['referencesOne'];
$model = m::mock(ActiveRecord::class . '[]');
$dataMapper = m::mock(DataMapper::class)->makePartial();
$result = m::mock();
$model->{$field} = $fieldValue;
// Act
Ioc::instance(DataMapper::class, $dataMapper);
Ioc::instance('EntityClass', $entity);
$dataMapper->shouldReceive('first')->once()->andReturnUsing(function ($query) use($result, $expectedQuery) {
$this->assertMongoQueryEquals($expectedQuery, $query);
return $result;
});
// Assert
$this->assertSame($result, $this->callProtected($model, 'referencesOne', ['EntityClass', $field]));
}