Ejemplo n.º 1
0
    public function testStoreDocumentsFromSelect()
    {
        $sql = 'some SQL query';

        /** @var \Magento\Framework\DB\Select|\PHPUnit_Framework_MockObject_MockObject $select */
        $select = $this->getMockBuilder('Magento\Framework\DB\Select')
            ->disableOriginalConstructor()
            ->getMock();

        $table = $this->createTemporaryTable();

        $table->expects($this->any())
            ->method('getName')
            ->willReturn($this->tableName);

        $this->adapter->expects($this->once())
            ->method('insertFromSelect')
            ->with($select, $this->tableName)
            ->willReturn($sql);
        $this->adapter->expects($this->once())
            ->method('query')
            ->with($sql);

        $result = $this->model->storeDocumentsFromSelect($select);

        $this->assertEquals($table, $result);
    }
Ejemplo n.º 2
0
 /**
  * @param RequestInterface $request
  * @param Select $select
  * @param IndexBuilderInterface $indexBuilder
  * @param MatchContainer[] $matchQueries
  * @return Select
  */
 private function addMatchQueries(RequestInterface $request, Select $select, IndexBuilderInterface $indexBuilder, array $matchQueries)
 {
     $queriesCount = count($matchQueries);
     if ($queriesCount) {
         $table = $this->temporaryStorage->storeDocumentsFromSelect($select);
         foreach ($matchQueries as $matchContainer) {
             $queriesCount--;
             $matchScoreBuilder = $this->scoreBuilderFactory->create();
             $matchSelect = $this->matchBuilder->build($matchScoreBuilder, $indexBuilder->build($request), $matchContainer->getRequest(), $matchContainer->getConditionType());
             $select = $this->joinPreviousResultToSelect($matchSelect, $table, $matchScoreBuilder);
             if ($queriesCount) {
                 $previousResultTable = $table;
                 $table = $this->temporaryStorage->storeDocumentsFromSelect($select);
                 $this->getConnection()->dropTable($previousResultTable->getName());
             }
         }
     }
     return $select;
 }