-
-
Notifications
You must be signed in to change notification settings - Fork 108
/
ChoiceToValueTransformerTest.php
76 lines (65 loc) · 1.92 KB
/
ChoiceToValueTransformerTest.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Symfony\Component\Form\Tests\Extension\Core\DataTransformer;
use Symfony\Component\Form\Extension\Core\ChoiceList\SimpleChoiceList;
use Symfony\Component\Form\Extension\Core\DataTransformer\ChoiceToValueTransformer;
class ChoiceToValueTransformerTest extends \PHPUnit_Framework_TestCase
{
protected $transformer;
protected function setUp()
{
$list = new SimpleChoiceList(array('' => 'A', 0 => 'B', 1 => 'C'));
$this->transformer = new ChoiceToValueTransformer($list);
}
protected function tearDown()
{
$this->transformer = null;
}
public function transformProvider()
{
return array(
// more extensive test set can be found in FormUtilTest
array(0, '0'),
array(false, '0'),
array('', ''),
);
}
/**
* @dataProvider transformProvider
*/
public function testTransform($in, $out)
{
$this->assertSame($out, $this->transformer->transform($in));
}
public function reverseTransformProvider()
{
return array(
// values are expected to be valid choice keys already and stay
// the same
array('0', 0),
array('', null),
array(null, null),
);
}
/**
* @dataProvider reverseTransformProvider
*/
public function testReverseTransform($in, $out)
{
$this->assertSame($out, $this->transformer->reverseTransform($in));
}
/**
* @expectedException \Symfony\Component\Form\Exception\UnexpectedTypeException
*/
public function testReverseTransformExpectsScalar()
{
$this->transformer->reverseTransform(array());
}
}