/**
* @dataProvider EntityAssemblerFixture
*/
public function testShouldAssembleEntityForTheGivenSchema($inputValue, $availableSchemas, $inputSchema, $expectedOutput)
{
// Arrange
$entityAssembler = new EntityAssembler();
$schemas = [];
foreach ($availableSchemas as $key => $value) {
$schemas[$key] = m::mock(Schema::class . '[]');
$schemas[$key]->entityClass = $value['entityClass'];
$schemas[$key]->fields = $value['fields'];
}
// Act
foreach ($schemas as $className => $instance) {
Ioc::instance($className, $instance);
}
// Assert
$result = $entityAssembler->assemble($inputValue, $schemas[$inputSchema]);
$this->assertEquals($expectedOutput, $result);
}