You are here

class SerializerTest in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/symfony/serializer/Tests/SerializerTest.php \Symfony\Component\Serializer\Tests\SerializerTest

Hierarchy

  • class \Symfony\Component\Serializer\Tests\SerializerTest extends \Symfony\Component\Serializer\Tests\PHPUnit_Framework_TestCase

Expanded class hierarchy of SerializerTest

File

vendor/symfony/serializer/Tests/SerializerTest.php, line 23

Namespace

Symfony\Component\Serializer\Tests
View source
class SerializerTest extends \PHPUnit_Framework_TestCase {
  public function testInterface() {
    $serializer = new Serializer();
    $this
      ->assertInstanceOf('Symfony\\Component\\Serializer\\SerializerInterface', $serializer);
    $this
      ->assertInstanceOf('Symfony\\Component\\Serializer\\Normalizer\\NormalizerInterface', $serializer);
    $this
      ->assertInstanceOf('Symfony\\Component\\Serializer\\Normalizer\\DenormalizerInterface', $serializer);
    $this
      ->assertInstanceOf('Symfony\\Component\\Serializer\\Encoder\\EncoderInterface', $serializer);
    $this
      ->assertInstanceOf('Symfony\\Component\\Serializer\\Encoder\\DecoderInterface', $serializer);
  }

  /**
   * @expectedException \Symfony\Component\Serializer\Exception\UnexpectedValueException
   */
  public function testNormalizeNoMatch() {
    $this->serializer = new Serializer(array(
      $this
        ->getMock('Symfony\\Component\\Serializer\\Normalizer\\CustomNormalizer'),
    ));
    $this->serializer
      ->normalize(new \stdClass(), 'xml');
  }
  public function testNormalizeTraversable() {
    $this->serializer = new Serializer(array(), array(
      'json' => new JsonEncoder(),
    ));
    $result = $this->serializer
      ->serialize(new TraversableDummy(), 'json');
    $this
      ->assertEquals('{"foo":"foo","bar":"bar"}', $result);
  }
  public function testNormalizeGivesPriorityToInterfaceOverTraversable() {
    $this->serializer = new Serializer(array(
      new CustomNormalizer(),
    ), array(
      'json' => new JsonEncoder(),
    ));
    $result = $this->serializer
      ->serialize(new NormalizableTraversableDummy(), 'json');
    $this
      ->assertEquals('{"foo":"normalizedFoo","bar":"normalizedBar"}', $result);
  }

  /**
   * @expectedException \Symfony\Component\Serializer\Exception\UnexpectedValueException
   */
  public function testNormalizeOnDenormalizer() {
    $this->serializer = new Serializer(array(
      new TestDenormalizer(),
    ), array());
    $this
      ->assertTrue($this->serializer
      ->normalize(new \stdClass(), 'json'));
  }

  /**
   * @expectedException \Symfony\Component\Serializer\Exception\UnexpectedValueException
   */
  public function testDenormalizeNoMatch() {
    $this->serializer = new Serializer(array(
      $this
        ->getMock('Symfony\\Component\\Serializer\\Normalizer\\CustomNormalizer'),
    ));
    $this->serializer
      ->denormalize('foo', 'stdClass');
  }

