Пример #1
0
 /**
  * {@inheritdoc}
  */
 public function configureOptions(OptionsResolver $resolver)
 {
     $resolver->setRequired(array('relative_path'));
     $resolver->setRequired(array('imagine_filter'));
     $resolver->setDefaults(array('class' => '', 'padding' => '', 'name' => '', 'orderable' => false, 'searchable' => false, 'title' => '', 'type' => '', 'visible' => true, 'width' => '', 'search_type' => 'like', 'filter_type' => 'text', 'filter_options' => array(), 'filter_property' => '', 'filter_search_column' => '', 'holder_url' => '', 'holder_width' => '50', 'holder_height' => '50', 'enlarge' => false));
     $resolver->setAllowedTypes('class', 'string');
     $resolver->setAllowedTypes('padding', 'string');
     $resolver->setAllowedTypes('name', 'string');
     $resolver->setAllowedTypes('orderable', 'bool');
     $resolver->setAllowedTypes('searchable', 'bool');
     $resolver->setAllowedTypes('title', 'string');
     $resolver->setAllowedTypes('type', 'string');
     $resolver->setAllowedTypes('visible', 'bool');
     $resolver->setAllowedTypes('width', 'string');
     $resolver->setAllowedTypes('search_type', 'string');
     $resolver->setAllowedTypes('filter_type', 'string');
     $resolver->setAllowedTypes('filter_options', 'array');
     $resolver->setAllowedTypes('filter_property', 'string');
     $resolver->setAllowedTypes('filter_search_column', 'string');
     $resolver->setAllowedTypes('imagine_filter', 'string');
     $resolver->setAllowedTypes('relative_path', 'string');
     $resolver->setAllowedTypes('holder_url', 'string');
     $resolver->setAllowedTypes('holder_width', 'string');
     $resolver->setAllowedTypes('holder_height', 'string');
     $resolver->setAllowedTypes('enlarge', 'bool');
     $resolver->setAllowedValues('search_type', array('like', 'notLike', 'eq', 'neq', 'lt', 'lte', 'gt', 'gte', 'in', 'notIn', 'isNull', 'isNotNull'));
     $resolver->setAllowedValues('filter_type', array('text', 'select'));
     return $this;
 }
Пример #2
0
 /**
  * @param OptionsResolver $resolver
  */
 protected function configureOptions(OptionsResolver $resolver)
 {
     $resolver->setRequired(['allowed', 'default_order']);
     $resolver->setDefaults(['allowed' => true, 'default_order' => self::SORT_DIR_DESC]);
     $resolver->setAllowedValues('allowed', [true, false]);
     $resolver->setAllowedValues('default_order', [self::SORT_DIR_DESC, self::SORT_DIR_ASC]);
 }
 /**
  * {@inheritdoc}
  */
 public function configureOptions(OptionsResolver $resolver)
 {
     $resolver->setDefaults(array_merge($this->getDefaultWidgetOptions(), ['widget' => 'single_text', 'format' => null, 'date_format' => \IntlDateFormatter::MEDIUM, 'time_format' => \IntlDateFormatter::SHORT, 'widget_addon_append' => ['icon' => 'calendar']]));
     $resolver->setAllowedTypes('format', ['null', 'string']);
     $resolver->setAllowedValues('date_format', [\IntlDateFormatter::FULL, \IntlDateFormatter::LONG, \IntlDateFormatter::MEDIUM, \IntlDateFormatter::SHORT]);
     $resolver->setAllowedValues('time_format', [\IntlDateFormatter::NONE, \IntlDateFormatter::FULL, \IntlDateFormatter::LONG, \IntlDateFormatter::MEDIUM, \IntlDateFormatter::SHORT]);
 }
Пример #4
0
 /**
  * {@inheritdoc}
  */
 public function configureOptions(OptionsResolver $resolver)
 {
     $resolver->setDefaults(array('color' => 'green', 'switch_type' => 1));
     $resolver->setRequired(array('switch_type'));
     $resolver->setAllowedValues('color', array('green', 'red', 'purple', 'orange', 'dark'));
     $resolver->setAllowedValues('switch_type', array(1, 2, 3, 4, 5, 6, 7));
 }
 public function configureOptions(OptionsResolver $resolver)
 {
     $resolver->setDefault('widget', 'compact');
     $resolver->setAllowedValues('widget', ['browser', 'compact']);
     $resolver->setDefault('root_node', '/');
     $resolver->setAllowedValues('root_node', function ($value) {
         return '/' === $value[0];
     });
     $resolver->setDefault('repository_name', 'default');
 }
