protected function setUp() { $this->select = $this->getMockBuilder('\\Magento\\Framework\\DB\\Select')->disableOriginalConstructor()->setMethods(['from', 'joinLeft', 'where', 'joinInner'])->getMock(); $this->adapter = $this->getMockBuilder('\\Magento\\Framework\\DB\\Adapter\\AdapterInterface')->disableOriginalConstructor()->setMethods(['select', 'quoteInto'])->getMockForAbstractClass(); $this->adapter->expects($this->once())->method('select')->will($this->returnValue($this->select)); $this->resource = $this->getMockBuilder('\\Magento\\Framework\\App\\Resource')->disableOriginalConstructor()->setMethods(['getConnection', 'getTableName'])->getMock(); $this->resource->expects($this->any())->method('getConnection')->with(\Magento\Framework\App\Resource::DEFAULT_READ_RESOURCE)->will($this->returnValue($this->adapter)); $this->request = $this->getMockBuilder('\\Magento\\Framework\\Search\\RequestInterface')->disableOriginalConstructor()->setMethods(['getIndex', 'getDimensions', 'getQuery'])->getMockForAbstractClass(); $this->request->expects($this->once())->method('getQuery')->willReturn($this->getMockBuilder('Magento\\Framework\\Search\\Request\\QueryInterface')->getMockForAbstractClass()); $this->config = $this->getMockBuilder('\\Magento\\Framework\\App\\Config\\ScopeConfigInterface')->disableOriginalConstructor()->setMethods(['isSetFlag'])->getMockForAbstractClass(); $this->storeManager = $this->getMockBuilder('Magento\\Store\\Model\\StoreManagerInterface')->getMock(); $this->scopeResolver = $this->getMockBuilder('\\Magento\\Indexer\\Model\\ScopeResolver\\IndexScopeResolver')->disableOriginalConstructor()->getMock(); $this->conditionManager = $this->getMockBuilder('\\Magento\\Framework\\Search\\Adapter\\Mysql\\ConditionManager')->setMethods(['combineQueries', 'wrapBrackets', 'generateCondition'])->disableOriginalConstructor()->getMock(); $this->conditionManager->expects($this->any())->method('combineQueries')->willReturnCallback(function (array $queries, $expression) { return implode(' ' . $expression . ' ', $queries); }); $this->conditionManager->expects($this->any())->method('wrapBrackets')->willReturnCallback(function ($expression) { return '(' . $expression . ')'; }); $this->conditionManager->expects($this->any())->method('generateCondition')->willReturnCallback(function ($left, $operator, $right) { return $left . $operator . $right; }); $objectManagerHelper = new ObjectManagerHelper($this); $this->target = $objectManagerHelper->getObject('Magento\\CatalogSearch\\Model\\Search\\IndexBuilder', ['resource' => $this->resource, 'config' => $this->config, 'storeManager' => $this->storeManager, 'conditionManager' => $this->conditionManager, 'scopeResolver' => $this->scopeResolver]); }
protected function setUp() { $objectManagerHelper = new ObjectManagerHelper($this); $this->conditionManager = $this->getMockBuilder('\\Magento\\Framework\\Search\\Adapter\\Mysql\\ConditionManager')->disableOriginalConstructor()->setMethods(['wrapBrackets'])->getMock(); $this->scopeResolver = $this->getMockBuilder('\\Magento\\Framework\\App\\ScopeResolverInterface')->disableOriginalConstructor()->setMethods(['getScope'])->getMockForAbstractClass(); $this->scope = $this->getMockBuilder('\\Magento\\Framework\\App\\ScopeInterface')->disableOriginalConstructor()->setMethods(['getId'])->getMockForAbstractClass(); $this->scopeResolver->expects($this->any())->method('getScope')->will($this->returnValue($this->scope)); $this->config = $this->getMockBuilder('\\Magento\\Eav\\Model\\Config')->disableOriginalConstructor()->setMethods(['getAttribute'])->getMock(); $this->attribute = $this->getMockBuilder('\\Magento\\Eav\\Model\\Entity\\Attribute\\AbstractAttribute')->disableOriginalConstructor()->setMethods(['getBackendTable', 'isStatic', 'getAttributeId', 'getAttributeCode', 'getFrontendInput'])->getMockForAbstractClass(); $this->resource = $resource = $this->getMockBuilder('\\Magento\\Framework\\App\\ResourceConnection')->disableOriginalConstructor()->setMethods(['getConnection', 'getTableName'])->getMock(); $this->connection = $this->getMockBuilder('\\Magento\\Framework\\DB\\Adapter\\AdapterInterface')->disableOriginalConstructor()->setMethods(['select', 'getIfNullSql', 'quote'])->getMockForAbstractClass(); $this->select = $this->getMockBuilder('\\Magento\\Framework\\DB\\Select')->disableOriginalConstructor()->setMethods(['from', 'join', 'where', '__toString', 'joinLeft', 'columns', 'having'])->getMock(); $this->connection->expects($this->any())->method('select')->will($this->returnValue($this->select)); $this->connection->expects($this->any())->method('quoteIdentifier')->will($this->returnArgument(0)); $resource->expects($this->atLeastOnce())->method('getConnection')->will($this->returnValue($this->connection)); $this->filter = $this->getMockBuilder('\\Magento\\Framework\\Search\\Request\\FilterInterface')->disableOriginalConstructor()->setMethods(['getField', 'getValue', 'getType'])->getMockForAbstractClass(); $this->conditionManager->expects($this->any())->method('wrapBrackets')->with($this->select)->will($this->returnCallback(function ($select) { return '(' . $select . ')'; })); $this->tableMapper = $this->getMockBuilder('\\Magento\\CatalogSearch\\Model\\Search\\TableMapper')->disableOriginalConstructor()->getMock(); $this->metadataPoolMock = $this->getMockBuilder(\Magento\Framework\Model\Entity\MetadataPool::class)->disableOriginalConstructor()->getMock(); $metadata = $this->getMockBuilder(EntityMetadata::class)->disableOriginalConstructor()->getMock(); $this->metadataPoolMock->expects($this->any())->method('getMetadata')->willReturn($metadata); $metadata->expects($this->any())->method('getLinkField')->willReturn('entity_id'); $this->target = $objectManagerHelper->getObject('Magento\\CatalogSearch\\Model\\Adapter\\Mysql\\Filter\\Preprocessor', ['conditionManager' => $this->conditionManager, 'scopeResolver' => $this->scopeResolver, 'config' => $this->config, 'resource' => $resource, 'attributePrefix' => 'attr_', 'metadataPool' => $this->metadataPoolMock, 'tableMapper' => $this->tableMapper]); }
/** * @SuppressWarnings(PHPMD.ExcessiveMethodLength) * @return void */ protected function setUp() { $this->select = $this->getMockBuilder('\\Magento\\Framework\\DB\\Select')->disableOriginalConstructor()->setMethods(['from', 'joinLeft', 'where', 'joinInner'])->getMock(); $this->connection = $this->getMockBuilder('\\Magento\\Framework\\DB\\Adapter\\AdapterInterface')->disableOriginalConstructor()->setMethods(['select', 'quoteInto'])->getMockForAbstractClass(); $this->connection->expects($this->once())->method('select')->will($this->returnValue($this->select)); $this->resource = $this->getMockBuilder('\\Magento\\Framework\\App\\ResourceConnection')->disableOriginalConstructor()->setMethods(['getConnection', 'getTableName'])->getMock(); $this->resource->expects($this->any())->method('getConnection')->will($this->returnValue($this->connection)); $this->request = $this->getMockBuilder('\\Magento\\Framework\\Search\\RequestInterface')->disableOriginalConstructor()->setMethods(['getIndex', 'getDimensions', 'getQuery'])->getMockForAbstractClass(); $this->config = $this->getMockBuilder('\\Magento\\Framework\\App\\Config\\ScopeConfigInterface')->disableOriginalConstructor()->setMethods(['isSetFlag'])->getMockForAbstractClass(); $this->storeManager = $this->getMockBuilder('Magento\\Store\\Model\\StoreManagerInterface')->getMock(); $this->scopeResolver = $this->getMockBuilder('\\Magento\\Framework\\Indexer\\ScopeResolver\\IndexScopeResolver')->disableOriginalConstructor()->getMock(); $this->conditionManager = $this->getMockBuilder('\\Magento\\Framework\\Search\\Adapter\\Mysql\\ConditionManager')->setMethods(['combineQueries', 'wrapBrackets', 'generateCondition'])->disableOriginalConstructor()->getMock(); $this->conditionManager->expects($this->any())->method('combineQueries')->willReturnCallback(function (array $queries, $expression) { return implode(' ' . $expression . ' ', $queries); }); $this->conditionManager->expects($this->any())->method('wrapBrackets')->willReturnCallback(function ($expression) { return '(' . $expression . ')'; }); $this->conditionManager->expects($this->any())->method('generateCondition')->willReturnCallback(function ($left, $operator, $right) { return $left . $operator . $right; }); $this->tableMapper = $this->getMockBuilder('\\Magento\\CatalogSearch\\Model\\Search\\TableMapper')->disableOriginalConstructor()->getMock(); $this->tableMapper->expects($this->once())->method('addTables')->with($this->select, $this->request)->willReturnArgument(0); $this->dimensionScopeResolver = $this->getMockForAbstractClass('\\Magento\\Framework\\App\\ScopeResolverInterface', [], '', false); $this->scopeInterface = $this->getMockForAbstractClass('\\Magento\\Framework\\App\\ScopeInterface', [], '', false); $this->stockConfiguration = $this->getMockBuilder('\\Magento\\CatalogInventory\\Api\\StockConfigurationInterface')->getMock(); $objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this); $this->target = $objectManagerHelper->getObject('Magento\\CatalogSearch\\Model\\Search\\IndexBuilder', ['resource' => $this->resource, 'config' => $this->config, 'storeManager' => $this->storeManager, 'conditionManager' => $this->conditionManager, 'scopeResolver' => $this->scopeResolver, 'tableMapper' => $this->tableMapper, 'dimensionScopeResolver' => $this->dimensionScopeResolver]); // Todo: \Magento\Framework\TestFramework\Unit\Helper\ObjectManager to do this automatically (MAGETWO-49793) $reflection = new \ReflectionClass(get_class($this->target)); $reflectionProperty = $reflection->getProperty('stockConfiguration'); $reflectionProperty->setAccessible(true); $reflectionProperty->setValue($this->target, $this->stockConfiguration); }
/** * Set up */ protected function setUp() { $objectManager = new ObjectManager($this); $this->requestFilter = $this->getMockBuilder('Magento\\Framework\\Search\\Request\\Filter\\Term')->setMethods(['getField', 'getValue'])->disableOriginalConstructor()->getMock(); $this->conditionManager = $this->getMockBuilder('\\Magento\\Framework\\Search\\Adapter\\Mysql\\ConditionManager')->disableOriginalConstructor()->setMethods(['generateCondition'])->getMock(); $this->conditionManager->expects($this->any())->method('generateCondition')->will($this->returnCallback(function ($field, $operator, $value) { return sprintf(is_array($value) ? '%s %s (%s)' : '%s %s %s', $field, $operator, is_array($value) ? implode(', ', $value) : $value); })); $this->filter = $objectManager->getObject('Magento\\Framework\\Search\\Adapter\\Mysql\\Filter\\Builder\\Term', ['conditionManager' => $this->conditionManager]); }
protected function setUp() { $this->objectManager = new ObjectManager($this); $this->scope = $this->getMockBuilder('\\Magento\\Framework\\App\\ScopeInterface')->disableOriginalConstructor()->setMethods(['getId'])->getMockForAbstractClass(); $this->scopeResolver = $this->getMockBuilder('\\Magento\\Framework\\App\\ScopeResolverInterface')->disableOriginalConstructor()->setMethods(['getScope'])->getMockForAbstractClass(); $this->dimension = $this->getMockBuilder('\\Magento\\Framework\\Search\\Request\\Dimension')->disableOriginalConstructor()->setMethods(['getName', 'getValue'])->getMock(); $this->conditionManager = $this->getMockBuilder('\\Magento\\Framework\\Search\\Adapter\\Mysql\\ConditionManager')->disableOriginalConstructor()->setMethods(['generateCondition'])->getMock(); $this->conditionManager->expects($this->any())->method('generateCondition')->will($this->returnCallback(function ($field, $operator, $value) { return sprintf('`%s` %s `%s`', $field, $operator, $value); })); $this->builder = $this->objectManager->getObject('Magento\\Framework\\Search\\Adapter\\Mysql\\Dimensions', ['conditionManager' => $this->conditionManager, 'scopeResolver' => $this->scopeResolver]); }
/** * @SuppressWarnings(PHPMD.NPathComplexity) * @SuppressWarnings(PHPMD.ExcessiveMethodLength) */ protected function setUp() { $objectManager = new ObjectManager($this); $this->conditionManager = $this->getMockBuilder('Magento\\Framework\\Search\\Adapter\\Mysql\\ConditionManager')->disableOriginalConstructor()->setMethods(['generateCondition', 'combineQueries', 'wrapBrackets'])->getMock(); $this->conditionManager->expects($this->any())->method('generateCondition')->will($this->returnCallback(function ($field, $operator, $value) { return sprintf('%s %s %s', $field, $operator, $value); })); $this->conditionManager->expects($this->any())->method('combineQueries')->will($this->returnCallback(function ($queries, $operator) { return implode(' ' . $operator . ' ', array_filter($queries, 'strlen')); })); $this->conditionManager->expects($this->any())->method('wrapBrackets')->will($this->returnCallback(function ($query) { return !empty($query) ? sprintf('(%s)', $query) : ''; })); $rangeBuilder = $this->getMockBuilder('\\Magento\\Framework\\Search\\Adapter\\Mysql\\Filter\\Builder\\Range')->setMethods(['buildFilter'])->disableOriginalConstructor()->getMock(); $rangeBuilder->expects($this->any())->method('buildFilter')->will($this->returnCallback(function (FilterInterface $filter, $isNegation) { /** * @var \Magento\Framework\Search\Request\Filter\Range $filter * @var \Magento\Framework\DB\Adapter\AdapterInterface $adapter */ $fromCondition = ''; if ($filter->getFrom() !== null) { $fromCondition = $this->conditionManager->generateCondition($filter->getField(), $isNegation ? '<' : '>=', $filter->getFrom()); } $toCondition = ''; if ($filter->getTo() !== null) { $toCondition = $this->conditionManager->generateCondition($filter->getField(), $isNegation ? '>=' : '<', $filter->getTo()); } $unionOperator = $isNegation ? Select::SQL_OR : Select::SQL_AND; return $this->conditionManager->combineQueries([$fromCondition, $toCondition], $unionOperator); })); $termBuilder = $this->getMockBuilder('\\Magento\\Framework\\Search\\Adapter\\Mysql\\Filter\\Builder\\Term')->setMethods(['buildFilter'])->disableOriginalConstructor()->getMock(); $termBuilder->expects($this->any())->method('buildFilter')->will($this->returnCallback(function (FilterInterface $filter, $isNegation) { /** * @var \Magento\Framework\Search\Request\Filter\Term $filter * @var \Magento\Framework\DB\Adapter\AdapterInterface $adapter */ return $this->conditionManager->generateCondition($filter->getField(), $isNegation ? '!=' : '=', $filter->getValue()); })); $this->preprocessor = $this->getMockBuilder('Magento\\Framework\\Search\\Adapter\\Mysql\\Filter\\PreprocessorInterface')->setMethods(['process'])->disableOriginalConstructor()->getMockForAbstractClass(); $this->preprocessor->expects($this->any())->method('process')->willReturnCallback(function ($filter, $isNegation, $queryString) { return $this->conditionManager->wrapBrackets($queryString); }); $this->builder = $objectManager->getObject('Magento\\Framework\\Search\\Adapter\\Mysql\\Filter\\Builder', ['range' => $rangeBuilder, 'term' => $termBuilder, 'conditionManager' => $this->conditionManager, 'preprocessor' => $this->preprocessor]); }
protected function setUp() { $objectManagerHelper = new ObjectManagerHelper($this); $this->conditionManager = $this->getMockBuilder('\\Magento\\Framework\\Search\\Adapter\\Mysql\\ConditionManager')->disableOriginalConstructor()->setMethods(['wrapBrackets'])->getMock(); $this->scopeResolver = $this->getMockBuilder('\\Magento\\Framework\\App\\ScopeResolverInterface')->disableOriginalConstructor()->setMethods(['getScope'])->getMockForAbstractClass(); $this->scope = $this->getMockBuilder('\\Magento\\Framework\\App\\ScopeInterface')->disableOriginalConstructor()->setMethods(['getId'])->getMockForAbstractClass(); $this->scopeResolver->expects($this->once())->method('getScope')->will($this->returnValue($this->scope)); $this->config = $this->getMockBuilder('\\Magento\\Eav\\Model\\Config')->disableOriginalConstructor()->setMethods(['getAttribute'])->getMock(); $this->attribute = $this->getMockBuilder('\\Magento\\Eav\\Model\\Entity\\Attribute\\AbstractAttribute')->disableOriginalConstructor()->setMethods(['getBackendTable', 'isStatic', 'getAttributeId'])->getMockForAbstractClass(); $this->resource = $resource = $this->getMockBuilder('\\Magento\\Framework\\App\\Resource')->disableOriginalConstructor()->setMethods(['getConnection', 'getTableName'])->getMock(); $this->connection = $this->getMockBuilder('\\Magento\\Framework\\DB\\Adapter\\AdapterInterface')->disableOriginalConstructor()->setMethods(['select', 'getIfNullSql'])->getMockForAbstractClass(); $this->select = $this->getMockBuilder('\\Magento\\Framework\\DB\\Select')->disableOriginalConstructor()->setMethods(['from', 'where', '__toString', 'joinLeft', 'columns', 'having'])->getMock(); $this->connection->expects($this->once())->method('select')->will($this->returnValue($this->select)); $resource->expects($this->atLeastOnce())->method('getConnection')->with(\Magento\Framework\App\Resource::DEFAULT_READ_RESOURCE)->will($this->returnValue($this->connection)); $this->filter = $this->getMockBuilder('\\Magento\\Framework\\Search\\Request\\FilterInterface')->disableOriginalConstructor()->setMethods(['getField', 'getValue'])->getMockForAbstractClass(); $this->conditionManager->expects($this->any())->method('wrapBrackets')->with($this->select)->will($this->returnCallback(function ($select) { return '(' . $select . ')'; })); $this->target = $objectManagerHelper->getObject('Magento\\CatalogSearch\\Model\\Adapter\\Mysql\\Filter\\Preprocessor', ['conditionManager' => $this->conditionManager, 'scopeResolver' => $this->scopeResolver, 'config' => $this->config, 'resource' => $resource, 'attributePrefix' => 'attr_']); }