public function testShouldAllowAddValueToAlreadyArray() { $values = ['aNamespace' => ['aKey' => ['aVal']]]; $obj = new ValueTest(); \Makasim\Yadm\set_object_values($obj, $values); $obj->addValue('aNamespace.aKey', 'aVal'); $this->assertSame(['aVal', 'aVal'], $obj->getValue('aNamespace.aKey')); $this->assertSame(['aNamespace' => ['aKey' => ['aVal', 'aVal']]], \Makasim\Yadm\get_object_values($obj)); $this->assertSame(['aNamespace' => ['aKey' => ['aVal', 'aVal']]], \Makasim\Yadm\get_object_changed_values($obj)); }
public function testShouldAllowAddDateValueToArrayAndConvertToISO() { $now = new \DateTime('now'); $timestamp = (int) $now->format('U'); $iso = $now->format(DATE_ISO8601); $obj = new CastTest(); $obj->addValue('aNamespace.aKey', $now); $this->assertSame([['unix' => $timestamp, 'iso' => $iso]], $obj->getValue('aNamespace.aKey')); $this->assertSame(['aNamespace' => ['aKey' => [['unix' => $timestamp, 'iso' => $iso]]]], \Makasim\Yadm\get_object_values($obj)); $this->assertSame(['aNamespace' => ['aKey' => [['unix' => $timestamp, 'iso' => $iso]]]], \Makasim\Yadm\get_object_changed_values($obj)); }
public function testShouldAllowAddSelfObjectsAndGetPreviouslySet() { $subObjFoo = new SubObjectTest(); $subObjFoo->setValue('aSubName.aSubKey', 'aFooVal'); $subObjBar = new SubObjectTest(); $subObjBar->setValue('aSubName.aSubKey', 'aBarVal'); $obj = new ObjectTest(); $obj->addObject('self.aKey', $subObjFoo); $obj->addObject('self.aKey', $subObjBar); $objs = $obj->getObjects('self.aKey', SubObjectTest::class); $objs = iterator_to_array($objs); $this->assertSame([$subObjFoo, $subObjBar], $objs); $this->assertSame(['self' => ['aKey' => [['aSubName' => ['aSubKey' => 'aFooVal']], ['aSubName' => ['aSubKey' => 'aBarVal']]]]], \Makasim\Yadm\get_object_values($obj)); $this->assertSame(['aSubName' => ['aSubKey' => 'aFooVal']], \Makasim\Yadm\get_object_values($subObjFoo)); $this->assertSame(['aSubName' => ['aSubKey' => 'aBarVal']], \Makasim\Yadm\get_object_values($subObjBar)); }