/**
  * @test
  */
 public function testLaravelTransformer()
 {
     $selectQuery = new SelectQueryParameters();
     $selectQuery->where((new WhereParameter('foo', Operator::EQ, 'bar'))->or((new WhereParameter('bar', Operator::LT, 15))->and(new WhereParameter('cat', Operator::NEQ, 'catlab'))));
     $builder = $this->getQueryBuilder();
     SelectQueryTransformer::toLaravel($builder, $selectQuery);
     $this->assertEquals('select * from "table" where "foo" = ? or ("bar" < ? and ("cat" != ?))', $builder->toSql());
 }
 /**
  * @param $model
  * @param $resourceDefinition
  * @param Context $context
  * @param int $records
  * @return mixed
  */
 public function filterAndGet($model, $resourceDefinition, Context $context, $records = 10)
 {
     $filter = $this->resourceTransformer->getFilters(Request::query(), $resourceDefinition, $context, $records);
     // Translate parameters to larevel query
     SelectQueryTransformer::toLaravel($model, $filter);
     $models = $model->get();
     if ($filter->isReverse()) {
         $models = $models->reverse();
     }
     return $models;
 }