@@ -40,6 +40,8 @@ public void StringSqlType()
4040 Assert . AreEqual ( "NVARCHAR(100)" , column . GetSqlType ( _dialect , null ) ) ;
4141 }
4242
43+ // Should be kept synchronized with Column same constant.
44+ private const int _charactersLeftCount = 4 ;
4345
4446 [ TestCase ( "xxxxyyyyz" ) ]
4547 [ TestCase ( "xxxxyyyyzz" ) ]
@@ -54,16 +56,15 @@ public void GetAliasRespectsMaxAliasLength(string columnName)
5456 {
5557 var dialect = new GenericDialect ( ) ;
5658
57- // Verify test case assumption .
58- Assert . That ( dialect . MaxAliasLength , Is . EqualTo ( 10 ) ) ;
59+ // Test case is meant for a max length of 10, adjusts name if it is more .
60+ columnName = AdjustColumnNameToMaxLength ( columnName , dialect , 10 ) ;
5961
6062 var column = new Column ( columnName ) ;
6163 string generatedAlias = column . GetAlias ( dialect ) ;
6264
63- Assert . That ( generatedAlias , Has . Length . LessThanOrEqualTo ( dialect . MaxAliasLength ) ) ;
65+ Assert . That ( generatedAlias , Has . Length . LessThanOrEqualTo ( dialect . MaxAliasLength - _charactersLeftCount ) ) ;
6466 }
6567
66-
6768 [ TestCase ( "xxxxyyyyz" ) ]
6869 [ TestCase ( "xxxxyyyyzz" ) ]
6970 [ TestCase ( "xxxxyyyyzzz" ) ]
@@ -77,15 +78,24 @@ public void GetAliasWithTableSuffixRespectsMaxAliasLength(string columnName)
7778 {
7879 var dialect = new GenericDialect ( ) ;
7980
80- // Verify test case assumption .
81- Assert . That ( dialect . MaxAliasLength , Is . EqualTo ( 10 ) ) ;
81+ // Test case is meant for a max length of 10, adjusts name if it is more .
82+ columnName = AdjustColumnNameToMaxLength ( columnName , dialect , 10 ) ;
8283
8384 var table = new Table ( ) ;
8485 var column = new Column ( columnName ) ;
8586
8687 string generatedAlias = column . GetAlias ( dialect , table ) ;
8788
88- Assert . That ( generatedAlias , Has . Length . LessThanOrEqualTo ( dialect . MaxAliasLength ) ) ;
89+ Assert . That ( generatedAlias , Has . Length . LessThanOrEqualTo ( dialect . MaxAliasLength - _charactersLeftCount ) ) ;
90+ }
91+
92+ private static string AdjustColumnNameToMaxLength ( string columnName , GenericDialect dialect , int referenceMaxLength )
93+ {
94+ if ( dialect . MaxAliasLength > referenceMaxLength )
95+ columnName = new string ( 'w' , dialect . MaxAliasLength - referenceMaxLength ) + columnName ;
96+ else if ( dialect . MaxAliasLength < referenceMaxLength )
97+ Assert . Fail ( "Dialect max alias length is too short for the test." ) ;
98+ return columnName ;
8999 }
90100 }
91101}
0 commit comments