1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
|
<?php
/**
* Tests for SimpleSAML\Utils\Arrays.
*/
class Utils_ArraysTest extends PHPUnit_Framework_TestCase
{
/**
* Test the arrayize() function.
*/
public function testArrayize()
{
// check with empty array as input
$array = array();
$this->assertEquals($array, SimpleSAML\Utils\Arrays::arrayize($array));
// check non-empty array as input
$array = array('key' => 'value');
$this->assertEquals($array, SimpleSAML\Utils\Arrays::arrayize($array));
// check indexes are ignored when input is an array
$this->assertArrayNotHasKey('invalid', SimpleSAML\Utils\Arrays::arrayize($array, 'invalid'));
// check default index
$expected = array('string');
$this->assertEquals($expected, SimpleSAML\Utils\Arrays::arrayize($expected[0]));
// check string index
$index = 'key';
$expected = array($index => 'string');
$this->assertEquals($expected, SimpleSAML\Utils\Arrays::arrayize($expected[$index], $index));
}
/**
* Test the transpose() function.
*/
public function testTranspose()
{
// check bad arrays
$this->assertFalse(
SimpleSAML\Utils\Arrays::transpose(array('1', '2', '3')),
'Invalid two-dimensional array was accepted'
);
$this->assertFalse(
SimpleSAML\Utils\Arrays::transpose(array('1' => 0, '2' => '0', '3' => array(0))),
'Invalid elements on a two-dimensional array were accepted'
);
// check array with numerical keys
$array = array(
'key1' => array(
'value1'
),
'key2' => array(
'value1',
'value2'
)
);
$transposed = array(
array(
'key1' => 'value1',
'key2' => 'value1'
),
array(
'key2' => 'value2'
)
);
$this->assertEquals(
$transposed,
SimpleSAML\Utils\Arrays::transpose($array),
'Unexpected result of transpose()'
);
// check array with string keys
$array = array(
'key1' => array(
'subkey1' => 'value1'
),
'key2' => array(
'subkey1' => 'value1',
'subkey2' => 'value2'
)
);
$transposed = array(
'subkey1' => array(
'key1' => 'value1',
'key2' => 'value1'
),
'subkey2' => array(
'key2' => 'value2'
)
);
$this->assertEquals(
$transposed,
SimpleSAML\Utils\Arrays::transpose($array),
'Unexpected result of transpose()'
);
// check array with no keys in common between sub arrays
$array = array(
'key1' => array(
'subkey1' => 'value1'
),
'key2' => array(
'subkey2' => 'value1',
'subkey3' => 'value2'
)
);
$transposed = array(
'subkey1' => array(
'key1' => 'value1',
),
'subkey2' => array(
'key2' => 'value1'
),
'subkey3' => array(
'key2' => 'value2'
)
);
$this->assertEquals(
$transposed,
SimpleSAML\Utils\Arrays::transpose($array),
'Unexpected result of transpose()'
);
}
}
|