Example #1
0
 /**
  *  Test array merge
  *
  * @return void
  */
 public function testMerge()
 {
     $a = new ArrayObject('foo');
     $a->merge(['bar']);
     $this->assertEquals(['foo', 'bar'], $a->toStandardArray());
     $a = new ArrayObject('foo');
     $a->merge(['user' => 'bob', 'no-bar'], 'bar');
     $this->assertEquals(['foo', 'user' => 'bob', 'no-bar', 'bar'], $a->toStandardArray());
     $a = ArrayObject::fromArray(['foo', 'foo2']);
     $b = ['bar', 'bar2'];
     $a->merge($b);
     $expected = ['foo', 'foo2', 'bar', 'bar2'];
     $this->assertEquals($expected, $a->toStandardArray());
     $a = ArrayObject::fromArray(['foo' => 'bar', 'bar' => 'foo']);
     $b = ['foo' => 'no-bar', 'bar' => 'no-foo'];
     $a->merge($b);
     $expected = ['foo' => 'no-bar', 'bar' => 'no-foo'];
     $this->assertEquals($expected, $a->toStandardArray());
     $a = ArrayObject::fromArray(['users' => ['bob', 'jim']]);
     $b = ['users' => ['lisa', 'tina']];
     $a->merge($b);
     $expected = ['users' => ['bob', 'jim', 'lisa', 'tina']];
     $this->assertEquals($expected, $a->toStandardArray());
     $a = ArrayObject::fromArray(['users' => ['jim', 'bob']]);
     $b = ['users' => 'none'];
     $a->merge($b);
     $expected = ['users' => 'none'];
     $this->assertEquals($expected, $a->toStandardArray());
     $a = ArrayObject::fromArray(['users' => ['lisa' => ['id' => 5, 'pw' => 'secret']], 'coretyson']);
     $b = ['users' => ['lisa' => ['pw' => 'new-pass', 'age' => 23]], 'ice-cream'];
     $a->merge($b);
     $expected = ['users' => ['lisa' => ['id' => 5, 'pw' => 'new-pass', 'age' => 23]], 'cakephp', 'ice-cream'];
     $this->assertEquals($expected, $a->toStandardArray());
     $c = ['users' => ['lisa' => ['pw' => 'you-will-never-guess', 'age' => 25, 'pet' => 'dog']], 'chocolate'];
     $expected = ['users' => ['lisa' => ['id' => 5, 'pw' => 'you-will-never-guess', 'age' => 25, 'pet' => 'dog']], 'cakephp', 'ice-cream', 'chocolate'];
     $a->merge($b, $c);
     $this->assertEquals($expected, $a->toStandardArray());
     $a->merge($b, [], $c);
     $this->assertEquals($expected, $a->toStandardArray());
     $a = ArrayObject::fromArray(['Tree', 'CounterCache', 'Upload' => ['folder' => 'products', 'fields' => ['image_1_id', 'image_2_id', 'image_3_id', 'image_4_id', 'image_5_id']]]);
     $b = ['Cacheable' => ['enabled' => false], 'Limit', 'Bindable', 'Validator', 'Transactional'];
     $a->merge($b);
     $expected = ['Tree', 'CounterCache', 'Upload' => ['folder' => 'products', 'fields' => ['image_1_id', 'image_2_id', 'image_3_id', 'image_4_id', 'image_5_id']], 'Cacheable' => ['enabled' => false], 'Limit', 'Bindable', 'Validator', 'Transactional'];
     $this->assertEquals($expected, $a->toStandardArray());
 }