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); }