/**
  * Test new index created and old deleted when field renamed
  */
 public function testRenameField()
 {
     $entityConfig = new Config(new EntityConfigId('extend', self::ENTITY_CLASS_NAME));
     $entityConfig->set('index', ['testField' => ['testField']]);
     $configProvider = $this->getMockBuilder('Oro\\Bundle\\EntityConfigBundle\\Provider\\ConfigProvider')->disableOriginalConstructor()->getMock();
     $configProvider->expects($this->once())->method('getConfig')->with(self::ENTITY_CLASS_NAME)->will($this->returnValue($entityConfig));
     $configManager = $this->getMockBuilder('Oro\\Bundle\\EntityConfigBundle\\Config\\ConfigManager')->disableOriginalConstructor()->getMock();
     $configManager->expects($this->once())->method('getProvider')->with('extend')->will($this->returnValue($configProvider));
     $extendConfigProvider = $this->getMockBuilder('Oro\\Bundle\\EntityConfigBundle\\Provider\\ConfigProvider')->disableOriginalConstructor()->getMock();
     $event = new RenameFieldEvent(self::ENTITY_CLASS_NAME, 'testField', 'newName', $configManager);
     $configSubscriber = new ConfigSubscriber($extendConfigProvider);
     $configSubscriber->renameField($event);
     $this->assertEquals(['newName' => ['testField']], $entityConfig->get('index'));
 }
 /**
  * Test class is NOT extend and should NOT be persisted
  */
 public function testNewNotExtendEntity()
 {
     $configModel = new EntityConfigModel('Oro\\Bundle\\EntityExtendBundle\\Tests\\Unit\\Fixtures\\TestClass2');
     $entityConfig = new Config(new EntityConfigId('Oro\\Bundle\\EntityExtendBundle\\Tests\\Unit\\Fixtures\\TestClass2', 'extend'));
     /**
      * value of NEW Config should be empty
      */
     $this->assertEquals([], $entityConfig->all());
     $configProvider = $this->getMockBuilder('Oro\\Bundle\\EntityConfigBundle\\Provider\\ConfigProvider')->disableOriginalConstructor()->getMock();
     $configProvider->expects($this->any())->method('getConfig')->will($this->returnValue($entityConfig));
     $configManager = $this->getMockBuilder('Oro\\Bundle\\EntityConfigBundle\\Config\\ConfigManager')->disableOriginalConstructor()->setMethods(['getProvider'])->getMock();
     $configManager->expects($this->any())->method('getProvider')->with('extend')->will($this->returnValue($configProvider));
     $event = new EntityConfigEvent($configModel->getClassName(), $configManager);
     $extendConfigProvider = $this->getMockBuilder('Oro\\Bundle\\EntityConfigBundle\\Provider\\ConfigProvider')->disableOriginalConstructor()->getMock();
     $configSubscriber = new ConfigSubscriber($extendConfigProvider);
     $configSubscriber->updateEntityConfig($event);
     /** @var ConfigManager $cm */
     $cm = $event->getConfigManager();
     $this->assertObjectHasAttribute('persistConfigs', $cm);
     $this->assertAttributeEquals(null, 'persistConfigs', $cm);
 }
 protected function runPersistConfig($eventConfig, $entityConfig, $changeSet)
 {
     $configProvider = $this->getMockBuilder('Oro\\Bundle\\EntityConfigBundle\\Provider\\ConfigProvider')->disableOriginalConstructor()->getMock();
     $configProvider->expects($this->any())->method('getConfig')->will($this->returnValue($entityConfig));
     $configProvider->expects($this->any())->method('getConfigById')->will($this->returnValue($eventConfig));
     $configManager = $this->getMockBuilder('Oro\\Bundle\\EntityConfigBundle\\Config\\ConfigManager')->disableOriginalConstructor()->setMethods(['getProviderBag', 'getProvider', 'getConfigChangeSet'])->getMock();
     $configManager->expects($this->any())->method('getProvider')->with('extend')->will($this->returnValue($configProvider));
     $configManager->expects($this->any())->method('getConfigChangeSet')->with($eventConfig)->will($this->returnValue($changeSet));
     $this->event = new PersistConfigEvent($eventConfig, $configManager);
     $extendConfigProvider = clone $configProvider;
     $extendConfigProvider->expects($this->any())->method('getConfig')->will($this->returnValue($eventConfig));
     $this->configSubscriber = new ConfigSubscriber($extendConfigProvider);
     $this->configSubscriber->persistConfig($this->event);
 }