94 lines
2.8 KiB
Swift
94 lines
2.8 KiB
Swift
//
|
|
// HarmonyTests+Factories.swift
|
|
// HarmonyTests
|
|
//
|
|
// Created by Hthik on 1/8/18.
|
|
// Copyright © 2018 Hthik. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
import CoreData
|
|
|
|
@testable import Harmony
|
|
|
|
extension NSManagedObjectContext
|
|
{
|
|
static var harmonyTestsFactoryDefault: NSManagedObjectContext!
|
|
}
|
|
|
|
extension Professor
|
|
{
|
|
class func make(name: String = "Michael Shindler", identifier: String = UUID().uuidString, context: NSManagedObjectContext? = .harmonyTestsFactoryDefault, automaticallySave: Bool = true) -> Professor
|
|
{
|
|
let professor = Professor(entity: Professor.entity(), insertInto: context)
|
|
professor.name = name
|
|
professor.identifier = identifier
|
|
|
|
if let context = context, automaticallySave
|
|
{
|
|
try! context.save()
|
|
}
|
|
|
|
return professor
|
|
}
|
|
}
|
|
|
|
extension Course
|
|
{
|
|
class func make(name: String = "Introduction to Computer Systems", identifier: String = UUID().uuidString, context: NSManagedObjectContext? = .harmonyTestsFactoryDefault, automaticallySave: Bool = true) -> Course
|
|
{
|
|
let professor = Professor.make(context: context)
|
|
|
|
let course = Course(entity: Course.entity(), insertInto: context)
|
|
course.name = name
|
|
course.identifier = identifier
|
|
course.professor = professor
|
|
|
|
if let context = context, automaticallySave
|
|
{
|
|
try! context.save()
|
|
}
|
|
|
|
return course
|
|
}
|
|
}
|
|
|
|
extension Homework
|
|
{
|
|
class func make(name: String = "Project 1: Manipulating Bits", identifier: String = UUID().uuidString, dueDate: Date = Date(), fileURL: URL = Bundle(for: HarmonyTestCase.self).url(forResource: "Project1", withExtension: "pdf")!, context: NSManagedObjectContext? = .harmonyTestsFactoryDefault, automaticallySave: Bool = true) -> Homework
|
|
{
|
|
let course = Course.make(context: context)
|
|
|
|
let homework = Homework(entity: Homework.entity(), insertInto: context)
|
|
homework.name = name
|
|
homework.identifier = identifier
|
|
homework.dueDate = dueDate
|
|
homework.course = course
|
|
|
|
try! FileManager.default.copyItem(at: fileURL, to: homework.fileURL!)
|
|
|
|
if let context = context, automaticallySave
|
|
{
|
|
try! context.save()
|
|
}
|
|
|
|
return homework
|
|
}
|
|
}
|
|
|
|
extension Placeholder
|
|
{
|
|
class func make(name: String = "Placeholder", context: NSManagedObjectContext? = .harmonyTestsFactoryDefault, automaticallySave: Bool = true) -> Placeholder
|
|
{
|
|
let placeholder = Placeholder(entity: Placeholder.entity(), insertInto: context)
|
|
placeholder.name = name
|
|
|
|
if let context = context, automaticallySave
|
|
{
|
|
try! context.save()
|
|
}
|
|
|
|
return placeholder
|
|
}
|
|
}
|