/** * Apply marketing list grid mixin. * * @param PreBuild $event */ public function onPreBuild(PreBuild $event) { $config = $event->getConfig(); $parameters = $event->getParameters(); $gridName = $config->getName(); if (!$this->isApplicable($gridName, $parameters)) { return; } $gridMixin = $parameters->get(self::MIXIN); if (empty($this->appliedFor[$gridName . $gridMixin])) { $this->dataGridConfigurationHelper->extendConfiguration($config, $gridMixin); $this->appliedFor[$gridName . $gridMixin] = true; } }
/** * @param string $gridName * @param bool $hasParameter * @param bool $isApplicable * * @dataProvider preBuildDataProvider */ public function testOnPreBuild($gridName, $hasParameter, $isApplicable) { $event = $this->getMockBuilder('Oro\\Bundle\\DataGridBundle\\Event\\PreBuild')->disableOriginalConstructor()->getMock(); $config = $this->getMockBuilder('Oro\\Bundle\\DataGridBundle\\Datagrid\\Common\\DatagridConfiguration')->disableOriginalConstructor()->getMock(); $event->expects($this->once())->method('getConfig')->will($this->returnValue($config)); $config->expects($this->once())->method('getName')->will($this->returnValue($gridName)); $parameters = []; if ($hasParameter) { $parameters = [MarketingListItemsListener::MIXIN => self::MIXIN_NAME]; } $event->expects($this->once())->method('getParameters')->will($this->returnValue(new ParameterBag($parameters))); if ($hasParameter) { $this->segmentHelper->expects($this->once())->method('getSegmentIdByGridName')->with($this->equalTo($gridName))->will($this->returnValue((int) $isApplicable)); $this->segmentHelper->expects($this->any())->method('getMarketingListBySegment')->with($this->equalTo((int) $isApplicable))->will($this->returnValue(new MarketingList())); } if ($isApplicable && $hasParameter) { $this->dataGridHelper->expects($this->once())->method('extendConfiguration')->with($this->equalTo($config), $this->equalTo(self::MIXIN_NAME)); } else { $this->dataGridHelper->expects($this->never())->method('extendConfiguration'); } $this->listener->onPreBuild($event); }
/** * @param string $gridName * @param array $existingParameters * @param array $additionalParameters * @param array $expectedParameters * * @dataProvider extendConfigurationDataProvider */ public function testExtendConfiguration($gridName, array $existingParameters, array $additionalParameters, array $expectedParameters) { $this->configProvider->expects($this->once())->method('getConfiguration')->will($this->returnValue(DatagridConfiguration::create($additionalParameters))); $this->assertEquals(DatagridConfiguration::create($expectedParameters)->toArray(), $this->helper->extendConfiguration(DatagridConfiguration::create($existingParameters), $gridName)->toArray()); }