| | 115 | |
|---|
| | 116 | public function testRPPO (){ |
|---|
| | 117 | $array = array ('p1'=>1, 'p2'=>2); |
|---|
| | 118 | $array2 = array ('p1'=>1, 'p2'=>2); |
|---|
| | 119 | $array['a1'] = $array2; |
|---|
| | 120 | |
|---|
| | 121 | $ppo = _rPPO ($array); |
|---|
| | 122 | $this->assertEquals ($array['p1'], $ppo->p1); |
|---|
| | 123 | $this->assertEquals ($array['p1'], $ppo['p1']); |
|---|
| | 124 | $this->assertEquals ($array['p2'], $ppo->p2); |
|---|
| | 125 | $this->assertEquals ($array['p2'], $ppo['p2']); |
|---|
| | 126 | $this->assertEquals ($array['a1']['p1'], $ppo->a1['p1']); |
|---|
| | 127 | $this->assertEquals ($array['a1']['p1'], $ppo['a1']['p1']); |
|---|
| | 128 | |
|---|
| | 129 | $this->assertEquals ($array['a1']['p1'], $ppo->a1->p1); |
|---|
| | 130 | } |
|---|
| | 131 | |
|---|
| | 132 | public function testSaveIn (){ |
|---|
| | 133 | //Avec des objets |
|---|
| | 134 | $class = new StdClass (); |
|---|
| | 135 | $class->p1 = 1; |
|---|
| | 136 | $class->p2 = 2; |
|---|
| | 137 | $class2 = clone ($class); |
|---|
| | 138 | |
|---|
| | 139 | $ppo = _ppo ($class); |
|---|
| | 140 | $ppo->p2 = 4; |
|---|
| | 141 | $ppo->p3 = 3; |
|---|
| | 142 | |
|---|
| | 143 | $ppo->saveIn ($class, false); |
|---|
| | 144 | |
|---|
| | 145 | $this->assertFalse (isset ($class->p3)); |
|---|
| | 146 | $this->assertEquals ($class->p2, $ppo->p2); |
|---|
| | 147 | $this->assertEquals (strtolower (get_class ($class)), 'stdclass'); |
|---|
| | 148 | |
|---|
| | 149 | $ppo->saveIn ($class2); |
|---|
| | 150 | $this->assertTrue (isset ($class2->p3)); |
|---|
| | 151 | $this->assertEquals ($class2->p2, $ppo->p2); |
|---|
| | 152 | $this->assertEquals ($class2->p3, $ppo->p3); |
|---|
| | 153 | $this->assertEquals (strtolower (get_class ($class2)), 'stdclass'); |
|---|
| | 154 | |
|---|
| | 155 | //Avec des tableaux |
|---|
| | 156 | $array = array ('p1'=>1, 'p2'=>2); |
|---|
| | 157 | $array2 = $array; |
|---|
| | 158 | |
|---|
| | 159 | $ppo = _ppo ($array); |
|---|
| | 160 | $ppo->p2 = 4; |
|---|
| | 161 | $ppo->p3 = 3; |
|---|
| | 162 | |
|---|
| | 163 | $ppo->saveIn ($array, false); |
|---|
| | 164 | $this->assertTrue (is_array ($array)); |
|---|
| | 165 | $this->assertFalse (isset ($array['p3'])); |
|---|
| | 166 | $this->assertEquals ($array['p2'], $ppo->p2); |
|---|
| | 167 | |
|---|
| | 168 | $ppo->saveIn ($array2); |
|---|
| | 169 | $this->assertTrue (is_array ($array2)); |
|---|
| | 170 | $this->assertTrue (isset ($array2['p3'])); |
|---|
| | 171 | $this->assertEquals ($array2['p2'], $ppo->p2); |
|---|
| | 172 | $this->assertEquals ($array2['p3'], $ppo->p3); |
|---|
| | 173 | } |
|---|
| | 174 | |
|---|
| | 175 | public function _testSaveInNestedLevels (){ |
|---|
| | 176 | //Avec des objets |
|---|
| | 177 | $class = new StdClass (); |
|---|
| | 178 | $class->p1 = 1; |
|---|
| | 179 | $class->p2 = 2; |
|---|
| | 180 | $class2 = clone ($class); |
|---|
| | 181 | $class->c1 = $class2; |
|---|
| | 182 | |
|---|
| | 183 | $ppo = _rPPO (); |
|---|
| | 184 | $ppo->p1 = 1; |
|---|
| | 185 | $ppo->p2 = 22; |
|---|
| | 186 | $ppo->p3 = 3; |
|---|
| | 187 | $ppo->c1->p1 = 11; |
|---|
| | 188 | $ppo->c1->p2 = 2; |
|---|
| | 189 | $ppo->c1->p3 = 33; |
|---|
| | 190 | |
|---|
| | 191 | $ppo->saveIn ($class, false); |
|---|
| | 192 | $this->assertFalse (isset ($class->p3)); |
|---|
| | 193 | $this->assertEquals ($class->p1, $ppo->p1); |
|---|
| | 194 | $this->assertEquals ($class->p2, $ppo->p2); |
|---|
| | 195 | $this->assertEquals (strtolower (get_class ($class)), 'stdclass'); |
|---|
| | 196 | $this->assertEquals (strtolower (get_class ($class->c1)), 'stdclass'); |
|---|
| | 197 | $this->assertEquals ($class->c1->p1, 11); |
|---|
| | 198 | $this->assertEquals ($class->c1->p2, 2); |
|---|
| | 199 | $this->assertFalse (isset ($class->c1->p3)); |
|---|
| | 200 | |
|---|
| | 201 | $ppo->saveIn ($class); |
|---|
| | 202 | $this->assertTrue (isset ($class->p3)); |
|---|
| | 203 | $this->assertEquals ($class->p3, 3); |
|---|
| | 204 | $this->assertEquals ($class->p1, $ppo->p1); |
|---|
| | 205 | $this->assertEquals ($class->p2, $ppo->p2); |
|---|
| | 206 | $this->assertEquals (strtolower (get_class ($class)), 'stdclass'); |
|---|
| | 207 | $this->assertEquals (strtolower (get_class ($class->c1)), 'stdclass'); |
|---|
| | 208 | $this->assertEquals ($class->c1->p1, 11); |
|---|
| | 209 | $this->assertEquals ($class->c1->p2, 2); |
|---|
| | 210 | $this->assertTrue (isset ($class->c1->p3)); |
|---|
| | 211 | $this->assertEquals ($class->c1->p3, 33); |
|---|
| | 212 | |
|---|
| | 213 | //Avec des tableaux |
|---|
| | 214 | $array = array ('p1'=>1, 'p2'=>2); |
|---|
| | 215 | $array2 = array ('p1'=>1, 'p2'=>2); |
|---|
| | 216 | $array['a1'] = $array2; |
|---|
| | 217 | |
|---|
| | 218 | $ppo = _rPPO ($array); |
|---|
| | 219 | $ppo['p1']= 1; |
|---|
| | 220 | $ppo['p2'] = 2; |
|---|
| | 221 | $ppo['p3'] = 3; |
|---|
| | 222 | $ppo['a1']['p1'] = 11; |
|---|
| | 223 | $ppo['a1']['p2'] = 22; |
|---|
| | 224 | $ppo['a1']['p3'] = 33; |
|---|
| | 225 | |
|---|
| | 226 | $ppo->saveIn ($class, false); |
|---|
| | 227 | $this->assertFalse (isset ($array['p3'])); |
|---|
| | 228 | $this->assertEquals ($array['p1'], 1); |
|---|
| | 229 | $this->assertEquals ($array['p2'], 2); |
|---|
| | 230 | $this->assertTrue (is_array ($array)); |
|---|
| | 231 | $this->assertTrue (is_array ($array['a1'])); |
|---|
| | 232 | $this->assertEquals ($array['a1']['p1'], 11); |
|---|
| | 233 | $this->assertEquals ($array['a1']['p2'], 22); |
|---|
| | 234 | $this->assertFalse (isset ($array['a1']['p3'])); |
|---|
| | 235 | |
|---|
| | 236 | $ppo->saveIn ($class); |
|---|
| | 237 | $this->assertFalse (isset ($array['p3'])); |
|---|
| | 238 | $this->assertEquals ($array['p1'], $ppo->p1); |
|---|
| | 239 | $this->assertEquals ($array['p2'], $ppo->p2); |
|---|
| | 240 | $this->assertEquals ($array['p3'], $ppo->p3); |
|---|
| | 241 | $this->assertEquals (is_array ($array)); |
|---|
| | 242 | $this->assertEquals (is_array ($array['a1'])); |
|---|
| | 243 | $this->assertEquals ($array['a1']['p1'], 11); |
|---|
| | 244 | $this->assertEquals ($array['a1']['p2'], 22); |
|---|
| | 245 | $this->assertTrue (isset ($array['a1']['p3'])); |
|---|
| | 246 | $this->assertEquals ($array['a1']['p3'], 33); |
|---|
| | 247 | } |
|---|