  /**
   * @expectedException \Symfony\Component\Serializer\Exception\UnexpectedValueException
   */
  public function testDenormalizeOnNormalizer() {
    $this->serializer = new Serializer(array(
      new TestNormalizer(),
    ), array());
    $data = array(
      'title' => 'foo',
      'numbers' => array(
        5,
        3,
      ),
    );
    $this
      ->assertTrue($this->serializer
      ->denormalize(json_encode($data), 'stdClass', 'json'));
  }
  public function testCustomNormalizerCanNormalizeCollectionsAndScalar() {
    $this->serializer = new Serializer(array(
      new TestNormalizer(),
    ), array());
    $this
      ->assertNull($this->serializer
      ->normalize(array(
      'a',
      'b',
    )));
    $this
      ->assertNull($this->serializer
      ->normalize(new \ArrayObject(array(
      'c',
      'd',
    ))));
    $this
      ->assertNull($this->serializer
      ->normalize(array()));
    $this
      ->assertNull($this->serializer
      ->normalize('test'));
  }
  public function testSerialize() {
    $this->serializer = new Serializer(array(
      new GetSetMethodNormalizer(),
    ), array(
      'json' => new JsonEncoder(),
    ));
    $data = array(
      'title' => 'foo',
      'numbers' => array(
        5,
        3,
      ),
    );
    $result = $this->serializer
      ->serialize(Model::fromArray($data), 'json');
    $this
      ->assertEquals(json_encode($data), $result);
  }
  public function testSerializeScalar() {
    $this->serializer = new Serializer(array(), array(
      'json' => new JsonEncoder(),
    ));
    $result = $this->serializer
      ->serialize('foo', 'json');
    $this
      ->assertEquals('"foo"', $result);
  }
  public function testSerializeArrayOfScalars() {
    $this->serializer = new Serializer(array(), array(
      'json' => new JsonEncoder(),
    ));
    $data = array(
      'foo',
      array(
        5,
        3,
      ),
    );
    $result = $this->serializer
      ->serialize($data, 'json');
    $this
      ->assertEquals(json_encode($data), $result);
  }

  /**
   * @expectedException \Symfony\Component\Serializer\Exception\UnexpectedValueException
   */
  public function testSerializeNoEncoder() {
    $this->serializer = new Serializer(array(), array());
    $data = array(
      'title' => 'foo',
      'numbers' => array(
        5,
        3,
      ),
    );
    $this->serializer
      ->serialize($data, 'json');
  }

  /**
   * @expectedException \Symfony\Component\Serializer\Exception\LogicException
   */
  public function testSerializeNoNormalizer() {
    $this->serializer = new Serializer(array(), array(
      'json' => new JsonEncoder(),
    ));
    $data = array(
      'title' => 'foo',
      'numbers' => array(
        5,
        3,
      ),
    );
    $this->serializer
      ->serialize(Model::fromArray($data), 'json');
  }
  public function testDeserialize() {
    $this->serializer = new Serializer(array(
      new GetSetMethodNormalizer(),
    ), array(
      'json' => new JsonEncoder(),
    ));
    $data = array(
      'title' => 'foo',
      'numbers' => array(
        5,
        3,
      ),
    );
    $result = $this->serializer
      ->deserialize(json_encode($data), '\\Symfony\\Component\\Serializer\\Tests\\Model', 'json');
    $this
      ->assertEquals($data, $result
      ->toArray());
  }
  public function testDeserializeUseCache() {
    $this->serializer = new Serializer(array(
      new GetSetMethodNormalizer(),
    ), array(
      'json' => new JsonEncoder(),
    ));
    $data = array(
      'title' => 'foo',
      'numbers' => array(
        5,
        3,
      ),
    );
    $this->serializer
      ->deserialize(json_encode($data), '\\Symfony\\Component\\Serializer\\Tests\\Model', 'json');
    $data = array(
      'title' => 'bar',
      'numbers' => array(
        2,
        8,
      ),
    );
    $result = $this->serializer
      ->deserialize(json_encode($data), '\\Symfony\\Component\\Serializer\\Tests\\Model', 'json');
    $this
      ->assertEquals($data, $result
      ->toArray());
  }

  /**
   * @expectedException \Symfony\Component\Serializer\Exception\LogicException
   */
  public function testDeserializeNoNormalizer() {
    $this->serializer = new Serializer(array(), array(
      'json' => new JsonEncoder(),
    ));
    $data = array(
      'title' => 'foo',
      'numbers' => array(
        5,
        3,
      ),
    );
    $this->serializer
      ->deserialize(json_encode($data), '\\Symfony\\Component\\Serializer\\Tests\\Model', 'json');
  }

  /**
   * @expectedException \Symfony\Component\Serializer\Exception\UnexpectedValueException
   */
  public function testDeserializeWrongNormalizer() {
    $this->serializer = new Serializer(array(
      new CustomNormalizer(),
    ), array(
      'json' => new JsonEncoder(),
    ));
    $data = array(
      'title' => 'foo',
      'numbers' => array(
        5,
        3,
      ),
    );
    $this->serializer
      ->deserialize(json_encode($data), '\\Symfony\\Component\\Serializer\\Tests\\Model', 'json');
  }

