/** * @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); }