/** * @test */ public function convertFromShouldCreateObjectWhenThereAreConstructorParameters() { $source = ['propertyX' => 'bar']; $convertedChildProperties = ['property1' => 'param1', 'property2' => 'bar']; $expectedObject = new ClassWithSettersAndConstructor('param1'); $expectedObject->setProperty2('bar'); $this->mockReflectionService->expects($this->once())->method('hasMethod')->with(ClassWithSettersAndConstructor::class, '__construct')->will($this->returnValue(true)); $this->mockReflectionService->expects($this->once())->method('getMethodParameters')->with(ClassWithSettersAndConstructor::class, '__construct')->will($this->returnValue(['property1' => ['optional' => false]])); $this->mockObjectManager->expects($this->once())->method('getClassNameByObjectName')->with(ClassWithSettersAndConstructor::class)->will($this->returnValue(ClassWithSettersAndConstructor::class)); $configuration = $this->buildConfiguration([PersistentObjectConverter::CONFIGURATION_CREATION_ALLOWED => true]); $result = $this->converter->convertFrom($source, ClassWithSettersAndConstructor::class, $convertedChildProperties, $configuration); $this->assertEquals($expectedObject, $result); $this->assertEquals('bar', $expectedObject->getProperty2()); }