Author: N.V.
Inheritance: extends Scalr\Model\AbstractEntity
Example #1
0
 /**
  * @test
  * @functional
  * @dataProvider testSettingsDataProvider
  */
 public function testSaveOnlyModifiedSettings($entityId, $newSettings)
 {
     /* @var $entity TestEntity2 */
     $entity = TestEntity2::findPk($entityId);
     $composition = array_merge($entity->settings->getArrayCopy(), ...$newSettings);
     /* @var $entities TestEntity2[] */
     foreach ($newSettings as $idx => $settings) {
         $entities[$idx] = TestEntity2::findPk($entityId);
         //imitate reading properties
         $entity->settings->load();
     }
     foreach ($newSettings as $idx => $settings) {
         $entity = $entities[$idx];
         foreach ($settings as $name => $value) {
             $entity->settings[$name] = $value;
         }
         $entity->save();
     }
     $entity = TestEntity2::findPk($entityId);
     $settings = $entity->settings->getArrayCopy();
     foreach ($composition as $name => $value) {
         if ($value === false) {
             $this->assertArrayNotHasKey($name, $settings, "Setting '{$name}' not deleted");
         } else {
             $this->assertArrayHasKey($name, $settings, "Missed setting '{$name}'");
             $this->assertEquals($value, $settings[$name], "Setting '{$name}' has wrong value");
         }
     }
 }