function it_applies_a_filter_on_enabled_field_value(FilterDatasourceAdapterInterface $datasource, $utility, ProductRepositoryInterface $repository, ProductQueryBuilderInterface $pqb, QueryBuilder $qb)
 {
     $datasource->getQueryBuilder()->willReturn($qb);
     $utility->getProductRepository()->willReturn($repository);
     $repository->getProductQueryBuilder($qb)->willReturn($pqb);
     $pqb->addFieldFilter('enabled', '=', 1)->shouldBeCalled();
     $this->apply($datasource, ['type' => null, 'value' => [0 => 1]]);
 }
 function it_applies_a_filter_on_not_complete_products(FilterDatasourceAdapterInterface $datasource, $utility, ProductRepositoryInterface $repository, ProductQueryBuilderInterface $pqb, QueryBuilder $qb)
 {
     $datasource->getQueryBuilder()->willReturn($qb);
     $utility->getProductRepository()->willReturn($repository);
     $repository->getProductQueryBuilder($qb)->willReturn($pqb);
     $pqb->addFieldFilter('completeness', '<', 100)->shouldBeCalled();
     $this->apply($datasource, ['type' => null, 'value' => 2]);
 }
 function it_applies_a_filter_on_product_groups(FilterDatasourceAdapterInterface $datasource, $utility, ProductRepositoryInterface $repository, ProductQueryBuilderInterface $pqb, QueryBuilder $qb)
 {
     $datasource->getQueryBuilder()->willReturn($qb);
     $utility->getProductRepository()->willReturn($repository);
     $repository->getProductQueryBuilder($qb)->willReturn($pqb);
     $pqb->addFieldFilter('groups', 'IN', [2, 3])->shouldBeCalled();
     $this->apply($datasource, ['type' => null, 'value' => [2, 3]]);
 }
 function it_applies_a_filter_on_product_when_its_in_an_expected_group(FilterDatasourceAdapterInterface $datasource, $utility, ProductRepositoryInterface $repository, ProductQueryBuilderInterface $pqb, QueryBuilder $qb, RequestParametersExtractorInterface $extractor)
 {
     $extractor->getDatagridParameter('currentGroup')->willReturn(12);
     $datasource->getQueryBuilder()->willReturn($qb);
     $utility->getProductRepository()->willReturn($repository);
     $repository->getProductQueryBuilder($qb)->willReturn($pqb);
     $pqb->addFieldFilter('groups', 'IN', [12])->shouldBeCalled();
     $this->apply($datasource, ['type' => null, 'value' => 1]);
 }
 function it_applies_a_filter_on_product_when_its_in_an_expected_association(FilterDatasourceAdapterInterface $datasource, $utility, ProductRepositoryInterface $prodRepository, ProductQueryBuilderInterface $pqb, QueryBuilder $qb, $extractor, $assocRepository, ProductManager $productManager, AssociationType $assocType, AbstractAssociation $association, AbstractProduct $productOwner, AbstractProduct $productAssociatedOne, AbstractProduct $productAssociatedTwo)
 {
     $extractor->getDatagridParameter('_parameters', [])->willReturn([]);
     $extractor->getDatagridParameter('associationType')->willReturn(1);
     $assocRepository->findOneBy(Argument::any())->willReturn($assocType);
     $extractor->getDatagridParameter('product')->willReturn(11);
     $utility->getProductManager()->willReturn($productManager);
     $productManager->find(11)->willReturn($productOwner);
     $productOwner->getAssociationForType($assocType)->willReturn($association);
     $association->getProducts()->willReturn([$productAssociatedOne, $productAssociatedTwo]);
     $productAssociatedOne->getId()->willReturn(12);
     $productAssociatedTwo->getId()->willReturn(13);
     $datasource->getQueryBuilder()->willReturn($qb);
     $utility->getProductRepository()->willReturn($prodRepository);
     $prodRepository->getProductQueryBuilder($qb)->willReturn($pqb);
     $pqb->addFieldFilter('id', 'IN', [12, 13])->shouldBeCalled();
     $this->apply($datasource, ['type' => null, 'value' => 1]);
 }