/** * {@inheritdoc} */ protected function isReadOnly($options) { /** @var EntityConfigId $configId */ $configId = $options['config_id']; $className = $configId->getClassName(); if (!empty($className) && $this->typeHelper->isDictionary($className) && !$this->typeHelper->isSupportActivityEnabled($className)) { return true; } return parent::isReadOnly($options); }
/** * {@inheritdoc} */ protected function isReadOnly($options) { /** @var EntityConfigId $configId */ $configId = $options['config_id']; $className = $configId->getClassName(); if (!empty($className)) { if ($this->typeHelper->isAssociationOwningSideEntity($className, $options['association_class'])) { return true; } if ($this->typeHelper->isDictionary($className)) { return true; } } return parent::isReadOnly($options); }
public function testGetOwningSideEntities() { $config1 = new Config(new EntityConfigId('grouping', 'Test\\Entity1')); $config1->set('groups', ['some_group', 'another_group']); $config2 = new Config(new EntityConfigId('grouping', 'Test\\Entity2')); $config2->set('groups', ['another_group']); $config3 = new Config(new EntityConfigId('grouping', 'Test\\Entity3')); $configs = [$config1, $config2, $config3]; $configProvider = $this->getConfigProviderMock(); $this->configManager->expects($this->exactly(2))->method('getProvider')->with('grouping')->will($this->returnValue($configProvider)); $configProvider->expects($this->exactly(2))->method('getConfigs')->will($this->returnValue($configs)); $this->assertEquals(['Test\\Entity1'], $this->typeHelper->getOwningSideEntities('some_group')); // one more call to check caching $this->assertEquals(['Test\\Entity1'], $this->typeHelper->getOwningSideEntities('some_group')); // call with another group to check a caching has no collisions $this->assertEquals(['Test\\Entity1', 'Test\\Entity2'], $this->typeHelper->getOwningSideEntities('another_group')); }