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

testCombine() public method

public testCombine ( )
    public function testCombine()
    {
        $result = Set::combine(array(), '/User/id', '/User/Data');
        $this->assertEmpty($result);
        $result = Set::combine('', '/User/id', '/User/Data');
        $this->assertEmpty($result);
        $a = array(array('User' => array('id' => 2, 'group_id' => 1, 'Data' => array('user' => 'mariano.iglesias', 'name' => 'Mariano Iglesias'))), array('User' => array('id' => 14, 'group_id' => 2, 'Data' => array('user' => 'jperras', 'name' => 'Joel Perras'))), array('User' => array('id' => 25, 'group_id' => 1, 'Data' => array('user' => 'gwoo', 'name' => 'The Gwoo'))));
        $result = Set::combine($a, '/User/id');
        $expected = array(2 => null, 14 => null, 25 => null);
        $this->assertIdentical($expected, $result);
        $result = Set::combine($a, '/User/id', '/User/non-existant');
        $expected = array(2 => null, 14 => null, 25 => null);
        $this->assertIdentical($expected, $result);
        $result = Set::combine($a, '/User/id', '/User/Data/.');
        $expected = array(2 => array('user' => 'mariano.iglesias', 'name' => 'Mariano Iglesias'), 14 => array('user' => 'jperras', 'name' => 'Joel Perras'), 25 => array('user' => 'gwoo', 'name' => 'The Gwoo'));
        $this->assertIdentical($expected, $result);
        $result = Set::combine($a, '/User/id', '/User/Data/name/.');
        $expected = array(2 => 'Mariano Iglesias', 14 => 'Joel Perras', 25 => 'The Gwoo');
        $this->assertIdentical($expected, $result);
        $result = Set::combine($a, '/User/id', '/User/Data/.', '/User/group_id');
        $expected = array(1 => array(2 => array('user' => 'mariano.iglesias', 'name' => 'Mariano Iglesias'), 25 => array('user' => 'gwoo', 'name' => 'The Gwoo')), 2 => array(14 => array('user' => 'jperras', 'name' => 'Joel Perras')));
        $this->assertIdentical($expected, $result);
        $result = Set::combine($a, '/User/id', '/User/Data/name/.', '/User/group_id');
        $expected = array(1 => array(2 => 'Mariano Iglesias', 25 => 'The Gwoo'), 2 => array(14 => 'Joel Perras'));
        $this->assertIdentical($expected, $result);
        $result = Set::combine($a, '/User/id', array('{0}: {1}', '/User/Data/user', '/User/Data/name'), '/User/group_id');
        $expected = array(1 => array(2 => 'mariano.iglesias: Mariano Iglesias', 25 => 'gwoo: The Gwoo'), 2 => array(14 => 'jperras: Joel Perras'));
        $this->assertIdentical($expected, $result);
        $result = Set::combine($a, array('{0}: {1}', '/User/Data/user', '/User/Data/name'), '/User/id');
        $expected = array('mariano.iglesias: Mariano Iglesias' => 2, 'jperras: Joel Perras' => 14, 'gwoo: The Gwoo' => 25);
        $this->assertIdentical($expected, $result);
        $result = Set::combine($a, array('{1}: {0}', '/User/Data/user', '/User/Data/name'), '/User/id');
        $expected = array('Mariano Iglesias: mariano.iglesias' => 2, 'Joel Perras: jperras' => 14, 'The Gwoo: gwoo' => 25);
        $this->assertIdentical($expected, $result);
        $result = Set::combine($a, array('%1$s: %2$d', '/User/Data/user', '/User/id'), '/User/Data/name');
        $expected = array('mariano.iglesias: 2' => 'Mariano Iglesias', 'jperras: 14' => 'Joel Perras', 'gwoo: 25' => 'The Gwoo');
        $this->assertIdentical($expected, $result);
        $result = Set::combine($a, array('%2$d: %1$s', '/User/Data/user', '/User/id'), '/User/Data/name');
        $expected = array('2: mariano.iglesias' => 'Mariano Iglesias', '14: jperras' => 'Joel Perras', '25: gwoo' => 'The Gwoo');
        $this->assertIdentical($expected, $result);
        $b = new stdClass();
        $b->users = array(array('User' => array('id' => 2, 'group_id' => 1, 'Data' => array('user' => 'mariano.iglesias', 'name' => 'Mariano Iglesias'))), array('User' => array('id' => 14, 'group_id' => 2, 'Data' => array('user' => 'jperras', 'name' => 'Joel Perras'))), array('User' => array('id' => 25, 'group_id' => 1, 'Data' => array('user' => 'gwoo', 'name' => 'The Gwoo'))));
        $result = Set::combine($b, '/users/User/id');
        $expected = array(2 => null, 14 => null, 25 => null);
        $this->assertIdentical($expected, $result);
        $result = Set::combine($b, '/users/User/id', '/users/User/non-existant');
        $expected = array(2 => null, 14 => null, 25 => null);
        $this->assertIdentical($expected, $result);
    }