Пример #6
0
 /**
  * @inheritdoc
  */
 public function setOptions(OptionsResolver $resolver)
 {
     $resolver->setRequired(['forced', 'feed', 'date_locale', 'number_locale', 'default_values']);
     $resolver->setAllowedValues('date_locale', ['en', 'nl']);
     $resolver->setAllowedValues('number_locale', ['en', 'nl']);
     $resolver->setAllowedTypes('forced', 'bool');
     $resolver->setAllowedTypes('feed', Feed::class);
     $resolver->setAllowedTypes('default_values', 'array');
     $resolver->setDefaults(['forced' => false, 'date_locale' => 'en', 'number_locale' => 'en', 'default_values' => []]);
 }
 /**
  * {@inheritdoc}
  */
 public function configureOptions(OptionsResolver $resolver)
 {
     $resolver->setDefaults(array('widget_form_control_class' => 'form-control', 'widget_form_group' => true, 'widget_addon_prepend' => null, 'widget_addon_append' => null, 'widget_btn_prepend' => null, 'widget_btn_append' => null, 'widget_prefix' => null, 'widget_suffix' => null, 'widget_type' => '', 'widget_items_attr' => array(), 'widget_form_group_attr' => array('class' => 'form-group'), 'widget_checkbox_label' => $this->options['checkbox_label']));
     if (version_compare(Kernel::VERSION, '2.6', '>=')) {
         $resolver->setAllowedValues('widget_type', array('inline', 'inline-btn', ''));
         $resolver->setAllowedValues('widget_checkbox_label', array('label', 'widget', 'both'));
     } else {
         $resolver->setAllowedValues(array('widget_type' => array('inline', 'inline-btn', ''), 'widget_checkbox_label' => array('label', 'widget', 'both')));
     }
 }
Пример #8
0
 /**
  * {@inheritdoc}
  */
 public function configureOptions(OptionsResolver $resolver)
 {
     $resolver->setDefaults(['input' => 'datetime', 'model_timezone' => null, 'view_timezone' => null, 'date_format' => \IntlDateFormatter::MEDIUM, 'time_format' => \IntlDateFormatter::MEDIUM, 'calendar' => \IntlDateFormatter::GREGORIAN, 'format' => null]);
     $resolver->setAllowedValues('date_format', self::$acceptedFormats);
     $resolver->setAllowedValues('time_format', self::$acceptedFormats);
     $resolver->setAllowedTypes('model_timezone', ['null', 'string']);
     $resolver->setAllowedTypes('view_timezone', ['null', 'string']);
     $resolver->setAllowedTypes('format', ['null', 'string']);
     $resolver->setAllowedTypes('calendar', ['int', 'IntlCalendar']);
     $resolver->setAllowedValues('input', ['string', 'timestamp', 'datetime']);
 }
Пример #9
0
 /**
  * @param OptionsResolver $resolver
  */
 protected function configureOptions(OptionsResolver $resolver)
 {
     $resolver->setRequired(['visible', 'width', 'align', 'no_title']);
     $resolver->setDefaults(['visible' => true, 'width' => self::WIDTH_AUTO, 'align' => self::ALIGN_LEFT, 'no_title' => false]);
     $resolver->setAllowedValues('visible', [true, false]);
     $resolver->setAllowedValues('align', [self::ALIGN_LEFT, self::ALIGN_CENTER, self::ALIGN_RIGHT]);
     $resolver->setAllowedValues('no_title', [true, false]);
     $resolver->setAllowedTypes('visible', 'bool');
     $resolver->setAllowedTypes('width', ['int', 'string']);
     $resolver->setAllowedTypes('align', 'string');
     $resolver->setAllowedTypes('no_title', 'bool');
 }
