Chris@0: assertEquals($data, YamlPecl::decode(YamlPecl::encode($data))); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Ensures that php object support is disabled. Chris@0: */ Chris@0: public function testObjectSupportDisabled() { Chris@0: $object = new \stdClass(); Chris@0: $object->foo = 'bar'; Chris@0: $this->assertEquals(['O:8:"stdClass":1:{s:3:"foo";s:3:"bar";}'], YamlPecl::decode(YamlPecl::encode([$object]))); Chris@0: $this->assertEquals(0, ini_get('yaml.decode_php')); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Tests decoding YAML node anchors. Chris@0: * Chris@0: * @covers ::decode Chris@0: * @dataProvider providerDecodeTests Chris@0: */ Chris@0: public function testDecode($string, $data) { Chris@0: $this->assertEquals($data, YamlPecl::decode($string)); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Tests our encode settings. Chris@0: * Chris@0: * @covers ::encode Chris@0: */ Chris@0: public function testEncode() { Chris@0: $this->assertEquals('--- Chris@0: foo: Chris@0: bar: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus sapien ex, venenatis vitae nisi eu, posuere luctus dolor. Nullam convallis Chris@0: ... Chris@0: ', YamlPecl::encode(['foo' => ['bar' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus sapien ex, venenatis vitae nisi eu, posuere luctus dolor. Nullam convallis']])); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Tests YAML boolean callback. Chris@0: * Chris@0: * @param string $string Chris@0: * String value for the YAML boolean. Chris@0: * @param string|bool $expected Chris@0: * The expected return value. Chris@0: * Chris@0: * @covers ::applyBooleanCallbacks Chris@0: * @dataProvider providerBoolTest Chris@0: */ Chris@0: public function testApplyBooleanCallbacks($string, $expected) { Chris@0: $this->assertEquals($expected, YamlPecl::applyBooleanCallbacks($string, 'bool', NULL)); Chris@0: } Chris@0: Chris@0: /** Chris@0: * @covers ::getFileExtension Chris@0: */ Chris@0: public function testGetFileExtension() { Chris@0: $this->assertEquals('yml', YamlPecl::getFileExtension()); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Tests that invalid YAML throws an exception. Chris@0: * Chris@0: * @covers ::errorHandler Chris@0: */ Chris@0: public function testError() { Chris@14: if (method_exists($this, 'expectException')) { Chris@14: $this->expectException(InvalidDataTypeException::class); Chris@14: } Chris@14: else { Chris@14: $this->setExpectedException(InvalidDataTypeException::class); Chris@14: } Chris@0: YamlPecl::decode('foo: [ads'); Chris@0: } Chris@0: Chris@0: }