/**
  * @covers Kunstmaan\AdminListBundle\AdminList\Filter::bindRequest
  * @covers Kunstmaan\AdminListBundle\AdminList\Filter::getData
  */
 public function testBindRequest()
 {
     $request = new Request(array('filter_comparator_string' => 'equals', 'filter_value_string' => 'TheStringValue'));
     $this->object->bindRequest($request);
     $this->assertEquals(array('comparator' => 'equals', 'value' => 'TheStringValue'), $this->object->getData());
 }
 /**
  * @param Request $request
  */
 public function bindRequest(Request $request)
 {
     $filterBuilderName = 'filter_' . $request->get('_route');
     $this->currentParameters = $request->query->all();
     if (count($this->currentParameters) === 0) {
         if (!$request->query->has('filter')) {
             if ($request->getSession()->has($filterBuilderName)) {
                 $savedQuery = $request->getSession()->get($filterBuilderName);
                 $request->query->replace($savedQuery);
                 $this->currentParameters = $savedQuery;
             }
         }
     } else {
         $request->getSession()->set($filterBuilderName, $this->currentParameters);
     }
     $filterColumnNames = $request->query->get('filter_columnname');
     if (isset($filterColumnNames)) {
         $uniqueIds = $request->query->get('filter_uniquefilterid');
         $index = 0;
         foreach ($filterColumnNames as $filterColumnName) {
             $uniqueId = $uniqueIds[$index];
             $filter = new Filter($filterColumnName, $this->get($filterColumnName), $uniqueId);
             $this->currentFilters[] = $filter;
             $filter->bindRequest($request);
             $index++;
         }
     }
 }