예제 #1
0
 /**
  * @param Request $request
  * @param array $parameters
  * @param $viewContent
  * @param $itemsNumber
  * @param array $serializerGroups
  * @return View
  */
 public function create(Request $request, array $parameters, $viewContent, $itemsNumber, array $serializerGroups = [])
 {
     $view = View::create($viewContent);
     $headers = $view->getHeaders();
     $paginationHeader = $this->pagination->getHeader($request->get('_route'), $itemsNumber, $parameters);
     $headers = array_merge($headers, $paginationHeader);
     $view->setHeaders($headers);
     $context = new Context();
     $context->addGroups($serializerGroups);
     $view->setContext($context);
     return $view;
 }
 public function testDeserializationContextConversion()
 {
     $context = new Context();
     $context->setAttribute('bar', 'foo');
     $context->setAttribute('version', 1);
     $context->addGroups(['e', 'f']);
     $context->setVersion(1.4);
     $context->setMaxDepth(10);
     $context->setSerializeNull(false);
     $JMSContext = $this->adapter->convertDeserializationContext($context);
     $this->assertInstanceOf(\JMS\Serializer\DeserializationContext::class, $JMSContext);
     $this->assertEquals('foo', $JMSContext->attributes->get('bar')->get());
     $this->assertEquals(['e', 'f'], $JMSContext->attributes->get('groups')->get());
     $this->assertEquals(1.4, $JMSContext->attributes->get('version')->get());
     $this->assertEquals(false, $JMSContext->shouldSerializeNull());
 }
 public function testContextConversion()
 {
     $context = new Context();
     $context->setAttribute('groups', array('d'));
     $context->setAttribute('foo', 'bar');
     $context->setAttribute('version', 1);
     $context->addGroups(array('a', 'b', 'c'));
     $context->setVersion(1.3);
     $context->setMaxDepth(10);
     $context->setSerializeNull(false);
     $serializationContext = $this->adapter->convertSerializationContext($context);
     $this->assertTrue(is_array($serializationContext));
     $this->assertEquals(array('groups' => array('a', 'b', 'c'), 'foo' => 'bar', 'version' => 1.3, 'maxDepth' => 10, 'serializeNull' => false), $serializationContext);
     $deserializationContext = $this->adapter->convertDeserializationContext($context);
     $this->assertTrue(is_array($deserializationContext));
     $this->assertEquals(array('groups' => array('a', 'b', 'c'), 'foo' => 'bar', 'version' => 1.3, 'maxDepth' => 10), $deserializationContext);
 }
 public function testContextConfiguration()
 {
     $converter = new RequestBodyParamConverter($this->serializer);
     $options = ['groups' => ['foo', 'bar'], 'version' => 'v1.2', 'maxDepth' => 5, 'serializeNull' => false, 'foo' => 'bar'];
     $contextConfigurationMethod = new \ReflectionMethod($converter, 'configureContext');
     $contextConfigurationMethod->setAccessible(true);
     $contextConfigurationMethod->invoke($converter, $context = new Context(), $options);
     $expectedContext = new Context();
     $expectedContext->addGroups($options['groups'])->setVersion($options['version'])->setMaxDepth($options['maxDepth'])->setSerializeNull($options['serializeNull'])->setAttribute('foo', 'bar');
     $this->assertEquals($expectedContext, $context);
 }
 /**
  * @param Context $context
  * @param array   $options
  */
 protected function configureContext(Context $context, array $options)
 {
     foreach ($options as $key => $value) {
         if ($key == 'groups') {
             $context->addGroups($options['groups']);
         } elseif ($key == 'version') {
             $context->setVersion($options['version']);
         } elseif ($key == 'maxDepth') {
             $context->setMaxDepth($options['maxDepth']);
         } elseif ($key == 'serializeNull') {
             $context->setSerializeNull($options['serializeNull']);
         } else {
             $context->setAttribute($key, $value);
         }
     }
 }