| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- //
- // PersistenceControllerTests.swift
- // LoopKitTests
- //
- // Copyright © 2018 LoopKit Authors. All rights reserved.
- //
- import XCTest
- import CoreData
- import HealthKit
- @testable import LoopKit
- class PersistenceControllerTests: PersistenceControllerTestCase {
- func testPurgeObjectsBeforeSave() {
- cacheStore.managedObjectContext.performAndWait {
- for value in stride(from: 95, to: 105, by: 1) {
- let glucose = CachedGlucoseObject(context: cacheStore.managedObjectContext)
- glucose.uuid = UUID()
- glucose.provenanceIdentifier = "PersistenceControllerTests"
- glucose.syncIdentifier = "foo\(value)"
- glucose.syncVersion = 1
- glucose.value = Double(value)
- glucose.unitString = HKUnit.milligramsPerDeciliter.unitString
- glucose.startDate = Date()
- glucose.isDisplayOnly = false
- glucose.wasUserEntered = false
- }
- let predicate = NSPredicate(format: "value < %d", 100)
- let count = try! cacheStore.managedObjectContext.purgeObjects(of: CachedGlucoseObject.self, matching: predicate)
- XCTAssertEqual(0, count)
- try! cacheStore.managedObjectContext.save()
- let all: [CachedGlucoseObject] = cacheStore.managedObjectContext.all()
- XCTAssertEqual(10, all.count)
- }
- }
- func testPurgeObjectsAfterSave() {
- cacheStore.managedObjectContext.performAndWait {
- for value in stride(from: 95, to: 105, by: 1) {
- let glucose = CachedGlucoseObject(context: cacheStore.managedObjectContext)
- glucose.uuid = UUID()
- glucose.provenanceIdentifier = "PersistenceControllerTests"
- glucose.syncIdentifier = "foo\(value)"
- glucose.syncVersion = 1
- glucose.value = Double(value)
- glucose.unitString = HKUnit.milligramsPerDeciliter.unitString
- glucose.startDate = Date()
- glucose.isDisplayOnly = false
- glucose.wasUserEntered = false
- }
- try! cacheStore.managedObjectContext.save()
- let predicate = NSPredicate(format: "value < %d", 100)
- let count = try! cacheStore.managedObjectContext.purgeObjects(of: CachedGlucoseObject.self, matching: predicate)
- XCTAssertEqual(5, count)
- let all: [CachedGlucoseObject] = cacheStore.managedObjectContext.all()
- XCTAssertEqual(5, all.count)
- }
- }
-
- }
|