public function mapToObject(array $previouslyMappedObject) { $classSource = $this->classSourceMapper->mapToObject($previouslyMappedObject[0]); $plan = new NewInstanceBuildPlan(); $plan->setClassSource($classSource); foreach ($previouslyMappedObject[1] as $callAsArray) { $methodCall = $this->methodCallMapper->mapToObject($callAsArray); $plan->addMethodCall($methodCall); } return $plan; }
public function testAddingExtension() { $valueSource = new NewValueSource(); $extension = $this->getExtension($valueSource, "abc"); $builder = $this->buildExtendedBuilder($extension); $plan = new NewInstanceBuildPlan(); $plan->setClassSource(new ExactClassPath(TestClass::class)); $plan->addMethodCall((new MethodCall(ConstructorSelector::getInstance()))->assignParamValue(new AssignedParamValue(new ParamByPosition(0), $valueSource))); $serializedPlan = $builder->serializeBuildPlan($plan); $deserializedPlan = $builder->deserializeBuildPlan($serializedPlan); /* @var $rebuiltObject TestClass */ $rebuiltObject = $builder->buildObjectBasedOn($deserializedPlan); $this->assertEquals("abc", $rebuiltObject->passedToConstructor); }