/**
  * Overwrites setting with given name.
  *
  * @param string       $name
  * @param string|array $value
  * @param string       $profile
  *
  * @throws \LogicException
  */
 public function set($name, $value, $profile = 'default')
 {
     switch (gettype($value)) {
         case 'boolean':
             $type = Setting::TYPE_BOOLEAN;
             break;
         case 'array':
             $type = Setting::TYPE_ARRAY;
             break;
         case 'object':
             $type = Setting::TYPE_OBJECT;
             break;
         default:
             $type = Setting::TYPE_STRING;
             break;
     }
     $setting = new Setting();
     $setting->setId($profile . '_' . $name);
     $setting->setName($name);
     $setting->setDescription('ongr_settings.' . $this->translator->trans($name));
     $setting->setData((object) ['value' => $value]);
     $setting->setType($type);
     $setting->setProfile($profile);
     $this->manager->persist($setting);
     $this->manager->commit();
     $this->manager->flush();
     $this->eventDispatcher->dispatch('ongr_settings.setting_change', new SettingChangeEvent('save'));
 }
 /**
  * {@inheritdoc}
  */
 protected function setUp()
 {
     parent::setUp();
     static::bootKernel(['environment' => 'test_container_creation']);
     /** @var Client $client */
     $this->client = static::$kernel->getContainer()->get('test.client');
     /** @var Manager $manager */
     $manager = static::$kernel->getContainer()->get('es.manager');
     // There is something wrong with ElasticsearchTestCase method getDataArray,
     // if we don't create in here all test data, it's not existing when test is run.
     $content = new Setting();
     $content->setId('foo_default');
     $content->setName('test');
     $content->setProfile('default');
     $content->setDescription('Description');
     $content->setType(Setting::TYPE_ARRAY);
     $content->setData((object) ['value' => 'testData']);
     $manager->persist($content);
     $content = new Setting();
     $content->setId('foo');
     $content->setName('test2');
     $content->setProfile('profile_foo.com');
     $content->setDescription('Description');
     $content->setType(Setting::TYPE_ARRAY);
     $content->setData((object) ['value' => 'testData']);
     $manager->persist($content);
     $content = new Setting();
     $content->setId('bar');
     $content->setName('test2');
     $content->setProfile('profile_foo.com');
     $content->setDescription('Description');
     $content->setType(Setting::TYPE_ARRAY);
     $content->setData((object) ['value' => 'testData']);
     $manager->persist($content);
     $manager->commit();
 }
 /**
  * Creates setting model.
  *
  * @param string $name
  * @param string $type
  * @param mixed  $value
  * @param string $profile
  *
  * @return Setting
  */
 private function getSetting($name, $type, $value, $profile = 'default')
 {
     $setting = new Setting();
     $setting->setId($profile . '_' . $name);
     $setting->setName($name);
     $setting->setDescription('ongr_settings.' . $name);
     $setting->setProfile($profile);
     $setting->setType($type);
     $setting->setData(['value' => $value]);
     $setting->setScore(1.0);
     return $setting;
 }