function it_applies_matching_formatters(ValueFormatter $formatterA, ValueFormatter $formatterB)
 {
     $formatterA->accepts(Argument::cetera())->willReturn(false);
     $formatterA->format(Argument::cetera())->shouldNotBeCalled();
     $formatterB->accepts(Argument::cetera())->willReturn(true);
     $formatterB->format(Argument::cetera())->shouldBeCalled()->willReturn('bar');
     $this->format('foo', 'test', [])->shouldReturn('bar');
 }
 /**
  * Format field options.
  *
  * @param string $field   Field name.
  * @param array  $values  Field values.
  * @param mixed  $context Data container object.
  *
  * @return array
  */
 public function formatOptions($field, array $values, $context = null)
 {
     $definition = $this->definition->get(['fields', $field]);
     return $this->optionsFormatter->format($values, $field, $definition, $context);
 }
 function it_returns_initial_value_when_no_formatter_matches(ValueFormatter $formatterA, ValueFormatter $formatterB)
 {
     $formatterA->accepts(Argument::cetera())->willReturn(false);
     $formatterB->accepts(Argument::cetera())->willReturn(false);
     $this->format('foo', 'test', [])->shouldReturn('foo');
 }