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

testAppend() public method

public testAppend ( )
    public function testAppend()
    {
        $array1 = array('ModelOne' => array('id' => 1001, 'field_one' => 'a1.m1.f1', 'field_two' => 'a1.m1.f2'));
        $array2 = array('ModelTwo' => array('id' => 1002, 'field_one' => 'a2.m2.f1', 'field_two' => 'a2.m2.f2'));
        $result = Set::append($array1, $array2);
        $this->assertIdentical($result, $array1 + $array2);
        $array3 = array('ModelOne' => array('id' => 1003, 'field_one' => 'a3.m1.f1', 'field_two' => 'a3.m1.f2', 'field_three' => 'a3.m1.f3'));
        $result = Set::append($array1, $array3);
        $expected = array('ModelOne' => array('id' => 1001, 'field_one' => 'a1.m1.f1', 'field_two' => 'a1.m1.f2', 'field_three' => 'a3.m1.f3'));
        $this->assertIdentical($expected, $result);
        $array1 = array(array('ModelOne' => array('id' => 1001, 'field_one' => 's1.0.m1.f1', 'field_two' => 's1.0.m1.f2')), array('ModelTwo' => array('id' => 1002, 'field_one' => 's1.1.m2.f2', 'field_two' => 's1.1.m2.f2')));
        $array2 = array(array('ModelOne' => array('id' => 1001, 'field_one' => 's2.0.m1.f1', 'field_two' => 's2.0.m1.f2')), array('ModelTwo' => array('id' => 1002, 'field_one' => 's2.1.m2.f2', 'field_two' => 's2.1.m2.f2')));
        $result = Set::append($array1, $array2);
        $this->assertIdentical($result, $array1);
        $array3 = array(array('ModelThree' => array('id' => 1003, 'field_one' => 's3.0.m3.f1', 'field_two' => 's3.0.m3.f2')));
        $result = Set::append($array1, $array3);
        $expected = array(array('ModelOne' => array('id' => 1001, 'field_one' => 's1.0.m1.f1', 'field_two' => 's1.0.m1.f2'), 'ModelThree' => array('id' => 1003, 'field_one' => 's3.0.m3.f1', 'field_two' => 's3.0.m3.f2')), array('ModelTwo' => array('id' => 1002, 'field_one' => 's1.1.m2.f2', 'field_two' => 's1.1.m2.f2')));
        $this->assertIdentical($expected, $result);
        $result = Set::append($array1, array());
        $this->assertIdentical($result, $array1);
        $result = Set::append($array1, $array2);
        $this->assertIdentical($result, $array1 + $array2);
        $result = Set::append(array(), array('2'));
        $this->assertIdentical(array('2'), $result);
        $array1 = array('ModelOne' => array('id' => 1001, 'field_one' => 's1.0.m1.f1', 'field_two' => 's1.0.m1.f2'), 'ModelTwo' => array('id' => 1002, 'field_one' => 's1.0.m2.f1', 'field_two' => 's1.0.m2.f2'));
        $array2 = array('ModelTwo' => array('field_three' => 's1.0.m2.f3'));
        $array3 = array('ModelOne' => array('field_three' => 's1.0.m1.f3'));
        $result = Set::append($array1, $array2, $array3);
        $expected = array('ModelOne' => array('id' => 1001, 'field_one' => 's1.0.m1.f1', 'field_two' => 's1.0.m1.f2', 'field_three' => 's1.0.m1.f3'), 'ModelTwo' => array('id' => 1002, 'field_one' => 's1.0.m2.f1', 'field_two' => 's1.0.m2.f2', 'field_three' => 's1.0.m2.f3'));
        $this->assertIdentical($expected, $result);
    }