@@ -145,10 +145,12 @@ public void AddTableWithCompoundPrimaryKeyShouldKeepNullForOtherProperties()
145145 new Column ( "AddressId" , DbType . Int32 , ColumnProperty . PrimaryKey ) ,
146146 new Column ( "Name" , DbType . String , 30 , ColumnProperty . Null )
147147 ) ;
148+
148149 Assert . That ( Provider . TableExists ( "Test" ) , Is . True , "Table doesn't exist" ) ;
149150 Assert . That ( Provider . PrimaryKeyExists ( "Test" , "PK_Test" ) , Is . True , "Constraint doesn't exist" ) ;
150151
151152 var column = Provider . GetColumnByName ( "Test" , "Name" ) ;
153+
152154 Assert . That ( column , Is . Not . Null ) ;
153155 Assert . That ( ( column . ColumnProperty & ColumnProperty . Null ) == ColumnProperty . Null , Is . True ) ;
154156 }
@@ -174,8 +176,10 @@ public void GetForeignKeyConstraints_SingleColumn_Success()
174176
175177 Provider . AddForeignKey ( fkName , childTableName , parentIdColumn , parentTableName , idColumn ) ;
176178
179+ // Act
177180 var foreignKeyConstraints = Provider . GetForeignKeyConstraints ( childTableName ) ;
178181
182+ // Assert
179183 var resultSingle = foreignKeyConstraints . Single ( ) ;
180184
181185 Assert . That ( resultSingle . Name . ToLowerInvariant ( ) , Is . EqualTo ( fkName . ToLowerInvariant ( ) ) ) ;
@@ -184,4 +188,50 @@ public void GetForeignKeyConstraints_SingleColumn_Success()
184188 Assert . That ( resultSingle . ChildColumns . Select ( x => x . ToLowerInvariant ( ) ) . Single ( ) , Is . EqualTo ( parentIdColumn . ToLowerInvariant ( ) ) ) ;
185189 Assert . That ( resultSingle . ParentColumns . Select ( x => x . ToLowerInvariant ( ) ) . Single ( ) , Is . EqualTo ( idColumn . ToLowerInvariant ( ) ) ) ;
186190 }
191+
192+ [ Test ]
193+ public void GetForeignKeyConstraints_MultiColumnColumn_Success ( )
194+ {
195+ // Arrange
196+ const string fkName = "MyForeignKey" ;
197+ const string childTableName = "ChildTable" ;
198+ const string parentTableName = "ParentTable" ;
199+
200+ const string parentColumnId = "Id" ;
201+ const string parentColumnTest = "Test" ;
202+ const string childColumnParentId = "ParentId" ;
203+ const string childColumnParentTest = "ParentTest" ;
204+
205+ Provider . AddTable ( parentTableName ,
206+ new Column ( parentColumnId , DbType . Int32 , ColumnProperty . PrimaryKey ) ,
207+ new Column ( parentColumnTest , DbType . Int32 , ColumnProperty . NotNull )
208+ ) ;
209+
210+ Provider . AddTable ( childTableName ,
211+ new Column ( childColumnParentId , DbType . Int32 , ColumnProperty . PrimaryKey ) ,
212+ new Column ( childColumnParentTest , DbType . Int32 )
213+ ) ;
214+
215+ Provider . AddUniqueConstraint ( "MyUniqueConstraint" , parentTableName , [ parentColumnId , parentColumnTest ] ) ;
216+
217+ Provider . AddForeignKey ( fkName , childTableName , [ childColumnParentId , childColumnParentTest ] , parentTableName , [ parentColumnId , parentColumnTest ] ) ;
218+
219+ // Act
220+ var foreignKeyConstraints = Provider . GetForeignKeyConstraints ( childTableName ) ;
221+
222+ // Assert
223+ var resultSingle = foreignKeyConstraints . Single ( ) ;
224+
225+ Assert . That ( resultSingle . Name . ToLowerInvariant ( ) , Is . EqualTo ( fkName . ToLowerInvariant ( ) ) ) ;
226+ Assert . That ( resultSingle . ChildTable . ToLowerInvariant ( ) , Is . EqualTo ( childTableName . ToLowerInvariant ( ) ) ) ;
227+ Assert . That ( resultSingle . ParentTable . ToLowerInvariant ( ) , Is . EqualTo ( parentTableName . ToLowerInvariant ( ) ) ) ;
228+
229+ var childColumns = resultSingle . ChildColumns . Select ( x => x . ToLowerInvariant ( ) ) . ToList ( ) ;
230+ var parentColumns = resultSingle . ParentColumns . Select ( x => x . ToLowerInvariant ( ) ) . ToList ( ) ;
231+
232+ Assert . That ( childColumns [ 0 ] , Is . EqualTo ( childColumnParentId . ToLowerInvariant ( ) ) ) ;
233+ Assert . That ( childColumns [ 1 ] , Is . EqualTo ( childColumnParentTest . ToLowerInvariant ( ) ) ) ;
234+ Assert . That ( parentColumns [ 0 ] , Is . EqualTo ( parentColumnId . ToLowerInvariant ( ) ) ) ;
235+ Assert . That ( parentColumns [ 1 ] , Is . EqualTo ( parentColumnTest . ToLowerInvariant ( ) ) ) ;
236+ }
187237}
0 commit comments