  /**
   * @expectedException \Symfony\Component\Serializer\Exception\UnexpectedValueException
   */
  public function testDeserializeNoEncoder() {
    $this->serializer = new Serializer(array(), array());
    $data = array(
      'title' => 'foo',
      'numbers' => array(
        5,
        3,
      ),
    );
    $this->serializer
      ->deserialize(json_encode($data), '\\Symfony\\Component\\Serializer\\Tests\\Model', 'json');
  }
  public function testDeserializeSupported() {
    $this->serializer = new Serializer(array(
      new GetSetMethodNormalizer(),
    ), array());
    $data = array(
      'title' => 'foo',
      'numbers' => array(
        5,
        3,
      ),
    );
    $this
      ->assertTrue($this->serializer
      ->supportsDenormalization(json_encode($data), '\\Symfony\\Component\\Serializer\\Tests\\Model', 'json'));
  }
  public function testDeserializeNotSupported() {
    $this->serializer = new Serializer(array(
      new GetSetMethodNormalizer(),
    ), array());
    $data = array(
      'title' => 'foo',
      'numbers' => array(
        5,
        3,
      ),
    );
    $this
      ->assertFalse($this->serializer
      ->supportsDenormalization(json_encode($data), 'stdClass', 'json'));
  }
  public function testDeserializeNotSupportedMissing() {
    $this->serializer = new Serializer(array(), array());
    $data = array(
      'title' => 'foo',
      'numbers' => array(
        5,
        3,
      ),
    );
    $this
      ->assertFalse($this->serializer
      ->supportsDenormalization(json_encode($data), '\\Symfony\\Component\\Serializer\\Tests\\Model', 'json'));
  }
  public function testEncode() {
    $this->serializer = new Serializer(array(), array(
      'json' => new JsonEncoder(),
    ));
    $data = array(
      'foo',
      array(
        5,
        3,
      ),
    );
    $result = $this->serializer
      ->encode($data, 'json');
    $this
      ->assertEquals(json_encode($data), $result);
  }
  public function testDecode() {
    $this->serializer = new Serializer(array(), array(
      'json' => new JsonEncoder(),
    ));
    $data = array(
      'foo',
      array(
        5,
        3,
      ),
    );
    $result = $this->serializer
      ->decode(json_encode($data), 'json');
    $this
      ->assertEquals($data, $result);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
SerializerTest::testCustomNormalizerCanNormalizeCollectionsAndScalar public function
SerializerTest::testDecode public function
SerializerTest::testDenormalizeNoMatch public function @expectedException \Symfony\Component\Serializer\Exception\UnexpectedValueException
SerializerTest::testDenormalizeOnNormalizer public function @expectedException \Symfony\Component\Serializer\Exception\UnexpectedValueException
SerializerTest::testDeserialize public function
SerializerTest::testDeserializeNoEncoder public function @expectedException \Symfony\Component\Serializer\Exception\UnexpectedValueException
SerializerTest::testDeserializeNoNormalizer public function @expectedException \Symfony\Component\Serializer\Exception\LogicException
SerializerTest::testDeserializeNotSupported public function
SerializerTest::testDeserializeNotSupportedMissing public function
SerializerTest::testDeserializeSupported public function
SerializerTest::testDeserializeUseCache public function
SerializerTest::testDeserializeWrongNormalizer public function @expectedException \Symfony\Component\Serializer\Exception\UnexpectedValueException
SerializerTest::testEncode public function
SerializerTest::testInterface public function
SerializerTest::testNormalizeGivesPriorityToInterfaceOverTraversable public function
SerializerTest::testNormalizeNoMatch public function @expectedException \Symfony\Component\Serializer\Exception\UnexpectedValueException
SerializerTest::testNormalizeOnDenormalizer public function @expectedException \Symfony\Component\Serializer\Exception\UnexpectedValueException
SerializerTest::testNormalizeTraversable public function
SerializerTest::testSerialize public function
SerializerTest::testSerializeArrayOfScalars public function
SerializerTest::testSerializeNoEncoder public function @expectedException \Symfony\Component\Serializer\Exception\UnexpectedValueException
SerializerTest::testSerializeNoNormalizer public function @expectedException \Symfony\Component\Serializer\Exception\LogicException
SerializerTest::testSerializeScalar public function