diff --git a/tests/Mantis/Helper/ArrayTransposeTest.php b/tests/Mantis/Helper/ArrayTransposeTest.php
index f90b0de99d..ca9bfa241f 100644
--- a/tests/Mantis/Helper/ArrayTransposeTest.php
+++ b/tests/Mantis/Helper/ArrayTransposeTest.php
@@ -15,49 +15,47 @@
# along with MantisBT. If not, see .
/**
- * Mantis Unit Tests
- * @package Tests
* MantisBT Core Unit Tests
+ * @package Tests
* @subpackage Helper
* @copyright Copyright 2002 MantisBT Team - mantisbt-dev@lists.sourceforge.net
- * @link http://www.mantisbt.org
+ * @link https://www.mantisbt.org
*/
-# Includes
+declare( strict_types = 1 );
+
use Mantis\Exceptions\ClientException;
-require_once 'MantisCoreBase.php';
+require_once dirname( __FILE__, 2 ) . '/MantisCoreBase.php';
/**
- * Helper API tests
- * @package Tests
- * @subpackage String
+ * Test for helper_api::helper_array_transpose
+ *
+ * @see helper_array_transpose()
*/
class ArrayTransposeTest extends MantisCoreBase {
/**
* Tests helper_array_transpose() with good values.
*
- * @param mixed $p_in Input array.
- * @param mixed $p_out Output array.
- * @return void
+ * @param array $p_in Input array.
+ * @param array $p_out Output array.
*
* @dataProvider providerArrayTransposeValid
* @throws ClientException
*/
- public function testArrayTransposeValid( $p_in, $p_out ) {
- $this->assertEquals( $p_out, helper_array_transpose( $p_in ) );
+ public function testArrayTransposeValid( array $p_in, array $p_out ): void {
+ $this->assertSame( $p_out, helper_array_transpose( $p_in ) );
}
/**
* Tests helper_array_transpose() with invalid values.
*
- * @param mixed $p_in Input value.
- * @return void
+ * @param array $p_in Input value.
*
* @dataProvider providerArrayTransposeInvalid
*/
- public function testArrayTransposeInvalid( $p_in ) {
+ public function testArrayTransposeInvalid( array $p_in ): void {
$this->expectException( ClientException::class );
$this->expectExceptionMessage( 'helper_array_transpose can only handle bidimensional arrays' );
@@ -72,50 +70,47 @@ public function testArrayTransposeInvalid( $p_in ) {
*
* helper_array_transpose() should successfully transpose
* into .
- *
- * @return array List of test cases
*/
- public function providerArrayTransposeValid() {
- return array(
- 'Bidimensional simple array' => array(
- array( array( 'a' ), array( 'b' ) ),
- array( array ( 'a', 'b', ) )
- ),
-
- 'Bidimensional array with numeric indices' => array(
- array( 10 => array( 100 => 'a' ), 20 => array( 100 => 'b' ) ),
- array( 100 => array ( 10 => 'a', 20 => 'b', ) )
- ),
-
- 'Bidimensional array with numeric indices and missing keys' => array(
- # | 0 | 1 | 2 | | 0 | 1 |
- # ---+-----+-----+-----+ ---+-----+-----+
- # 0 | 111 | 222 | - | 0 | 111 | 333 |
- # ---+-----+-----+-----+ ==> ---+-----+-----+
- # 1 | 333 | - | 444 | 1 | 222 | - |
- # ---+-----+-----+-----+ ---+-----+-----+
- # 2 | - | 444 |
- # ---+-----+-----+
- array( array( 111, 222 ), array( 333, 2 => 444 ) ),
- array( array ( 111, 333 ), array( 222 ), array( 1 => 444 ) )
- ),
-
- 'Bidimensional associative array' => array(
- array( 'a' => array( 'k1' => 1, 'k2' => 2 ),'b' => array( 'k1' => 3,'k2' => 4) ),
- array( 'k1' => array( 'a' => 1, 'b' => 3 ), 'k2' => array( 'a' => 2, 'b' => 4) )
- ),
-
- 'Bidimensional array with arrays as data' => array(
- array(
- 'a' => array( 'k1' => array( 1, 2, 3 ), 'k2' => 2),
- 'b' => array( 'k1' => array( 4, 5, 6 ), 'k2' => 4)
- ),
- array(
- 'k1' => array( 'a' => array( 1, 2, 3 ), 'b' => array( 4, 5, 6 ) ),
- 'k2' => array( 'a' => 2, 'b' => 4 )
- )
- ),
- );
+ public function providerArrayTransposeValid(): Generator
+ {
+ yield 'Bidimensional simple array' => [
+ [['a'], ['b']],
+ [['a', 'b']]
+ ];
+
+ yield 'Bidimensional array with numeric indices' => [
+ [10 => [100 => 'a' ], 20 => [100 => 'b']],
+ [100 => [10 => 'a', 20 => 'b']]
+ ];
+
+ yield 'Bidimensional array with numeric indices and missing keys' => [
+ # | 0 | 1 | 2 | | 0 | 1 |
+ # ---+-----+-----+-----+ ---+-----+-----+
+ # 0 | 111 | 222 | - | 0 | 111 | 333 |
+ # ---+-----+-----+-----+ ==> ---+-----+-----+
+ # 1 | 333 | - | 444 | 1 | 222 | - |
+ # ---+-----+-----+-----+ ---+-----+-----+
+ # 2 | - | 444 |
+ # ---+-----+-----+
+ [[111, 222], [333, 2 => 444]],
+ [[111, 333], [222], [1 => 444]],
+ ];
+
+ yield 'Bidimensional associative array' => [
+ ['a' => ['k1' => 1, 'k2' => 2], 'b' => ['k1' => 3,'k2' => 4]],
+ ['k1' => ['a' => 1, 'b' => 3], 'k2' => ['a' => 2, 'b' => 4]]
+ ];
+
+ yield 'Bidimensional array with arrays as data' => [
+ [
+ 'a' => ['k1' => [1, 2, 3], 'k2' => 2],
+ 'b' => ['k1' => [4, 5, 6], 'k2' => 4]
+ ],
+ [
+ 'k1' => ['a' => [1, 2, 3], 'b' => [4, 5, 6]],
+ 'k2' => ['a' => 2, 'b' => 4]
+ ],
+ ];
}
/**
@@ -128,18 +123,16 @@ public function providerArrayTransposeValid() {
* Note: we don't need to test non-array types as these would throw a
* TypeError exception or an E_RECOVERABLE_ERROR (depending on PHP version).
*
- * @return array List of test cases
+ * @return Generator List of test cases
*/
- public function providerArrayTransposeInvalid() {
- return array(
- 'Simple array' => array(
- array( 1, 2 )
- ),
-
- # 1st element array, 2nd scalar
- 'Mixed, "non-square" array' => array(
- array( 'a' => array( 'k1' => 1, 'k2' => 2 ), 'b' => 123 )
- ),
- );
+ public function providerArrayTransposeInvalid(): Generator {
+ yield 'Simple array' => [
+ [1, 2]
+ ];
+
+ # 1st element array, 2nd scalar
+ yield 'Mixed, "non-square" array' => [
+ ['a' => ['k1' => 1, 'k2' => 2], 'b' => 123]
+ ];
}
}