Пример #10
0
 public function __construct(ConnectionInterface $connection, $dn, $query, array $options = array())
 {
     $resolver = new OptionsResolver();
     $resolver->setDefaults(array('filter' => '*', 'maxItems' => 0, 'sizeLimit' => 0, 'timeout' => 0, 'deref' => static::DEREF_NEVER, 'attrsOnly' => 0, 'scope' => static::SCOPE_SUB));
     $resolver->setAllowedValues('deref', array(static::DEREF_ALWAYS, static::DEREF_NEVER, static::DEREF_FINDING, static::DEREF_SEARCHING));
     $resolver->setAllowedValues('scope', array(static::SCOPE_BASE, static::SCOPE_ONE, static::SCOPE_SUB));
     $resolver->setNormalizer('filter', function (Options $options, $value) {
         return is_array($value) ? $value : array($value);
     });
     $this->connection = $connection;
     $this->dn = $dn;
     $this->query = $query;
     $this->options = $resolver->resolve($options);
 }
Пример #11
0
 protected function configureOptions(OptionsResolver $resolver)
 {
     // Set default options.
     $resolver->setDefaults(array('clean-strategy' => self::CLEAN_STRATEGY_STANDARD, 'element-blacklist' => '', 'indent-spaces' => 4, 'output' => self::OUTPUT_COMPACT, 'type-blacklist' => Token::CDATA . ',' . Token::COMMENT));
     // Validation
     // clean-strategy
     $resolver->setAllowedTypes('clean-strategy', 'string');
     $resolver->setAllowedValues('clean-strategy', array(self::CLEAN_STRATEGY_NONE, self::CLEAN_STRATEGY_LENIENT, self::CLEAN_STRATEGY_STANDARD, self::CLEAN_STRATEGY_AGGRESSIVE));
     // element-blacklist
     $resolver->setAllowedTypes('element-blacklist', 'string');
     $resolver->setNormalizer('element-blacklist', function (Options $options, $value) {
         $valueArray = explode(',', $value);
         $formattedValueArray = array();
         foreach ($valueArray as $data) {
             $formattedValueArray[] = trim(strtolower($data));
         }
         return implode(',', $formattedValueArray);
     });
     // indent-spaces
     $resolver->setAllowedTypes('indent-spaces', 'int');
     $resolver->setAllowedValues('indent-spaces', function ($value) {
         return $value >= 0;
     });
     // output
     $resolver->setAllowedTypes('output', 'string');
     $resolver->setAllowedValues('output', array(self::OUTPUT_COMPACT, self::OUTPUT_PRETTY));
     // type-blacklist
     $resolver->setAllowedTypes('type-blacklist', 'string');
     $resolver->setAllowedValues('type-blacklist', function ($value) {
         if ($value == '') {
             return true;
         }
         $acceptedValues = array(Token::CDATA, Token::COMMENT, Token::DOCTYPE, Token::ELEMENT, Token::PHP, Token::TEXT);
         $valueArray = explode(',', $value);
         foreach ($valueArray as $val) {
             if (array_search(trim(strtolower($val)), $acceptedValues) === false) {
                 return false;
             }
         }
         return true;
     });
     $resolver->setNormalizer('type-blacklist', function (Options $options, $value) {
         $valueArray = explode(',', $value);
         $formattedValueArray = array();
         foreach ($valueArray as $data) {
             $formattedValueArray[] = trim(strtolower($data));
         }
         return implode(',', $formattedValueArray);
     });
 }
Пример #12
0
 /**
  * @param array $options
  */
 public function setOptions($options = array())
 {
     $resolver = new OptionsResolver();
     $resolver->setDefaults(array());
     $resolver->setRequired('slider_id');
     $resolver->setAllowedTypes('slider_id', 'string');
     $resolver->setRequired('start');
     $resolver->setAllowedTypes('start', 'array');
     $resolver->setRequired('range_min');
     $resolver->setAllowedTypes('range_min', 'numeric');
     $resolver->setRequired('range_max');
     $resolver->setAllowedTypes('range_max', 'numeric');
     $resolver->setDefined('range_steps');
     $resolver->setAllowedTypes('range_steps', 'array');
     $resolver->setDefined('step');
     $resolver->setAllowedTypes('step', 'numeric');
     $resolver->setDefined('connect');
     $resolver->setAllowedTypes('connect', 'string');
     $resolver->setAllowedValues('connect', array('lower', 'upper', 'true', 'false'));
     $resolver->setDefault('connect', 'false');
     $resolver->setDefined('margin');
     $resolver->setAllowedTypes('margin', 'numeric');
     $resolver->setDefined('limit');
     $resolver->setAllowedTypes('margin', 'numeric');
     $resolver->setDefined('orientation');
     $resolver->setAllowedTypes('orientation', 'string');
     $resolver->setAllowedValues('orientation', array('vertical', 'horizontal'));
     $resolver->setDefault('orientation', 'horizontal');
     $resolver->setDefined('slider_dimension');
     $resolver->setAllowedTypes('slider_dimension', 'array');
     $resolver->setDefined('direction');
     $resolver->setAllowedTypes('direction', 'string');
     $resolver->setAllowedValues('direction', array('ltr', 'rtl'));
     $resolver->setDefault('direction', 'ltr');
     $resolver->setDefined('animate');
     $resolver->setAllowedTypes('animate', 'boolean');
     $resolver->setDefault('animate', true);
     $resolver->setDefined('animation_duration');
     $resolver->setAllowedTypes('animation_duration', 'numeric');
     $resolver->setDefined('tooltips');
     $resolver->setAllowedTypes('tooltips', 'array');
     //events
     $resolver->setDefined('update_event');
     $resolver->setDefined('change_event');
     $resolver->setDefined('set_event');
     $resolver->setDefined('slide_event');
     $resolver->setDefined('start_event');
     $resolver->setDefined('end_event');
     $this->options = $resolver->resolve($options);
 }
Пример #13
0
 public function __construct()
 {
     $this->allowedTypes = array_merge(array('driver' => array('string'), 'options' => array('array', 'null'), 'attributes' => array('array')), $this->allowedTypes);
     $this->allowedValues = array_merge(array('driver' => array($this->driver)), $this->allowedValues);
     $this->defaults = array_merge(array('driver' => $this->driver, 'options' => array(), 'attributes' => array()), $this->defaults);
     $this->resolver = new OptionsResolver();
     $this->resolver->setRequired($this->required)->setDefaults($this->defaults);
     foreach ($this->allowedValues as $option => $value) {
         $this->resolver->setAllowedValues($option, $value);
     }
     foreach ($this->allowedTypes as $option => $value) {
         $this->resolver->setAllowedTypes($option, $value);
     }
 }
 /**
  *
  * @param OptionsResolver $resolver
  */
 public function configureOptions(OptionsResolver $resolver)
 {
     $resolver->setRequired(array('class', 'type'));
     $resolver->setDefined(array('create_options', 'modal_size'));
     $resolver->setDefaults(array('include_button' => true, 'include_form' => true, 'error_bubbling' => false, 'entity_options' => array()));
     $resolver->setAllowedValues('modal_size', array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12));
 }
 public function configureOptions(OptionsResolver $resolver)
 {
     // Les valeurs par défault
     $resolver->setDefaults(array("host" => "smtp.example.org", "username" => "user", "password" => 'pa$$word', "port" => "25", 'encryption' => null));
     // Les options obligatoire
     $resolver->setRequired(array('host', 'username', 'password'));
     // Les type de valeur autorisé pour le port
     $resolver->setAllowedTypes("port", array("int"));
     // Les valeur autorisé pour l'username
     $resolver->setAllowedValues("username", array("john", "doe", "johndoe"));
     // On normalise le host en fornction de l'encryption ssl ou non
     $resolver->setNormalizer("host", function (Options $options, $value) {
         if (!in_array(substr($value, 0, 7), array("http://", "https://"))) {
             if ("ssl" === $options["encryption"]) {
                 $value = "https://" . $value;
             } else {
                 $value = "http://" . $value;
             }
             return $value;
         }
     });
     // On change la valeur par défault du port en fonction de l'encryption ssl ou non
     $resolver->setDefault("port", function (Options $options) {
         if ("ssl" === $options["encryption"]) {
             return 465;
         }
         return 25;
     });
 }
