@@ -128,4 +128,34 @@ public function testGetLastInsertID()
128128 $ this ->assertEquals (2 , $ schema ->getLastInsertID ($ schema ->getTableSchema ('animal ' )->sequenceName ));
129129 $ this ->assertEquals (2 , $ schema ->getLastInsertID ($ schema ->getTableSchema ('profile ' )->sequenceName ));
130130 }
131+
132+ public function testFindUniqueIndexes ()
133+ {
134+ /* @var $schema Schema */
135+ $ schema = $ this ->getConnection ()->schema ;
136+
137+ /* Test single primary key */
138+ $ table = $ schema ->getTableSchema ('order ' );
139+ $ uniqueIndexes = $ schema ->findUniqueIndexes ($ table );
140+
141+ $ this ->assertTrue (count ($ uniqueIndexes ) == 1 );
142+ $ this ->assertEquals (['id ' ], reset ($ uniqueIndexes ));
143+
144+ /* Test composer primary key */
145+ $ table = $ schema ->getTableSchema ('order_item ' );
146+ $ uniqueIndexes = $ schema ->findUniqueIndexes ($ table );
147+
148+ $ this ->assertTrue (count ($ uniqueIndexes ) == 1 );
149+ $ this ->assertEquals (['order_id ' , 'item_id ' ], reset ($ uniqueIndexes ));
150+
151+ /* Test without primary key */
152+ $ table = $ schema ->getTableSchema ('unique_values ' );
153+ $ uniqueIndexes = $ schema ->findUniqueIndexes ($ table );
154+
155+ $ this ->assertTrue (count ($ uniqueIndexes ) == 4 );
156+ $ this ->assertEquals (['a ' ], $ uniqueIndexes ['uniquea ' ]);
157+ $ this ->assertEquals (['b ' ], $ uniqueIndexes ['uniqueb ' ]);
158+ $ this ->assertEquals (['b ' , 'c ' ], $ uniqueIndexes ['uniquebc ' ]);
159+ $ this ->assertEquals (['a ' , 'b ' , 'c ' ], $ uniqueIndexes ['uniqueabc ' ]);
160+ }
131161}
0 commit comments