Example #1
0
 /**
  * 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();
 }