f298cd27e62570da003a55f22e11b3bf34102b42
[yaffs-website] / vendor / symfony / validator / Tests / Constraints / GroupSequenceTest.php
1 <?php
2
3 /*
4  * This file is part of the Symfony package.
5  *
6  * (c) Fabien Potencier <fabien@symfony.com>
7  *
8  * For the full copyright and license information, please view the LICENSE
9  * file that was distributed with this source code.
10  */
11
12 namespace Symfony\Component\Validator\Tests\Constraints;
13
14 use PHPUnit\Framework\TestCase;
15 use Symfony\Component\Validator\Constraints\GroupSequence;
16
17 /**
18  * @author Bernhard Schussek <bschussek@gmail.com>
19  */
20 class GroupSequenceTest extends TestCase
21 {
22     public function testCreate()
23     {
24         $sequence = new GroupSequence(array('Group 1', 'Group 2'));
25
26         $this->assertSame(array('Group 1', 'Group 2'), $sequence->groups);
27     }
28
29     public function testCreateDoctrineStyle()
30     {
31         $sequence = new GroupSequence(array('value' => array('Group 1', 'Group 2')));
32
33         $this->assertSame(array('Group 1', 'Group 2'), $sequence->groups);
34     }
35
36     /**
37      * @group legacy
38      */
39     public function testLegacyIterate()
40     {
41         $sequence = new GroupSequence(array('Group 1', 'Group 2'));
42
43         $this->assertSame(array('Group 1', 'Group 2'), iterator_to_array($sequence));
44     }
45
46     /**
47      * @group legacy
48      */
49     public function testLegacyCount()
50     {
51         $sequence = new GroupSequence(array('Group 1', 'Group 2'));
52
53         $this->assertCount(2, $sequence);
54     }
55
56     /**
57      * @group legacy
58      */
59     public function testLegacyArrayAccess()
60     {
61         $sequence = new GroupSequence(array('Group 1', 'Group 2'));
62
63         $this->assertSame('Group 1', $sequence[0]);
64         $this->assertSame('Group 2', $sequence[1]);
65         $this->assertTrue(isset($sequence[0]));
66         $this->assertFalse(isset($sequence[2]));
67         unset($sequence[0]);
68         $this->assertFalse(isset($sequence[0]));
69         $sequence[] = 'Group 3';
70         $this->assertTrue(isset($sequence[2]));
71         $this->assertSame('Group 3', $sequence[2]);
72         $sequence[0] = 'Group 1';
73         $this->assertTrue(isset($sequence[0]));
74         $this->assertSame('Group 1', $sequence[0]);
75     }
76
77     /**
78      * @expectedException \Symfony\Component\Validator\Exception\OutOfBoundsException
79      * @group legacy
80      */
81     public function testLegacyGetExpectsExistingKey()
82     {
83         $sequence = new GroupSequence(array('Group 1', 'Group 2'));
84
85         $sequence[2];
86     }
87
88     /**
89      * @group legacy
90      */
91     public function testLegacyUnsetIgnoresNonExistingKeys()
92     {
93         $sequence = new GroupSequence(array('Group 1', 'Group 2'));
94
95         // should not fail
96         unset($sequence[2]);
97
98         $this->assertCount(2, $sequence);
99     }
100 }