@@ -8,40 +8,52 @@ struct TestDatabase: Database {
88 let driver : TestDatabaseDriver
99 let context : DatabaseContext
1010
11- func execute( query: DatabaseQuery , onRow : @escaping ( DatabaseRow ) -> ( ) ) -> EventLoopFuture < Void > {
12- self . driver. handler ( query) . forEach ( onRow )
11+ func execute( query: DatabaseQuery , onOutput : @escaping ( DatabaseOutput ) -> ( ) ) -> EventLoopFuture < Void > {
12+ self . driver. handler ( query) . forEach ( onOutput )
1313 return self . eventLoop. makeSucceededFuture ( ( ) )
1414 }
1515
1616 func execute( schema: DatabaseSchema ) -> EventLoopFuture < Void > {
1717 fatalError ( )
1818 }
19-
19+
20+ func execute( enum: DatabaseEnum ) -> EventLoopFuture < Void > {
21+ fatalError ( )
22+ }
23+
2024 func withConnection< T> ( _ closure: @escaping ( Database ) -> EventLoopFuture < T > ) -> EventLoopFuture < T > {
2125 closure ( self )
2226 }
27+
28+ func transaction< T> ( _ closure: @escaping ( Database ) -> EventLoopFuture < T > ) -> EventLoopFuture < T > {
29+ closure ( self )
30+ }
2331}
2432
25- struct TestRow : DatabaseRow {
26- var data : [ String : Any ]
33+ struct TestRow : DatabaseOutput {
34+ var data : [ FieldKey : Any ]
2735
2836 var description : String {
2937 self . data. description
3038 }
39+
40+ func schema( _ schema: String ) -> DatabaseOutput {
41+ self
42+ }
3143
32- func contains( field: String ) -> Bool {
44+ func contains( _ field: FieldKey ) -> Bool {
3345 self . data. keys. contains ( field)
3446 }
3547
36- func decode< T> ( field: String , as type: T . Type , for database : Database ) throws -> T where T : Decodable {
37- return self . data [ field] as! T
48+ func decode< T> ( _ field: FieldKey , as type: T . Type ) throws -> T where T : Decodable {
49+ self . data [ field] ! as! T
3850 }
3951}
4052
4153final class TestDatabaseDriver : DatabaseDriver {
42- let handler : ( DatabaseQuery ) -> [ DatabaseRow ]
54+ let handler : ( DatabaseQuery ) -> [ DatabaseOutput ]
4355
44- init ( _ handler: @escaping ( DatabaseQuery ) -> [ DatabaseRow ] ) {
56+ init ( _ handler: @escaping ( DatabaseQuery ) -> [ DatabaseOutput ] ) {
4557 self . handler = handler
4658 }
4759
@@ -53,3 +65,13 @@ final class TestDatabaseDriver: DatabaseDriver {
5365 // nothing
5466 }
5567}
68+
69+ struct TestDatabaseConfiguration : DatabaseConfiguration {
70+ let handler : ( DatabaseQuery ) -> [ DatabaseOutput ]
71+
72+ var middleware : [ AnyModelMiddleware ] = [ ]
73+
74+ func makeDriver( for databases: Databases ) -> DatabaseDriver {
75+ TestDatabaseDriver ( handler)
76+ }
77+ }
0 commit comments