/** * @param array $values * * @return object */ protected function hydrate(array $values) { $model = $this->create(); \Makasim\Values\set_values($model, $values); return $model; }
/** * @expectedException \LogicException * @expectedExceptionMessage Cannot set value to aNamespace.aKey it is already set and not array */ public function testThrowsIfAddValueToExistOneWhichNotArray() { $values = ['aNamespace' => ['aKey' => 'aVal']]; $obj = new ValueTest(); \Makasim\Values\set_values($obj, $values); $obj->addValue('aNamespace', 'aKey', 'aVal'); }
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)); }