/** * Test method acceptMetadata */ public function testAcceptMetadata() { $data = MetadataObject::create([]); $extMock = $this->getMockForAbstractClass('Oro\\Bundle\\DataGridBundle\\Extension\\ExtensionVisitorInterface'); $extMock->expects($this->once())->method('visitMetadata')->with($this->config, $data); $this->acceptor->addExtension($extMock); $this->acceptor->acceptMetadata($data); }
function it_gives_the_label_of_a_filter($manager, $configurator, DatagridInterface $datagrid, Acceptor $acceptor, DatagridConfiguration $configuration) { $acceptor->getConfig()->willReturn($configuration); $datagrid->getAcceptor()->willReturn($acceptor); $manager->getDatagrid('product-grid')->willReturn($datagrid); $configurator->configure($configuration)->shouldBeCalled(); $configuration->offsetGetByPath('[filters][columns][foo][label]')->willReturn('Foo'); $this->filterLabel('foo')->shouldReturn('Foo'); }
function it_throws_an_exception_if_datasource_is_not_an_instance_of_productdatasource($parametersParser, DatagridInterface $grid, Acceptor $acceptor, MassActionExtension $massActionExtension, MassActionInterface $massActionInterface, DatasourceInterface $datasource, ProductMassActionRepositoryInterface $massActionRepository) { $massActionName = 'mass_edit_action'; $request = new Request(['inset' => 'inset', 'values' => 1, 'gridName' => 'grid', 'massAction' => $massActionInterface, 'actionName' => $massActionName]); $parametersParser->parse($request)->willReturn(['inset' => 'inset', 'values' => 1]); $datasource->getMassActionRepository()->willReturn($massActionRepository); $massActionExtension->getMassAction($massActionName, $grid)->willReturn($massActionInterface); $acceptor->getExtensions()->willReturn([$massActionExtension]); $this->shouldThrow(new \LogicException('getRawFilters is only implemented for ProductDatasource'))->during('getRawFilters', [$request]); }
function it_configure_choices_and_skip_disallowed($manager, $configurator, DatagridInterface $datagrid, Acceptor $acceptor, DatagridConfiguration $configuration, OptionsResolver $resolver) { $acceptor->getConfig()->willReturn($configuration); $datagrid->getAcceptor()->willReturn($acceptor); $manager->getDatagrid('foo-grid')->willReturn($datagrid); $configurator->configure($configuration)->shouldBeCalled(); $configuration->offsetGetByPath('[filters][columns]')->willReturn(['foobar' => ['label' => 'FooBar'], 'foo-1' => ['label' => 'Foo 1'], 'foo-2' => ['label' => 'Foo 2'], 'bar-1' => ['label' => 'Bar 1'], 'scope' => ['label' => 'Scope'], 'locale' => ['label' => 'Locale']]); $configuration->offsetGetByPath('[source][attributes_configuration]')->willReturn(['foo-1' => ['group' => 'foo'], 'foo-2' => ['group' => 'foo'], 'bar-1' => ['group' => 'bar']]); $resolver->setDefaults(['choices' => ['System' => ['foobar' => 'FooBar'], 'foo' => ['foo-1' => 'Foo 1', 'foo-2' => 'Foo 2'], 'bar' => ['bar-1' => 'Bar 1']]])->shouldBeCalled(); $this->configureOptions($resolver); }
function it_applies_when_user_preference_is_filled_and_skip_disallowed($context, UserInterface $user, DatagridInterface $datagrid, Acceptor $acceptor, DatagridConfiguration $config, BuildAfter $event) { $config->offsetGet('filters')->willReturn(['columns' => ['foo' => [], 'baz' => [], 'scope' => [], 'locale' => []]]); $config->offsetSetByPath('[filters][columns][foo][enabled]', true)->shouldBeCalled(); $config->offsetSetByPath('[filters][columns][baz][enabled]', false)->shouldBeCalled(); $config->offsetSetByPath('[filters][columns][bar][enabled]', Argument::any())->shouldNotBeCalled(); $config->offsetSetByPath('[filters][columns][scope][enabled]', Argument::any())->shouldNotBeCalled(); $config->offsetSetByPath('[filters][columns][locale][enabled]', Argument::any())->shouldNotBeCalled(); $user->getProductGridFilters()->willReturn(['foo', 'bar']); $context->getUser()->willReturn($user); $acceptor->getConfig()->willReturn($config); $datagrid->getAcceptor()->willReturn($acceptor); $event->getDatagrid()->willReturn($datagrid); $this->onBuildAfter($event); }
public function testBuildAfter() { $config = DatagridConfiguration::createNamed(self::TEST_GRID_NAME, []); $acceptor = new Acceptor(); $acceptor->setConfig($config); $parameters = $this->getMock('Oro\\Bundle\\DataGridBundle\\Datagrid\\ParameterBag'); $grid = new Datagrid(self::TEST_GRID_NAME, $config, $parameters); $grid->setAcceptor($acceptor); $qb = $this->getMockBuilder('Doctrine\\ORM\\QueryBuilder')->disableOriginalConstructor()->getMock(); $qb->expects($this->once())->method('getDQLPart')->with($this->equalTo('from'))->will($this->returnValue([new From(self::TEST_ENTITY_NAME, 'alias')])); $datasourceMock = $this->getMockBuilder('Oro\\Bundle\\DataGridBundle\\Datasource\\Orm\\OrmDatasource')->disableOriginalConstructor()->getMock(); $datasourceMock->expects($this->any())->method('getQueryBuilder')->will($this->returnValue($qb)); $this->generator->expects($this->once())->method('generate')->with(self::TEST_ENTITY_NAME)->will($this->returnValue([])); $grid->setDatasource($datasourceMock); $event = new BuildAfter($grid); $this->listener->buildAfter($event); $this->assertContains('oronavigation/js/content/grid-builder', $config->offsetGetByPath(sprintf('%s[%s]', ToolbarExtension::OPTIONS_PATH, MetadataObject::REQUIRED_MODULES_KEY)), 'Should add require js module'); }
/** * {@inheritDoc} */ public function getAcceptedDatasource() { $this->acceptor->acceptDatasource($this->getDatasource()); return $this->getDatasource(); }