@@ -160,5 +160,50 @@ public void WrapWithMultipleSpaces()
160160
161161 Assert . Equal ( "[My Table One] AS [Table One]" , compiler . Wrap ( "My Table One as Table One" ) ) ;
162162 }
163+
164+ [ Fact ]
165+ public void CompilerSpecificFrom ( )
166+ {
167+ var query = new Query ( )
168+ . ForSqlServer ( q => q . From ( "mssql" ) )
169+ . ForPostgreSql ( q => q . From ( "pgsql" ) )
170+ . ForMySql ( q => q . From ( "mysql" ) ) ;
171+ var engines = new [ ] { EngineCodes . SqlServer , EngineCodes . MySql , EngineCodes . PostgreSql } ;
172+ var c = Compilers . Compile ( engines , query ) ;
173+
174+ Assert . Equal ( "SELECT * FROM [mssql]" , c [ EngineCodes . SqlServer ] . RawSql ) ;
175+ Assert . Equal ( "SELECT * FROM \" pgsql\" " , c [ EngineCodes . PostgreSql ] . RawSql ) ;
176+ Assert . Equal ( "SELECT * FROM `mysql`" , c [ EngineCodes . MySql ] . RawSql ) ;
177+ }
178+
179+ [ Fact ]
180+ public void CompilerSpecificFromRaw ( )
181+ {
182+ var query = new Query ( )
183+ . ForSqlServer ( q => q . FromRaw ( "[mssql]" ) )
184+ . ForPostgreSql ( q => q . FromRaw ( "[pgsql]" ) )
185+ . ForMySql ( q => q . FromRaw ( "[mysql]" ) ) ;
186+ var engines = new [ ] { EngineCodes . SqlServer , EngineCodes . MySql , EngineCodes . PostgreSql } ;
187+ var c = Compilers . Compile ( engines , query ) ;
188+
189+ Assert . Equal ( "SELECT * FROM [mssql]" , c [ EngineCodes . SqlServer ] . RawSql ) ;
190+ Assert . Equal ( "SELECT * FROM \" pgsql\" " , c [ EngineCodes . PostgreSql ] . RawSql ) ;
191+ Assert . Equal ( "SELECT * FROM `mysql`" , c [ EngineCodes . MySql ] . RawSql ) ;
192+ }
193+
194+ [ Fact ]
195+ public void CompilerSpecificFromMixed ( )
196+ {
197+ var query = new Query ( )
198+ . ForSqlServer ( q => q . From ( "mssql" ) )
199+ . ForPostgreSql ( q => q . FromRaw ( "[pgsql]" ) )
200+ . ForMySql ( q => q . From ( "mysql" ) ) ;
201+ var engines = new [ ] { EngineCodes . SqlServer , EngineCodes . MySql , EngineCodes . PostgreSql } ;
202+ var c = Compilers . Compile ( engines , query ) ;
203+
204+ Assert . Equal ( "SELECT * FROM [mssql]" , c [ EngineCodes . SqlServer ] . RawSql ) ;
205+ Assert . Equal ( "SELECT * FROM \" pgsql\" " , c [ EngineCodes . PostgreSql ] . RawSql ) ;
206+ Assert . Equal ( "SELECT * FROM `mysql`" , c [ EngineCodes . MySql ] . RawSql ) ;
207+ }
163208 }
164209}
0 commit comments