public function testShouldAllowAddValueToAlreadyArray() { $values = ['aNamespace' => ['aKey' => ['aVal']]]; $obj = new ValueTest(); \Makasim\Values\set_values($obj, $values); $obj->addValue('aNamespace', 'aKey', 'aVal'); $this->assertSame(['aVal', 'aVal'], $obj->getValue('aNamespace', 'aKey')); $this->assertSame(['aNamespace' => ['aKey' => ['aVal', 'aVal']]], \Makasim\Values\get_values($obj)); $this->assertSame(['aNamespace' => ['aKey' => ['aVal', 'aVal']]], \Makasim\Values\get_changed_values($obj)); }
public function testShouldNotReflectChangesIfObjectWasCloned() { $values = ['aName' => ['aKey' => ['aSubName' => ['aSubKey' => 'aFooVal']]]]; $obj = new ObjectTest(); \Makasim\Values\set_values($obj, $values); //guard $this->assertEmpty(\Makasim\Values\get_changed_values($obj)); /** @var SubObjectTest $subObj */ $subObj = $obj->getObject('aName', 'aKey', SubObjectTest::class); //guard $this->assertInstanceOf(SubObjectTest::class, $subObj); $clonedSubObj = \Makasim\Values\clone_object($subObj); $clonedSubObj->setSelfValue('aSubKeyFoo', 'aBarVal'); $this->assertEquals(['aName' => ['aKey' => ['aSubName' => ['aSubKey' => 'aFooVal']]]], \Makasim\Values\get_values($obj)); }