Skip to content

Instantly share code, notes, and snippets.

@stevencurtis
Created July 7, 2020 15:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save stevencurtis/2bd5f15dcf9b43d810cfba4e34a12e59 to your computer and use it in GitHub Desktop.
Save stevencurtis/2bd5f15dcf9b43d810cfba4e34a12e59 to your computer and use it in GitHub Desktop.
coredatamanagermock
class CoreDataManagerMock: CoreDataManagerProtocol {
var storeCordinator: NSPersistentStoreCoordinator!
var managedObjectContext: NSManagedObjectContext!
var managedObjectModel: NSManagedObjectModel!
var store: NSPersistentStore!
var tasks = [NSManagedObject]()
required init() {
managedObjectModel = NSManagedObjectModel.mergedModel(from: nil)
storeCordinator = NSPersistentStoreCoordinator(managedObjectModel: managedObjectModel)
managedObjectContext = NSManagedObjectContext(concurrencyType: .mainQueueConcurrencyType)
managedObjectContext.persistentStoreCoordinator = storeCordinator
}
func getTasks() -> [NSManagedObject] {
if tasks.count > 0 {
return tasks
}
do {
store = try storeCordinator.addPersistentStore(
ofType: NSInMemoryStoreType, configurationName: nil, at: nil, options: nil)
if tasks.count == 0 {
let entityOne = NSEntityDescription.insertNewObject(forEntityName: Constants.entityName, into: managedObjectContext)
entityOne.setValue(false, forKey: Constants.entityCompletedattribute)
entityOne.setValue("Enter your task from Mock", forKey: Constants.entityNameAttribute)
tasks.append(entityOne)
}
} catch {
// catch failure here
}
return tasks
}
func save(task: String) {
let entity = NSEntityDescription.entity(forEntityName: Constants.entityName, in: managedObjectContext)!
let taskObject = NSManagedObject(entity: entity, insertInto: managedObjectContext)
taskObject.setValue(false, forKey: Constants.entityCompletedattribute)
taskObject.setValue(task, forKey: Constants.entityNameAttribute)
tasks.append(taskObject)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment