@@ -258,7 +258,8 @@ final class SQLiteMigrationManagerTests: XCTestCase {
258
258
createMigrationTable ( )
259
259
try CreateTable ( version: 0 ) . migrateDatabase ( db)
260
260
try AddRow ( version: 1 ) . migrateDatabase ( db)
261
- subject = makeSubject ( migrations: [ AddRow ( version: 2 ) , FileMigration ( url: testBundle. url ( forResource: " 3_add-row " , withExtension: " sql " ) !) !, AddRow ( version: 4 ) ] )
261
+ let fileMigration = try makeFileMigration ( " 3_add-row " )
262
+ subject = makeSubject ( migrations: [ AddRow ( version: 2 ) , fileMigration, AddRow ( version: 4 ) ] )
262
263
263
264
XCTAssertNoThrow ( try subject. migrateDatabase ( ) , " successfully migrates database " )
264
265
@@ -282,7 +283,8 @@ final class SQLiteMigrationManagerTests: XCTestCase {
282
283
createMigrationTable ( )
283
284
try CreateTable ( version: 0 ) . migrateDatabase ( db)
284
285
try AddRow ( version: 1 ) . migrateDatabase ( db)
285
- subject = makeSubject ( migrations: [ AddRow ( version: 2 ) , FileMigration ( url: testBundle. url ( forResource: " 3_add-row " , withExtension: " sql " ) !) !, AddRow ( version: 4 ) ] )
286
+ let fileMigration = try makeFileMigration ( " 3_add-row " )
287
+ subject = makeSubject ( migrations: [ AddRow ( version: 2 ) , fileMigration, AddRow ( version: 4 ) ] )
286
288
287
289
XCTAssertNoThrow ( try subject. migrateDatabase ( toVersion: 3 ) , " successfully migrates database " )
288
290
@@ -311,6 +313,7 @@ extension SQLiteMigrationManagerTests {
311
313
312
314
enum TestError : Error {
313
315
case BundleNotFound( String )
316
+ case MigrationNotFound( String )
314
317
}
315
318
316
319
private func makeSubject( migrations: [ Migration ] , bundleName: String , file: StaticString = #file, line: UInt = #line) throws -> SQLiteMigrationManager {
@@ -324,6 +327,14 @@ extension SQLiteMigrationManagerTests {
324
327
private func makeSubject( migrations: [ Migration ] ) -> SQLiteMigrationManager {
325
328
return SQLiteMigrationManager ( db: db, migrations: migrations)
326
329
}
330
+
331
+ private func makeFileMigration( _ fileName: String , file: StaticString = #file, line: UInt = #line) throws -> Migration {
332
+ guard let url = testBundle. url ( forResource: fileName, withExtension: " sql " ) , let fileMigration = FileMigration ( url: url) else {
333
+ XCTFail ( " migration not found: \( fileName) " , file: file, line: line)
334
+ throw TestError . MigrationNotFound ( fileName)
335
+ }
336
+ return fileMigration
337
+ }
327
338
}
328
339
329
340
struct TestDB {
0 commit comments