protected function setUp() { $eventDispatcher = $this->getMockBuilder('Symfony\\Component\\EventDispatcher\\EventDispatcher')->disableOriginalConstructor()->getMock(); $metadataFactory = $this->getMockBuilder('Metadata\\MetadataFactory')->disableOriginalConstructor()->getMock(); $modelManager = $this->getMockBuilder('Oro\\Bundle\\EntityConfigBundle\\Config\\ConfigModelManager')->disableOriginalConstructor()->getMock(); $auditManager = $this->getMockBuilder('Oro\\Bundle\\EntityConfigBundle\\Audit\\AuditManager')->disableOriginalConstructor()->getMock(); $this->configCache = $this->getMockBuilder('Oro\\Bundle\\EntityConfigBundle\\Config\\ConfigCache')->disableOriginalConstructor()->getMock(); $this->configManager = new ConfigManager($eventDispatcher, $metadataFactory, $modelManager, $auditManager, $this->configCache); $this->configProvider = $this->getMockBuilder('Oro\\Bundle\\EntityConfigBundle\\Provider\\ConfigProvider')->disableOriginalConstructor()->getMock(); $this->configProvider->expects($this->any())->method('getScope')->willReturn('extend'); $this->configManager->addProvider($this->configProvider); }
public function testUpdateConfigFieldModelWithForceForCustomField() { $configId = new FieldConfigId('entity', self::ENTITY_CLASS, 'id', 'int'); $metadata = $this->getEntityMetadata(self::ENTITY_CLASS); $idFieldMetadata = $this->getFieldMetadata(self::ENTITY_CLASS, 'id', ['translatable1' => 'labelVal1', 'other1' => 'otherVal1', 'translatable2' => 'labelVal2', 'other2' => 'otherVal2']); $metadata->addPropertyMetadata($idFieldMetadata); $this->metadataFactory->expects($this->once())->method('getMetadataForClass')->with(self::ENTITY_CLASS)->willReturn($metadata); $propertyConfigContainer = $this->getPropertyConfigContainerMock(); $propertyConfigContainer->expects($this->once())->method('getDefaultValues')->with(PropertyConfigContainer::TYPE_FIELD, 'int')->willReturn(['translatable10' => 'labelVal10', 'other10' => 'otherVal10']); $propertyConfigContainer->expects($this->once())->method('getTranslatableValues')->with(PropertyConfigContainer::TYPE_FIELD)->willReturn(['translatable1', 'translatable2', 'translatable10', 'auto_generated']); $this->configProvider->expects($this->any())->method('getPropertyConfig')->willReturn($propertyConfigContainer); $config = $this->getConfig($configId, ['translatable2' => 'labelVal2_old', 'other2' => 'otherVal2_old']); $this->configProvider->expects($this->once())->method('getConfig')->with(self::ENTITY_CLASS)->willReturn($config); $extendConfig = $this->getConfig(new FieldConfigId('extend', self::ENTITY_CLASS, 'id')); $extendConfig->set('owner', ExtendScope::OWNER_CUSTOM); $extendConfigProvider = $this->getConfigProviderMock(); $extendConfigProvider->expects($this->any())->method('getScope')->willReturn('extend'); $this->configManager->addProvider($extendConfigProvider); $extendConfigProvider->expects($this->once())->method('hasConfig')->with(self::ENTITY_CLASS, 'id')->willReturn(true); $extendConfigProvider->expects($this->exactly(2))->method('getConfig')->with(self::ENTITY_CLASS, 'id')->willReturn($extendConfig); $extendPropertyConfigContainer = $this->getPropertyConfigContainerMock(); $extendPropertyConfigContainer->expects($this->once())->method('getDefaultValues')->with(PropertyConfigContainer::TYPE_FIELD)->willReturn(['owner' => ExtendScope::OWNER_SYSTEM]); $extendPropertyConfigContainer->expects($this->once())->method('getTranslatableValues')->with(PropertyConfigContainer::TYPE_FIELD)->willReturn([]); $extendConfigProvider->expects($this->any())->method('getPropertyConfig')->willReturn($extendPropertyConfigContainer); $extendConfigProvider->expects($this->never())->method('persist'); $expectedConfig = $this->getConfig($configId, ['translatable2' => 'labelVal2_old', 'other2' => 'otherVal2_old', 'translatable10' => 'labelVal10', 'other10' => 'otherVal10', 'translatable1' => 'labelVal1', 'other1' => 'otherVal1', 'auto_generated' => 'oro.entityconfig.tests.unit.fixture.demoentity.id.auto_generated']); $this->configManager->updateConfigFieldModel(self::ENTITY_CLASS, 'id', true); $this->assertEquals($expectedConfig, $this->configManager->getUpdateConfig()[0]); }