Пример #16
0
 /**
  * Constructor.
  *
  * @param array|null $options
  */
 public function __construct(array $options = array())
 {
     $resolver = new OptionsResolver();
     $resolver->setRequired(['type', 'match']);
     $resolver->setDefault('type', function (Options $options, $value) {
         if (null === $value) {
             return;
         }
     });
     $resolver->setDefault('match', function (Options $options, $value) {
         if (null === $value) {
             return;
         }
     });
     $resolver->setAllowedValues('type', function ($value) {
         if (in_array($value, ['json', 'xml', 'html'])) {
             return true;
         }
         if (null == $value) {
             return true;
         }
     });
     $resolver->setAllowedTypes('type', ['string', 'null']);
     $options = $resolver->resolve($options);
     $this->type = $options['type'];
     $this->match = $options['match'];
 }
 public function testResolveSucceedsIfOptionRequiredAndValueAllowed()
 {
     $this->resolver->setRequired(array('one', 'two'));
     $this->resolver->setAllowedValues(array('two' => array('2')));
     $options = array('one' => '1', 'two' => '2');
     $this->assertEquals($options, $this->resolver->resolve($options));
 }
 /**
  * @param ProductInterface $product
  * @param array            $updates
  *
  * @return bool
  */
 protected function update(ProductInterface $product, array $updates)
 {
     $resolver = new OptionsResolver();
     $resolver->setRequired(['type']);
     $resolver->setAllowedValues(['type' => ['set_data', 'copy_data', 'add_data', 'remove_data']]);
     $resolver->setOptional(['field', 'data', 'locale', 'scope', 'from_field', 'to_field', 'from_locale', 'to_locale', 'from_scope', 'to_scope']);
     $resolver->setDefaults(['locale' => null, 'scope' => null, 'from_locale' => null, 'to_locale' => null, 'from_scope' => null, 'to_scope' => null]);
     foreach ($updates as $update) {
         $update = $resolver->resolve($update);
         switch ($update['type']) {
             case 'set_data':
                 $this->applySetData($product, $update);
                 break;
             case 'copy_data':
                 $this->applyCopyData($product, $update);
                 break;
             case 'add_data':
                 $this->applyAddData($product, $update);
                 break;
             case 'remove_data':
                 $this->applyRemoveData($product, $update);
                 break;
         }
     }
 }
Пример #19
0
 /**
  * Resolve terminal option
  *
  * @param OptionsResolver $resolver
  */
 public function setShopOrderIdResolver(OptionsResolver $resolver)
 {
     $resolver->setAllowedTypes('shop_orderid', ['string', 'int']);
     $resolver->setAllowedValues('shop_orderid', function ($value) {
         return preg_match('/^[a-zA-Z0-9 ]{1,100}$/', $value);
     });
 }
Пример #20
0
 /**
  * {@inheritdoc}
  *
  * - **format** (_boolean_) Format of the resulting archive: tar or zip
  * - **prefix** (_boolean_) Prepend prefix/ to each filename in the archive
  */
 public function setDefaultOptions(OptionsResolver $resolver)
 {
     $resolver->setDefaults(array('format' => null, 'prefix' => null));
     $resolver->setAllowedTypes('format', array('null', 'string'));
     $resolver->setAllowedTypes('prefix', array('null', 'string'));
     $resolver->setAllowedValues('format', array('tar', 'zip'));
 }
Пример #21
0
 protected function configureOptions(OptionsResolver $resolver)
 {
     $resolver->setRequired("type");
     $resolver->setRequired("name");
     $resolver->setAllowedValues('type', ['url', 'image', 'text', 'page_select', 'product_category_select', 'product_select', 'collection_select']);
     $resolver->setDefaults(array('type' => 'text', 'options' => 'options'));
 }
Пример #22
0
 /**
  * Resolve amount option
  *
  * @param OptionsResolver $resolver
  */
 protected function setCurrencyResolver(OptionsResolver $resolver)
 {
     $resolver->setAllowedTypes('currency', ['string', 'int']);
     $resolver->setAllowedValues('currency', function ($value) {
         return CurrencyTypes::currencyCodeExists($value) || CurrencyTypes::currencyNumberExists($value);
     });
 }
 public function getModel($make, $model, array $options = [])
 {
     $resolver = new OptionsResolver();
     $resolver->setDefaults(['year' => 1990, 'view' => 'basic']);
     $resolver->setDefined('state');
     $resolver->setRequired(['state', 'view']);
     $resolver->setAllowedTypes('year', 'integer');
     $resolver->setAllowedValues('state', ['new', 'used']);
     $resolver->setDefault('state', function (Options $options, $previousValue) {
         if ($options['year'] >= 2015) {
             return 'new';
         }
         return $previousValue;
     });
     //        $resolver->isDefined('state');
     $options = $resolver->resolve($options);
     $client = new GuzzleHttp\Client();
     $queryParams = array_merge($options, ['fmt' => 'json', 'api_key' => $this->apiKey]);
     $query = GuzzleHttp\Psr7\build_query($queryParams);
     $request = new GuzzleHttp\Psr7\Request('GET', $this->apiEndpoint . $make . '/' . $model . '?' . $query);
     /** @var ResponseInterface $response */
     $response = $client->send($request);
     if ($this->dispatcher) {
         $this->dispatcher->dispatch(ApiCallEvent::EVENT_NAME, new GenericEvent($this, ['make' => $make, 'model' => $model, 'options' => $options]));
     }
     return $this->delegatingSerializer->deserialize($response->getBody(), 'json', ['type' => 'array']);
 }
