public function testValueConfig() { $config = new Config(new EntityConfigId('testScope', 'testClass')); $values = array('firstKey' => 'firstValue', 'secondKey' => 'secondValue', 'thirdKey' => 3, 'fourthKey' => new \stdClass(), 'falseKey' => false, 'nullKey' => null); $config->setValues($values); $this->assertEquals($values, $config->all()); $this->assertEquals(array('firstKey' => 'firstValue'), $config->all(function ($value) { return $value == 'firstValue'; })); $this->assertEquals('firstValue', $config->get('firstKey')); $this->assertEquals('secondValue', $config->get('secondKey')); $this->assertTrue($config->is('secondKey')); $this->assertTrue($config->in('thirdKey', ['3'])); $this->assertFalse($config->in('thirdKey', ['3'], true)); $this->assertTrue($config->in('thirdKey', [3])); $this->assertTrue($config->in('thirdKey', [3], true)); $this->assertFalse($config->in('thirdKey', [100])); $this->assertTrue($config->has('secondKey')); $this->assertFalse($config->has('nonExistKey')); $this->assertTrue($config->has('falseKey')); $this->assertTrue($config->has('nullKey')); $this->assertNull($config->get('nonExistKey')); $this->assertFalse($config->get('falseKey')); $this->assertNull($config->get('nullKey')); $this->assertEquals($config, unserialize(serialize($config))); $config->set('secondKey', 'secondValue2'); $this->assertEquals('secondValue2', $config->get('secondKey')); $this->assertEquals(112233, $config->get('nonExistKey', false, 112233)); $this->assertEquals('default', $config->get('nonExistKey', false, 'default')); $this->assertEquals([], $config->get('nonExistKey', false, [])); $this->setExpectedException('Oro\\Bundle\\EntityConfigBundle\\Exception\\RuntimeException'); $config->get('nonExistKey', true); }
public function testConfigGet() { $config = new Config(new EntityConfigId('test', 'Entity1'), ['attr' => 'val', 'null_attr' => null]); self::assertBenchmark(__METHOD__, 0.05, function () use($config) { $config->get('attr'); $config->get('null_attr'); $config->get('undefined_attr'); }); }
public function preSubmitData(FormEvent $event) { $form = $event->getForm(); $data = $event->getData(); if (!$data) { $data = $form->getParent()->getData(); } if ($this->config->get('owner') === ExtendScope::OWNER_CUSTOM) { $targetEntity = $this->getArrayValue($data, 'target_entity'); $relationType = $this->config->getId()->getFieldType(); if ($relationType == 'manyToOne') { $this->addTargetField($form, 'target_field', $targetEntity, $this->getArrayValue($data, 'target_field')); } else { $this->addTargetField($form, 'target_grid', $targetEntity, $this->getArrayValue($data, 'target_grid'), 'Related entity data fields', true); $this->addTargetField($form, 'target_title', $targetEntity, $this->getArrayValue($data, 'target_title'), 'Related entity info title', true); $this->addTargetField($form, 'target_detailed', $targetEntity, $this->getArrayValue($data, 'target_detailed'), 'Related entity detailed', true); } } if ($event->getName() == FormEvents::PRE_SUBMIT) { $form->getParent()->setData(array_merge($form->getParent()->getData(), $data)); } }
public function testValueConfig() { $values = array('firstKey' => 'firstValue', 'secondKey' => 'secondValue', 'fourthKey' => new \stdClass()); $this->config->setValues($values); $this->assertEquals($values, $this->config->all()); $this->assertEquals(array('firstKey' => 'firstValue'), $this->config->all(function ($value) { return $value == 'firstValue'; })); $this->assertEquals('firstValue', $this->config->get('firstKey')); $this->assertEquals('secondValue', $this->config->get('secondKey')); $this->assertEquals(true, $this->config->is('secondKey')); $this->assertEquals(true, $this->config->has('secondKey')); $this->assertEquals(false, $this->config->has('thirdKey')); $this->assertEquals(null, $this->config->get('thirdKey')); $this->assertEquals($this->config, unserialize(serialize($this->config))); $this->config->set('secondKey', 'secondValue2'); $this->assertEquals('secondValue2', $this->config->get('secondKey')); $this->setExpectedException('Oro\\Bundle\\EntityConfigBundle\\Exception\\RuntimeException'); $this->config->get('thirdKey', true); }
/** * @param Config $extendConfig * * @return bool */ protected function checkAvailability(Config $extendConfig) { return $extendConfig->is('is_extend') && $extendConfig->get('owner') == ExtendScope::OWNER_CUSTOM && $extendConfig->in('state', [ExtendScope::STATE_ACTIVE, ExtendScope::STATE_UPDATE]); }
/** * @param Config $entityConfig * @param string $relationKey * @return bool */ protected function isApplicable($entityConfig, $relationKey) { return $entityConfig->has('relation') && (!isset($entityConfig->get('relation')[$relationKey]) || $entityConfig->get('relation')[$relationKey]['assign'] === false); }
protected function createTargetRelation(Config $fieldConfig, $relationKey) { $selfEntityClass = $fieldConfig->getId()->getClassName(); $targetEntityClass = $fieldConfig->get('target_entity'); $selfConfig = $this->extendConfigProvider->getConfig($selfEntityClass); $selfRelations = $selfConfig->get('relation'); $selfRelationConfig =& $selfRelations[$relationKey]; $selfRelationConfig['field_id'] = $fieldConfig; $targetConfig = $this->extendConfigProvider->getConfig($targetEntityClass); $targetRelations = $targetConfig->get('relation'); $targetRelationConfig =& $targetRelations[$relationKey]; $targetRelationConfig['target_field_id'] = $fieldConfig; $selfConfig->set('relation', $selfRelations); $targetConfig->set('relation', $targetRelations); $this->extendConfigProvider->persist($targetConfig); }