Allow unit-testing in SPM builds

This commit is contained in:
John Estropia
2022-08-16 11:55:44 +08:00
parent da4ac192db
commit 7f4cfaf5a0
5 changed files with 30 additions and 16 deletions

View File

@@ -28,6 +28,17 @@ import XCTest
@testable @testable
import CoreStore import CoreStore
#if !SWIFT_PACKAGE
extension Bundle {
static var module: Bundle {
return Bundle(for: BaseTestCase.self)
}
}
#endif
// MARK: - BaseTestCase // MARK: - BaseTestCase
@@ -40,7 +51,7 @@ class BaseTestCase: XCTestCase {
let stack = DataStack( let stack = DataStack(
xcodeModelName: "Model", xcodeModelName: "Model",
bundle: Bundle(for: Self.self) bundle: Bundle.module
) )
do { do {

View File

@@ -84,7 +84,7 @@ final class ErrorTests: XCTestCase {
let schemaHistory = SchemaHistory( let schemaHistory = SchemaHistory(
XcodeDataModelSchema.from( XcodeDataModelSchema.from(
modelName: "Model", modelName: "Model",
bundle: Bundle(for: Self.self) bundle: Bundle.module
) )
) )
let version = "1.0.0" let version = "1.0.0"

View File

@@ -42,7 +42,7 @@ class SetupTests: BaseTestDataTestCase {
let schemaHistory = SchemaHistory( let schemaHistory = SchemaHistory(
XcodeDataModelSchema.from( XcodeDataModelSchema.from(
modelName: "Model", modelName: "Model",
bundle: Bundle(for: Self.self) bundle: Bundle.module
) )
) )
let stack = DataStack(schemaHistory: schemaHistory) let stack = DataStack(schemaHistory: schemaHistory)
@@ -68,7 +68,7 @@ class SetupTests: BaseTestDataTestCase {
DataStack( DataStack(
xcodeModelName: "Model", xcodeModelName: "Model",
bundle: Bundle(for: Self.self), bundle: Bundle.module,
migrationChain: migrationChain migrationChain: migrationChain
) )
} }
@@ -82,7 +82,7 @@ class SetupTests: BaseTestDataTestCase {
let stack = DataStack( let stack = DataStack(
xcodeModelName: "Model", xcodeModelName: "Model",
bundle: Bundle(for: Self.self) bundle: Bundle.module
) )
do { do {
@@ -137,7 +137,7 @@ class SetupTests: BaseTestDataTestCase {
let stack = DataStack( let stack = DataStack(
xcodeModelName: "Model", xcodeModelName: "Model",
bundle: Bundle(for: Self.self) bundle: Bundle.module
) )
do { do {
@@ -205,7 +205,7 @@ class SetupTests: BaseTestDataTestCase {
let stack = DataStack( let stack = DataStack(
xcodeModelName: "Model", xcodeModelName: "Model",
bundle: Bundle(for: Self.self) bundle: Bundle.module
) )
try! stack.addStorageAndWait(sqliteStore) try! stack.addStorageAndWait(sqliteStore)
self.prepareTestDataForStack(stack) self.prepareTestDataForStack(stack)
@@ -224,7 +224,7 @@ class SetupTests: BaseTestDataTestCase {
let metadata = try createStore() let metadata = try createStore()
let stack = DataStack( let stack = DataStack(
xcodeModelName: "Model", xcodeModelName: "Model",
bundle: Bundle(for: Self.self) bundle: Bundle.module
) )
try sqliteStore.cs_eraseStorageAndWait( try sqliteStore.cs_eraseStorageAndWait(
metadata: metadata, metadata: metadata,
@@ -257,7 +257,7 @@ class SetupTests: BaseTestDataTestCase {
let stack = DataStack( let stack = DataStack(
xcodeModelName: "Model", xcodeModelName: "Model",
bundle: Bundle(for: Self.self) bundle: Bundle.module
) )
do { do {
@@ -325,7 +325,7 @@ class SetupTests: BaseTestDataTestCase {
let stack = DataStack( let stack = DataStack(
xcodeModelName: "Model", xcodeModelName: "Model",
bundle: Bundle(for: Self.self) bundle: Bundle.module
) )
try! stack.addStorageAndWait( try! stack.addStorageAndWait(
SQLiteStore.legacy( SQLiteStore.legacy(
@@ -351,7 +351,7 @@ class SetupTests: BaseTestDataTestCase {
let metadata = try createStore() let metadata = try createStore()
let stack = DataStack( let stack = DataStack(
xcodeModelName: "Model", xcodeModelName: "Model",
bundle: Bundle(for: Self.self) bundle: Bundle.module
) )
try sqliteStore.cs_eraseStorageAndWait( try sqliteStore.cs_eraseStorageAndWait(
metadata: metadata, metadata: metadata,

View File

@@ -103,7 +103,7 @@ final class StorageInterfaceTests: XCTestCase {
.appendingPathExtension("db") .appendingPathExtension("db")
let mappingProvider = XcodeSchemaMappingProvider( let mappingProvider = XcodeSchemaMappingProvider(
from: "V1", to: "V2", from: "V1", to: "V2",
mappingModelBundle: Bundle(for: Self.self) mappingModelBundle: Bundle.module
) )
let store = SQLiteStore( let store = SQLiteStore(
@@ -131,7 +131,7 @@ final class StorageInterfaceTests: XCTestCase {
let fileName = UUID().uuidString + ".db" let fileName = UUID().uuidString + ".db"
let mappingProvider = XcodeSchemaMappingProvider( let mappingProvider = XcodeSchemaMappingProvider(
from: "V1", to: "V2", from: "V1", to: "V2",
mappingModelBundle: Bundle(for: Self.self) mappingModelBundle: Bundle.module
) )
let store = SQLiteStore( let store = SQLiteStore(
fileName: fileName, fileName: fileName,
@@ -197,7 +197,7 @@ final class StorageInterfaceTests: XCTestCase {
let fileName = UUID().uuidString + ".db" let fileName = UUID().uuidString + ".db"
let mappingProvider = XcodeSchemaMappingProvider( let mappingProvider = XcodeSchemaMappingProvider(
from: "V1", to: "V2", from: "V1", to: "V2",
mappingModelBundle: Bundle(for: Self.self) mappingModelBundle: Bundle.module
) )
let store = SQLiteStore.legacy( let store = SQLiteStore.legacy(
fileName: fileName, fileName: fileName,

View File

@@ -1,4 +1,4 @@
// swift-tools-version:5.5 // swift-tools-version:5.7
// //
// Package.swift // Package.swift
// CoreStore // CoreStore
@@ -45,7 +45,10 @@ let package = Package(
.testTarget( .testTarget(
name: "CoreStoreTests", name: "CoreStoreTests",
dependencies: ["CoreStore"], dependencies: ["CoreStore"],
path: "CoreStoreTests" path: "CoreStoreTests",
resources: [
.process("Model.xcdatamodeld")
]
) )
], ],
swiftLanguageVersions: [.v5] swiftLanguageVersions: [.v5]