/**
  * @dataProvider createFiltersTestData
  *
  * @param array $configuration
  * @param array $metadata
  * @param bool  $result
  */
 public function testCreateFilters(array $configuration, array $metadata, $result)
 {
     foreach ($configuration as $property => $value) {
         $this->valueFactory->shouldReceive('parseValue')->with($value)->andReturn($value);
     }
     $filter = $this->factory->createFilters($configuration);
     static::assertEquals($result, $filter->matches($metadata), sprintf("Expected configuration: %s and data: %s to result in: %s", json_encode($configuration), json_encode($metadata), $result));
 }
Exemple #2
0
 /**
  * @param string $property
  * @param mixed  $value
  *
  * @return ArrayFilterInterface
  * @throws UnknownPropertyDefinitionException
  */
 public function getFilter($property, $value)
 {
     foreach ($this->definitions as $key => $definition) {
         if (preg_match($key, $property, $matches)) {
             $expected = is_string($value) ? $this->valueFactory->parseValue($value) : $value;
             return call_user_func($definition, $matches[1], $expected);
         }
     }
     throw new UnknownPropertyDefinitionException($property);
 }