/**
  * Get the input filter, and validate the incoming data
  *
  * @TODO: when we have the new input filter, we should use named validation group and context
  *
  * @param  string $inputFilterName
  * @param  array  $validationGroup
  * @param  mixed  $context
  * @return array
  * @throws UnprocessableEntityException
  */
 public function __invoke($inputFilterName, array $validationGroup = [], $context = null)
 {
     /** @var \Zend\InputFilter\InputFilterInterface $inputFilter */
     $inputFilter = $this->inputFilterPluginManager->get($inputFilterName);
     if (!empty($validationGroup)) {
         $inputFilter->setValidationGroup($validationGroup);
     }
     $data = array_merge(json_decode($this->controller->getRequest()->getContent(), true) ?: [], $this->controller->getRequest()->getPost()->toArray());
     $inputFilter->setData($data);
     if ($inputFilter->isValid($context)) {
         return $inputFilter->getValues();
     }
     throw new UnprocessableEntityException('Validation error', $inputFilter->getMessages());
 }
 public function testLoadingInvalidElementRaisesException()
 {
     $this->manager->setInvokableClass('test', get_class($this));
     $this->setExpectedException('Zend\\InputFilter\\Exception\\RuntimeException');
     $this->manager->get('test');
 }