1 | <?php |
||
24 | class ModelManagerTest extends \PHPUnit_Framework_TestCase |
||
25 | { |
||
26 | public function testSortParameters() |
||
27 | { |
||
28 | $registry = $this->getMock('Symfony\Bridge\Doctrine\RegistryInterface'); |
||
29 | |||
30 | $manager = new ModelManager($registry); |
||
31 | |||
32 | $datagrid1 = $this->getMockBuilder('\Sonata\AdminBundle\Datagrid\Datagrid')->disableOriginalConstructor()->getMock(); |
||
33 | $datagrid2 = $this->getMockBuilder('\Sonata\AdminBundle\Datagrid\Datagrid')->disableOriginalConstructor()->getMock(); |
||
34 | |||
35 | $field1 = new FieldDescription(); |
||
36 | $field1->setName('field1'); |
||
37 | |||
38 | $field2 = new FieldDescription(); |
||
39 | $field2->setName('field2'); |
||
40 | |||
41 | $field3 = new FieldDescription(); |
||
42 | $field3->setName('field3'); |
||
43 | $field3->setOption('sortable', 'field3sortBy'); |
||
44 | |||
45 | $datagrid1 |
||
46 | ->expects($this->any()) |
||
47 | ->method('getValues') |
||
48 | ->will($this->returnValue(array( |
||
49 | '_sort_by' => $field1, |
||
50 | '_sort_order' => 'ASC', |
||
51 | ))); |
||
52 | |||
53 | $datagrid2 |
||
54 | ->expects($this->any()) |
||
55 | ->method('getValues') |
||
56 | ->will($this->returnValue(array( |
||
57 | '_sort_by' => $field3, |
||
58 | '_sort_order' => 'ASC', |
||
59 | ))); |
||
60 | |||
61 | $parameters = $manager->getSortParameters($field1, $datagrid1); |
||
62 | |||
63 | $this->assertEquals('DESC', $parameters['filter']['_sort_order']); |
||
64 | $this->assertEquals('field1', $parameters['filter']['_sort_by']); |
||
65 | |||
66 | $parameters = $manager->getSortParameters($field2, $datagrid1); |
||
67 | |||
68 | $this->assertEquals('ASC', $parameters['filter']['_sort_order']); |
||
69 | $this->assertEquals('field2', $parameters['filter']['_sort_by']); |
||
70 | |||
71 | $parameters = $manager->getSortParameters($field3, $datagrid1); |
||
72 | |||
73 | $this->assertEquals('ASC', $parameters['filter']['_sort_order']); |
||
74 | $this->assertEquals('field3sortBy', $parameters['filter']['_sort_by']); |
||
75 | |||
76 | $parameters = $manager->getSortParameters($field3, $datagrid2); |
||
77 | |||
78 | $this->assertEquals('DESC', $parameters['filter']['_sort_order']); |
||
79 | $this->assertEquals('field3sortBy', $parameters['filter']['_sort_by']); |
||
80 | } |
||
81 | |||
82 | public function getVersionDataProvider() |
||
83 | { |
||
84 | return array( |
||
85 | array(true), |
||
86 | array(false), |
||
87 | ); |
||
88 | } |
||
89 | |||
90 | /** |
||
91 | * @dataProvider getVersionDataProvider |
||
92 | */ |
||
93 | public function testGetVersion($isVersioned) |
||
94 | { |
||
95 | $object = new VersionedEntity(); |
||
96 | |||
97 | $modelManager = $this->getMockBuilder('Sonata\DoctrineORMAdminBundle\Model\ModelManager') |
||
98 | ->disableOriginalConstructor() |
||
99 | ->setMethods(array('getMetadata')) |
||
100 | ->getMock(); |
||
101 | |||
102 | $metadata = $this->getMetadata(get_class($object), $isVersioned); |
||
103 | |||
104 | $modelManager->expects($this->any()) |
||
105 | ->method('getMetadata') |
||
106 | ->will($this->returnValue($metadata)); |
||
107 | |||
108 | if ($isVersioned) { |
||
109 | $object->version = 123; |
||
110 | |||
111 | $this->assertNotNull($modelManager->getLockVersion($object)); |
||
112 | } else { |
||
113 | $this->assertNull($modelManager->getLockVersion($object)); |
||
114 | } |
||
115 | } |
||
116 | |||
117 | public function lockDataProvider() |
||
118 | { |
||
119 | return array( |
||
120 | array(true, false), |
||
121 | array(true, true), |
||
122 | array(false, false), |
||
123 | ); |
||
124 | } |
||
125 | |||
126 | /** |
||
127 | * @dataProvider lockDataProvider |
||
128 | */ |
||
129 | public function testLock($isVersioned, $expectsException) |
||
130 | { |
||
131 | $object = new VersionedEntity(); |
||
132 | |||
133 | $em = $this->getMockBuilder('Doctrine\ORM\EntityManager') |
||
134 | ->disableOriginalConstructor() |
||
135 | ->setMethods(array('lock')) |
||
136 | ->getMock(); |
||
137 | |||
138 | $modelManager = $this->getMockBuilder('Sonata\DoctrineORMAdminBundle\Model\ModelManager') |
||
139 | ->disableOriginalConstructor() |
||
140 | ->setMethods(array('getMetadata', 'getEntityManager')) |
||
141 | ->getMock(); |
||
142 | |||
143 | $modelManager->expects($this->any()) |
||
144 | ->method('getEntityManager') |
||
145 | ->will($this->returnValue($em)); |
||
146 | |||
147 | $metadata = $this->getMetadata(get_class($object), $isVersioned); |
||
148 | |||
149 | $modelManager->expects($this->any()) |
||
150 | ->method('getMetadata') |
||
151 | ->will($this->returnValue($metadata)); |
||
152 | |||
153 | if ($expectsException) { |
||
154 | $em->expects($this->once()) |
||
155 | ->method('lock') |
||
156 | ->will($this->throwException(OptimisticLockException::lockFailed($object))); |
||
157 | |||
158 | $this->setExpectedException('Sonata\AdminBundle\Exception\LockException'); |
||
159 | } |
||
160 | |||
161 | $modelManager->lock($object, 123); |
||
162 | } |
||
163 | |||
164 | public function testGetParentMetadataForProperty() |
||
221 | |||
222 | public function getMetadataForEmbeddedEntity() |
||
223 | { |
||
224 | $metadata = new ClassMetadata('Sonata\DoctrineORMAdminBundle\Tests\Fixtures\Entity\Embeddable\EmbeddedEntity'); |
||
225 | |||
226 | $metadata->fieldMappings = array( |
||
236 | |||
237 | public function getMetadataForAssociatedEntity() |
||
251 | |||
252 | public function getMetadataForContainerEntity() |
||
283 | |||
284 | private function getMetadata($class, $isVersioned) |
||
298 | } |
||
299 |
This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.
Both the
$myVar
assignment in line 1 and the$higher
assignment in line 2 are dead. The first because$myVar
is never used and the second because$higher
is always overwritten for every possible time line.