1+ using System . Collections . Generic ;
2+ using System . Threading . Tasks ;
3+ using NUnit . Framework ;
4+ using ServiceStack . Script ;
5+
6+ namespace ServiceStack . OrmLite . Tests
7+ {
8+ [ TestFixtureOrmLite ]
9+ public class DbScriptTests : OrmLiteProvidersTestBase
10+ {
11+ public DbScriptTests ( DialectContext context ) : base ( context ) { }
12+
13+ [ Test ]
14+ public async Task Can_retrieve_single_record_with_param ( )
15+ {
16+ using var db = await OpenDbConnectionAsync ( ) ;
17+ db . DropAndCreateTable < Rockstar > ( ) ;
18+ db . InsertAll ( AutoQueryTests . SeedRockstars ) ;
19+
20+ var args = new Dictionary < string , object > { { "id" , 3 } } ;
21+ var tableName = "Rockstar" . SqlTable ( DialectProvider ) ;
22+ var result = db . Single < Rockstar > ( $ "SELECT * FROM { tableName } WHERE Id = @id", args ) ;
23+ Assert . That ( result . FirstName , Is . EqualTo ( "Kurt" ) ) ;
24+
25+ result = await db . SingleAsync < Rockstar > ( $ "SELECT * FROM { tableName } WHERE Id = @id", args ) ;
26+ Assert . That ( result . FirstName , Is . EqualTo ( "Kurt" ) ) ;
27+
28+ result = await db . SingleAsync < Rockstar > ( $ "SELECT * FROM { tableName } WHERE Id = @id", new { id = 3 } ) ;
29+ Assert . That ( result . FirstName , Is . EqualTo ( "Kurt" ) ) ;
30+ }
31+
32+ [ Test ]
33+ public async Task Can_call_dbSingle_with_param ( )
34+ {
35+ using var db = await OpenDbConnectionAsync ( ) ;
36+ db . DropAndCreateTable < Rockstar > ( ) ;
37+ db . InsertAll ( AutoQueryTests . SeedRockstars ) ;
38+
39+ var firstName = "FirstName" . SqlColumn ( DialectProvider ) . StripDbQuotes ( ) ;
40+
41+ var args = new Dictionary < string , object > { { "id" , 3 } } ;
42+
43+ var filter = new DbScripts { DbFactory = base . DbFactory } ;
44+
45+ var result = filter . dbSingle ( default , $ "SELECT * FROM Rockstar WHERE Id = @id", args ) ;
46+
47+ var objDictionary = ( Dictionary < string , object > ) result ;
48+ Assert . That ( objDictionary [ firstName ] , Is . EqualTo ( "Kurt" ) ) ;
49+
50+ var asyncFilter = new DbScriptsAsync { DbFactory = base . DbFactory } ;
51+ result = await asyncFilter . dbSingle ( default , $ "SELECT * FROM Rockstar WHERE Id = @id", args ) ;
52+
53+ objDictionary = ( Dictionary < string , object > ) result ;
54+ Assert . That ( objDictionary [ firstName ] , Is . EqualTo ( "Kurt" ) ) ;
55+ }
56+
57+ }
58+ }
0 commit comments