public function testShouldNotReflectChangesOnClonedObject() { $obj = new ValueTest(); $obj->setValue('aNamespace.aKey', 'foo'); $clonedObj = \Makasim\Yadm\clone_object($obj); $clonedObj->setValue('aNamespace.aKey', 'bar'); $this->assertSame('foo', $obj->getValue('aNamespace.aKey')); $this->assertSame('bar', $clonedObj->getValue('aNamespace.aKey')); }
public function testShouldNotReflectChangesIfObjectWasCloned() { $values = ['aName' => ['aKey' => ['aSubName' => ['aSubKey' => 'aFooVal']]]]; $obj = new ObjectTest(); \Makasim\Yadm\set_object_values($obj, $values); //guard $this->assertEmpty(\Makasim\Yadm\get_object_changed_values($obj)); /** @var SubObjectTest $subObj */ $subObj = $obj->getObject('aName.aKey', SubObjectTest::class); //guard $this->assertInstanceOf(SubObjectTest::class, $subObj); $clonedSubObj = \Makasim\Yadm\clone_object($subObj); $clonedSubObj->setValue('self.aSubKeyFoo', 'aBarVal'); $this->assertEquals(['aName' => ['aKey' => ['aSubName' => ['aSubKey' => 'aFooVal']]]], \Makasim\Yadm\get_object_values($obj)); }