/vendor/symfony/symfony/src/Symfony/Component/Form/Tests/Extension/Core/ChoiceList/AbstractChoiceListTest.php
https://gitlab.com/mohamedchiheb.bida/workshopFOS · PHP · 345 lines · 168 code · 66 blank · 111 comment · 1 complexity · 04a1aeb327fe0a95fe9b50aad4b0787a MD5 · raw file
- <?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\ChoiceList;
- /**
- * @author Bernhard Schussek <bschussek@gmail.com>
- */
- abstract class AbstractChoiceListTest extends \PHPUnit_Framework_TestCase
- {
- /**
- * @var \Symfony\Component\Form\Extension\Core\ChoiceList\ChoiceListInterface
- */
- protected $list;
- /**
- * @var array
- */
- protected $choices;
- /**
- * @var array
- */
- protected $values;
- /**
- * @var array
- */
- protected $indices;
- /**
- * @var array
- */
- protected $labels;
- /**
- * @var mixed
- */
- protected $choice1;
- /**
- * @var mixed
- */
- protected $choice2;
- /**
- * @var mixed
- */
- protected $choice3;
- /**
- * @var mixed
- */
- protected $choice4;
- /**
- * @var string
- */
- protected $value1;
- /**
- * @var string
- */
- protected $value2;
- /**
- * @var string
- */
- protected $value3;
- /**
- * @var string
- */
- protected $value4;
- /**
- * @var int|string
- */
- protected $index1;
- /**
- * @var int|string
- */
- protected $index2;
- /**
- * @var int|string
- */
- protected $index3;
- /**
- * @var int|string
- */
- protected $index4;
- /**
- * @var string
- */
- protected $label1;
- /**
- * @var string
- */
- protected $label2;
- /**
- * @var string
- */
- protected $label3;
- /**
- * @var string
- */
- protected $label4;
- protected function setUp()
- {
- parent::setUp();
- $this->list = $this->createChoiceList();
- $this->choices = $this->getChoices();
- $this->indices = $this->getIndices();
- $this->values = $this->getValues();
- $this->labels = $this->getLabels();
- // allow access to the individual entries without relying on their indices
- reset($this->choices);
- reset($this->indices);
- reset($this->values);
- reset($this->labels);
- for ($i = 1; $i <= 4; ++$i) {
- $this->{'choice'.$i} = current($this->choices);
- $this->{'index'.$i} = current($this->indices);
- $this->{'value'.$i} = current($this->values);
- $this->{'label'.$i} = current($this->labels);
- next($this->choices);
- next($this->indices);
- next($this->values);
- next($this->labels);
- }
- }
- public function testGetChoices()
- {
- $this->assertSame($this->choices, $this->list->getChoices());
- }
- public function testGetValues()
- {
- $this->assertSame($this->values, $this->list->getValues());
- }
- /**
- * @group legacy
- */
- public function testLegacyGetIndicesForChoices()
- {
- $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED);
- $choices = array($this->choice1, $this->choice2);
- $this->assertSame(array($this->index1, $this->index2), $this->list->getIndicesForChoices($choices));
- }
- /**
- * @group legacy
- */
- public function testLegacyGetIndicesForChoicesPreservesKeys()
- {
- $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED);
- $choices = array(5 => $this->choice1, 8 => $this->choice2);
- $this->assertSame(array(5 => $this->index1, 8 => $this->index2), $this->list->getIndicesForChoices($choices));
- }
- /**
- * @group legacy
- */
- public function testLegacyGetIndicesForChoicesPreservesOrder()
- {
- $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED);
- $choices = array($this->choice2, $this->choice1);
- $this->assertSame(array($this->index2, $this->index1), $this->list->getIndicesForChoices($choices));
- }
- /**
- * @group legacy
- */
- public function testLegacyGetIndicesForChoicesIgnoresNonExistingChoices()
- {
- $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED);
- $choices = array($this->choice1, $this->choice2, 'foobar');
- $this->assertSame(array($this->index1, $this->index2), $this->list->getIndicesForChoices($choices));
- }
- /**
- * @group legacy
- */
- public function testLegacyGetIndicesForChoicesEmpty()
- {
- $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED);
- $this->assertSame(array(), $this->list->getIndicesForChoices(array()));
- }
- /**
- * @group legacy
- */
- public function testLegacyGetIndicesForValues()
- {
- $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED);
- // values and indices are always the same
- $values = array($this->value1, $this->value2);
- $this->assertSame(array($this->index1, $this->index2), $this->list->getIndicesForValues($values));
- }
- /**
- * @group legacy
- */
- public function testLegacyGetIndicesForValuesPreservesKeys()
- {
- $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED);
- // values and indices are always the same
- $values = array(5 => $this->value1, 8 => $this->value2);
- $this->assertSame(array(5 => $this->index1, 8 => $this->index2), $this->list->getIndicesForValues($values));
- }
- /**
- * @group legacy
- */
- public function testLegacyGetIndicesForValuesPreservesOrder()
- {
- $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED);
- $values = array($this->value2, $this->value1);
- $this->assertSame(array($this->index2, $this->index1), $this->list->getIndicesForValues($values));
- }
- /**
- * @group legacy
- */
- public function testLegacyGetIndicesForValuesIgnoresNonExistingValues()
- {
- $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED);
- $values = array($this->value1, $this->value2, 'foobar');
- $this->assertSame(array($this->index1, $this->index2), $this->list->getIndicesForValues($values));
- }
- /**
- * @group legacy
- */
- public function testLegacyGetIndicesForValuesEmpty()
- {
- $this->iniSet('error_reporting', -1 & ~E_USER_DEPRECATED);
- $this->assertSame(array(), $this->list->getIndicesForValues(array()));
- }
- public function testGetChoicesForValues()
- {
- $values = array($this->value1, $this->value2);
- $this->assertSame(array($this->choice1, $this->choice2), $this->list->getChoicesForValues($values));
- }
- public function testGetChoicesForValuesPreservesKeys()
- {
- $values = array(5 => $this->value1, 8 => $this->value2);
- $this->assertSame(array(5 => $this->choice1, 8 => $this->choice2), $this->list->getChoicesForValues($values));
- }
- public function testGetChoicesForValuesPreservesOrder()
- {
- $values = array($this->value2, $this->value1);
- $this->assertSame(array($this->choice2, $this->choice1), $this->list->getChoicesForValues($values));
- }
- public function testGetChoicesForValuesIgnoresNonExistingValues()
- {
- $values = array($this->value1, $this->value2, 'foobar');
- $this->assertSame(array($this->choice1, $this->choice2), $this->list->getChoicesForValues($values));
- }
- // https://github.com/symfony/symfony/issues/3446
- public function testGetChoicesForValuesEmpty()
- {
- $this->assertSame(array(), $this->list->getChoicesForValues(array()));
- }
- public function testGetValuesForChoices()
- {
- $choices = array($this->choice1, $this->choice2);
- $this->assertSame(array($this->value1, $this->value2), $this->list->getValuesForChoices($choices));
- }
- public function testGetValuesForChoicesPreservesKeys()
- {
- $choices = array(5 => $this->choice1, 8 => $this->choice2);
- $this->assertSame(array(5 => $this->value1, 8 => $this->value2), $this->list->getValuesForChoices($choices));
- }
- public function testGetValuesForChoicesPreservesOrder()
- {
- $choices = array($this->choice2, $this->choice1);
- $this->assertSame(array($this->value2, $this->value1), $this->list->getValuesForChoices($choices));
- }
- public function testGetValuesForChoicesIgnoresNonExistingChoices()
- {
- $choices = array($this->choice1, $this->choice2, 'foobar');
- $this->assertSame(array($this->value1, $this->value2), $this->list->getValuesForChoices($choices));
- }
- public function testGetValuesForChoicesEmpty()
- {
- $this->assertSame(array(), $this->list->getValuesForChoices(array()));
- }
- /**
- * @return \Symfony\Component\Form\Extension\Core\ChoiceList\ChoiceListInterface
- */
- abstract protected function createChoiceList();
- abstract protected function getChoices();
- abstract protected function getLabels();
- abstract protected function getValues();
- abstract protected function getIndices();
- }