4 * This file is part of the Symfony package.
6 * (c) Fabien Potencier <fabien@symfony.com>
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
12 namespace Symfony\Component\Serializer\Tests\NameConverter;
14 use PHPUnit\Framework\TestCase;
15 use Symfony\Component\Serializer\NameConverter\CamelCaseToSnakeCaseNameConverter;
18 * @author Kévin Dunglas <dunglas@gmail.com>
20 class CamelCaseToSnakeCaseNameConverterTest extends TestCase
22 public function testInterface()
24 $attributeMetadata = new CamelCaseToSnakeCaseNameConverter();
25 $this->assertInstanceOf('Symfony\Component\Serializer\NameConverter\NameConverterInterface', $attributeMetadata);
29 * @dataProvider attributeProvider
31 public function testNormalize($underscored, $camelCased, $useLowerCamelCase)
33 $nameConverter = new CamelCaseToSnakeCaseNameConverter(null, $useLowerCamelCase);
34 $this->assertEquals($nameConverter->normalize($camelCased), $underscored);
38 * @dataProvider attributeProvider
40 public function testDenormalize($underscored, $camelCased, $useLowerCamelCase)
42 $nameConverter = new CamelCaseToSnakeCaseNameConverter(null, $useLowerCamelCase);
43 $this->assertEquals($nameConverter->denormalize($underscored), $camelCased);
46 public function attributeProvider()
49 array('coop_tilleuls', 'coopTilleuls', true),
50 array('_kevin_dunglas', '_kevinDunglas', true),
51 array('this_is_a_test', 'thisIsATest', true),
52 array('coop_tilleuls', 'CoopTilleuls', false),
53 array('_kevin_dunglas', '_kevinDunglas', false),
54 array('this_is_a_test', 'ThisIsATest', false),