DeletedCarbObjectTests.swift 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. //
  2. // DeletedCarbObjectTests.swift
  3. // LoopKitTests
  4. //
  5. // Copyright © 2018 LoopKit Authors. All rights reserved.
  6. //
  7. import XCTest
  8. @testable import LoopKit
  9. class DeletedCarbObjectTests: PersistenceControllerTestCase {
  10. func testExternalIDUniqueConstraint() {
  11. cacheStore.managedObjectContext.performAndWait {
  12. let uuid = UUID()
  13. let object1 = DeletedCarbObject(context: cacheStore.managedObjectContext)
  14. object1.setDefaultValues()
  15. object1.externalID = uuid.uuidString
  16. try! cacheStore.managedObjectContext.save()
  17. let object2 = DeletedCarbObject(context: cacheStore.managedObjectContext)
  18. object2.setDefaultValues()
  19. object2.externalID = uuid.uuidString
  20. try! cacheStore.managedObjectContext.save()
  21. let objects: [DeletedCarbObject] = cacheStore.managedObjectContext.all()
  22. XCTAssertEqual(1, objects.count)
  23. }
  24. }
  25. func testSaveWithDefaultValues() {
  26. cacheStore.managedObjectContext.performAndWait {
  27. let object1 = DeletedCarbObject(context: cacheStore.managedObjectContext)
  28. object1.setDefaultValues()
  29. try! cacheStore.managedObjectContext.save()
  30. let object2 = DeletedCarbObject(context: cacheStore.managedObjectContext)
  31. object2.setDefaultValues()
  32. try! cacheStore.managedObjectContext.save()
  33. let objects: [DeletedCarbObject] = cacheStore.managedObjectContext.all()
  34. XCTAssertEqual(2, objects.count)
  35. }
  36. }
  37. }
  38. extension DeletedCarbObject {
  39. fileprivate func setDefaultValues() {
  40. externalID = UUID().uuidString
  41. uploadState = .notUploaded
  42. startDate = Date()
  43. }
  44. }