lithium\tests\cases\util\SetTest::testMerge PHP Method

testMerge() public method

public testMerge ( )
    public function testMerge()
    {
        $result = Set::merge(array('foo'), array());
        $this->assertIdentical($result, array('foo'));
        $result = Set::merge((array) 'foo', (array) 'bar');
        $this->assertIdentical($result, array('foo', 'bar'));
        $result = Set::merge((array) 'foo', array('user' => 'bob', 'no-bar'));
        $this->assertIdentical($result, array('foo', 'user' => 'bob', 'no-bar'));
        $a = array('foo', 'foo2');
        $b = array('bar', 'bar2');
        $this->assertIdentical(Set::merge($a, $b), array('foo', 'foo2', 'bar', 'bar2'));
        $a = array('foo' => 'bar', 'bar' => 'foo');
        $b = array('foo' => 'no-bar', 'bar' => 'no-foo');
        $this->assertIdentical(Set::merge($a, $b), array('foo' => 'no-bar', 'bar' => 'no-foo'));
        $a = array('users' => array('bob', 'jim'));
        $b = array('users' => array('lisa', 'tina'));
        $this->assertIdentical(Set::merge($a, $b), array('users' => array('bob', 'jim', 'lisa', 'tina')));
        $a = array('users' => array('jim', 'bob'));
        $b = array('users' => 'none');
        $this->assertIdentical(Set::merge($a, $b), array('users' => 'none'));
        $a = array('users' => array('lisa' => array('id' => 5, 'pw' => 'secret')), 'lithium');
        $b = array('users' => array('lisa' => array('pw' => 'new-pass', 'age' => 23)), 'ice-cream');
        $this->assertIdentical(Set::merge($a, $b), array('users' => array('lisa' => array('id' => 5, 'pw' => 'new-pass', 'age' => 23)), 'lithium', 'ice-cream'));
        $c = array('users' => array('lisa' => array('pw' => 'you-will-never-guess', 'age' => 25, 'pet' => 'dog')), 'chocolate');
        $expected = array('users' => array('lisa' => array('id' => 5, 'pw' => 'you-will-never-guess', 'age' => 25, 'pet' => 'dog')), 'lithium', 'ice-cream', 'chocolate');
        $this->assertIdentical($expected, Set::merge(Set::merge($a, $b), $c));
        $this->assertIdentical($expected, Set::merge(Set::merge($a, $b), Set::merge(array(), $c)));
        $result = Set::merge($a, Set::merge($b, $c));
        $this->assertIdentical($expected, $result);
        $a = array('Tree', 'CounterCache', 'Upload' => array('folder' => 'products', 'fields' => array('image_1_id', 'image_2_id', 'image_3_id', 'image_4_id', 'image_5_id')));
        $b = array('Cacheable' => array('enabled' => false), 'Limit', 'Bindable', 'Validator', 'Transactional');
        $expected = array('Tree', 'CounterCache', 'Upload' => array('folder' => 'products', 'fields' => array('image_1_id', 'image_2_id', 'image_3_id', 'image_4_id', 'image_5_id')), 'Cacheable' => array('enabled' => false), 'Limit', 'Bindable', 'Validator', 'Transactional');
        $this->assertIdentical(Set::merge($a, $b), $expected);
        $expected = array('Tree' => null, 'CounterCache' => null, 'Upload' => array('folder' => 'products', 'fields' => array('image_1_id', 'image_2_id', 'image_3_id', 'image_4_id', 'image_5_id')), 'Cacheable' => array('enabled' => false), 'Limit' => null, 'Bindable' => null, 'Validator' => null, 'Transactional' => null);
        $this->assertIdentical(Set::normalize(Set::merge($a, $b)), $expected);
    }