packages\OpenSkill\Datatable\tests\OpenSkill\Datatable\Providers\QueryBuilderProviderTest::orderAndSearchMultiTest PHP Метод

orderAndSearchMultiTest() приватный Метод

private orderAndSearchMultiTest ( $withSearch = false, $searchableType = null )
    private function orderAndSearchMultiTest($withSearch = false, $searchableType = null)
    {
        $queryConfiguration = QueryConfigurationBuilder::create()->start(0)->length(4)->drawCall(1)->columnOrder('name', 'asc')->columnOrder('id', 'desc');
        if ($withSearch) {
            $queryConfiguration = $queryConfiguration->searchValue('blah');
            if ($searchableType == Searchable::REGEX()) {
                $queryConfiguration = $queryConfiguration->searchRegex(true);
            }
        }
        $queryConfiguration = $queryConfiguration->build();
        $columnConfiguration = [];
        $columnConfiguration[] = ColumnConfigurationBuilder::create()->name('id')->searchable(Searchable::NONE())->build();
        $columnConfiguration[] = ColumnConfigurationBuilder::create()->name('name')->searchable($searchableType)->build();
        // Set up mock item
        $queryBuilder = $this->setupMockQueryBuilder();
        $queryBuilder->shouldReceive('skip')->with(0);
        $queryBuilder->shouldReceive('limit')->with(4);
        $queryBuilder->shouldReceive('count')->withNoArgs();
        if ($withSearch) {
            if ($searchableType == Searchable::REGEX()) {
                $queryBuilder->shouldReceive('orWhere')->withArgs(["name", "REGEXP", "blah"])->once();
            } elseif ($searchableType == Searchable::NORMAL()) {
                $queryBuilder->shouldReceive('orWhere')->withArgs(["name", "LIKE", "%blah%"])->once();
            }
        }
        $queryBuilder->shouldReceive('orderBy')->withArgs(["id", "desc"])->once();
        $queryBuilder->shouldReceive('orderBy')->withArgs(["name", "asc"])->once();
        $queryBuilder->shouldReceive('get')->withArgs([['id', 'name']])->once()->andReturn([]);
        $provider = new QueryBuilderProvider($queryBuilder);
        $provider->prepareForProcessing($queryConfiguration, $columnConfiguration);
        $provider->process();
    }