@@ -691,7 +691,7 @@ public function testDropColumn()
691691 $ this ->assertFalse ($ this ->adapter ->hasColumn ('t ' , 'column1 ' ));
692692 }
693693
694- public function columnsProvider ()
694+ public static function columnsProvider (): array
695695 {
696696 return [
697697 ['column1 ' , 'string ' , ['null ' => true , 'default ' => null ]],
@@ -718,7 +718,7 @@ public function columnsProvider()
718718 /**
719719 * @dataProvider columnsProvider
720720 */
721- public function testGetColumns ($ colName , $ type , $ options )
721+ public function testGetColumns ($ colName , $ type , $ options ): void
722722 {
723723 $ table = new Table ('t ' , [], $ this ->adapter );
724724 $ table
@@ -727,19 +727,23 @@ public function testGetColumns($colName, $type, $options)
727727
728728 $ columns = $ this ->adapter ->getColumns ('t ' );
729729 $ this ->assertCount (2 , $ columns );
730- $ this ->assertEquals ($ colName , $ columns [$ colName ]->getName ());
731- $ this ->assertEquals ($ type , $ columns [$ colName ]->getType ());
730+
731+ $ specificColumn = $ this ->getColumn ('t ' , $ colName );
732+ $ this ->assertNotNull ($ specificColumn );
733+
734+ $ this ->assertEquals ($ colName , $ specificColumn ->getName ());
735+ $ this ->assertEquals ($ type , $ specificColumn ->getType ());
732736
733737 if (isset ($ options ['limit ' ])) {
734- $ this ->assertEquals ($ options ['limit ' ], $ columns [ $ colName ] ->getLimit ());
738+ $ this ->assertEquals ($ options ['limit ' ], $ specificColumn ->getLimit ());
735739 }
736740
737741 if (isset ($ options ['precision ' ])) {
738- $ this ->assertEquals ($ options ['precision ' ], $ columns [ $ colName ] ->getPrecision ());
742+ $ this ->assertEquals ($ options ['precision ' ], $ specificColumn ->getPrecision ());
739743 }
740744
741745 if (isset ($ options ['scale ' ])) {
742- $ this ->assertEquals ($ options ['scale ' ], $ columns [ $ colName ] ->getScale ());
746+ $ this ->assertEquals ($ options ['scale ' ], $ specificColumn ->getScale ());
743747 }
744748 }
745749
@@ -1663,4 +1667,18 @@ public function testInvalidPdoAttribute($attribute)
16631667 $ this ->expectExceptionMessage ('Invalid PDO attribute: ' . $ attribute . ' (\PDO:: ' . strtoupper ($ attribute ) . ') ' );
16641668 $ adapter ->connect ();
16651669 }
1670+
1671+ private function getColumn (string $ tableName , string $ columnName ): ?Column
1672+ {
1673+ $ columns = $ this ->adapter ->getColumns ($ tableName );
1674+
1675+ $ filteredColumns = array_filter (
1676+ $ columns ,
1677+ static function ($ column ) use ($ columnName ) {
1678+ return $ column ->getName () === $ columnName ;
1679+ },
1680+ );
1681+
1682+ return array_pop ($ filteredColumns );
1683+ }
16661684}
0 commit comments