Пример #24
0
 /**
  * {@inheritdoc}
  */
 public function initOptions()
 {
     $this->getOptionsResolver()->setDefaults(array('actions' => array()));
     $this->getOptionsResolver()->setAllowedTypes('actions', 'array');
     $this->actionOptionsResolver->setDefaults(array('redirect_uri' => null, 'domain' => null, 'protocole' => 'http://', 'protocol' => 'http://'));
     $this->actionOptionsResolver->setRequired(array('uri_scheme'));
     $this->actionOptionsResolver->setAllowedTypes('redirect_uri', array('string', 'null'));
     $this->actionOptionsResolver->setAllowedTypes('uri_scheme', 'string');
     $this->actionOptionsResolver->setAllowedValues('protocol', array('http://', 'https://'));
     $this->actionOptionsResolver->setDefaults(array('protocol' => function (Options $options, $value) {
         if (isset($options['protocole'])) {
             $value = $options['protocole'];
         }
         return $value;
     }));
 }
 public function testClearAllowedValues()
 {
     $this->resolver->setDefault('foo', 'bar');
     $this->resolver->setAllowedValues('foo', 'baz');
     $this->resolver->clear();
     $this->resolver->setDefault('foo', 'bar');
     $this->assertSame(array('foo' => 'bar'), $this->resolver->resolve());
 }
Пример #26
0
 private function configureOptions(OptionsResolver $resolver)
 {
     $resolver->setDefaults(array('quality' => 75, 'mode' => 'outbound'));
     $resolver->setRequired("size");
     $resolver->setAllowedValues('mode', ['inset', 'outbound']);
     $resolver->setAllowedTypes('quality', ['int']);
     $resolver->setAllowedTypes('size', ['array']);
 }
Пример #27
0
 protected function resolveOptions(array $options)
 {
     $optionsResolver = new OptionsResolver();
     $optionsResolver->setRequired(array('exchange', 'exchange_type'));
     $optionsResolver->setDefaults(array('exchange_type' => 'direct'));
     $optionsResolver->setAllowedValues(array('exchange_type' => array('direct')));
     $this->options = $optionsResolver->resolve($options);
 }
Пример #28
0
 /**
  * @inheritdoc
  */
 public function configureOptions(OptionsResolver $resolver)
 {
     $resolver->setRequired(array('reference_currency', 'currency_choices'));
     $resolver->setDefaults(array('reference_currency' => $this->referenceCurrencyCode, 'currency_choices' => $this->currencyCodeList));
     $resolver->setAllowedTypes('reference_currency', 'string');
     $resolver->setAllowedTypes('currency_choices', 'array');
     $resolver->setAllowedValues('reference_currency', $this->currencyCodeList);
 }
Пример #29
0
 /**
  * Configure Options.
  *
  * @param OptionsResolver $resolver
  *
  * @return $this
  */
 private function configureOptions(OptionsResolver $resolver)
 {
     $resolver->setDefaults(array('url' => '', 'type' => 'GET'));
     $resolver->setAllowedTypes('url', 'string');
     $resolver->setAllowedTypes('type', 'string');
     $resolver->setAllowedValues('type', array('GET', 'POST', 'get', 'post'));
     return $this;
 }
 /**
  * @expectedException \Symfony\Component\OptionsResolver\Exception\InvalidOptionsException
  */
 public function testResolveFailsIfValueAllowedCallbackReturnsFalse()
 {
     $this->resolver->setRequired(array('test'));
     $this->resolver->setAllowedValues(array('test' => function ($value) {
         return false;
     }));
     $options = array('test' => true);
     $this->assertEquals($options, $this->resolver->resolve($options));
 }