Exemple #1
0
 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));
 }
Exemple #2
0
 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));
 }
Exemple #3
0
 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));
 }