public function testShouldEmbedsOne($entity, $field, $fieldValue, $expectedItems)
{
// Set
$model = m::mock(ActiveRecord::class . '[]');
$cursorFactory = m::mock(CursorFactory::class);
$cursor = m::mock(EmbeddedCursor::class);
$document = $fieldValue;
$model->{$field} = $document;
$instantiableClass = $entity instanceof Schema ? 'stdClass' : get_class($entity);
// Act
Ioc::instance(CursorFactory::class, $cursorFactory);
$cursorFactory->shouldReceive('createEmbeddedCursor')->once()->with($instantiableClass, $expectedItems)->andReturn($cursor);
$cursor->shouldReceive('first')->once()->andReturn(new $instantiableClass());
// Assert
$result = $this->callProtected($model, 'embedsOne', [get_class($entity), $field]);
$this->assertInstanceOf($instantiableClass, $result);
}