mirror of
https://github.com/luxfi/safe-ios.git
synced 2026-10-30 15:19:20 +00:00
60 lines
2.4 KiB
Swift
60 lines
2.4 KiB
Swift
//
|
|
// SafeMOTests.swift
|
|
// MultisigTests
|
|
//
|
|
// Created by Andrey Scherbovich on 15.04.20.
|
|
// Copyright © 2020 Gnosis Ltd. All rights reserved.
|
|
//
|
|
|
|
import XCTest
|
|
import CoreData
|
|
@testable import Multisig
|
|
|
|
class CoreDataStackTests: CoreDataTestCase {
|
|
func testCRUD() throws {
|
|
// check that initially all Safes are empty
|
|
let initialSafesResult = try context.fetch(Safe.fetchRequest().all())
|
|
XCTAssertTrue(initialSafesResult.isEmpty)
|
|
|
|
// Insert object with NSEntityDescription
|
|
let newSafe1 = NSEntityDescription.insertNewObject(forEntityName: "Safe", into: context) as! Safe
|
|
newSafe1.name = "Safe 1"
|
|
try context.save()
|
|
let oneSafeResult = try context.fetch(Safe.fetchRequest().all())
|
|
XCTAssertEqual(oneSafeResult.count, 1)
|
|
XCTAssertEqual(oneSafeResult[0].name, "Safe 1")
|
|
|
|
// Update object
|
|
newSafe1.threshold = 1
|
|
try context.save()
|
|
let updatedSafesResult = try context.fetch(Safe.fetchRequest().all())
|
|
XCTAssertEqual(updatedSafesResult.count, 1)
|
|
XCTAssertEqual(updatedSafesResult[0].threshold, 1)
|
|
|
|
// Insert object using auto-generated class
|
|
let newSafe0 = Safe(context: context)
|
|
newSafe0.name = "Safe 0"
|
|
// Without saving the context, fetch request should be updated
|
|
let twoSafesResultBeforeSave = try context.fetch(Safe.fetchRequest().all())
|
|
XCTAssertEqual(twoSafesResultBeforeSave.count, 2)
|
|
// result safes should be sorted by creation date
|
|
XCTAssertEqual(twoSafesResultBeforeSave[0].name, "Safe 1")
|
|
XCTAssertEqual(twoSafesResultBeforeSave[1].name, "Safe 0")
|
|
|
|
// reset context; not saved object is discarded
|
|
context.reset()
|
|
let oneSafeResultAfterReseting = try context.fetch(Safe.fetchRequest().all())
|
|
XCTAssertEqual(oneSafeResultAfterReseting.count, 1)
|
|
XCTAssertEqual(oneSafeResultAfterReseting[0].name, "Safe 1")
|
|
|
|
// Delete entry
|
|
// NOTE: we can not use here 'newSafe1' variable as the context was reset
|
|
context.delete(oneSafeResultAfterReseting[0])
|
|
try context.save()
|
|
// deleting did not affect previous fetch results
|
|
XCTAssertEqual(oneSafeResultAfterReseting.count, 1)
|
|
let oneSafeResultAfterDeleting = try context.fetch(Safe.fetchRequest().all())
|
|
XCTAssertEqual(oneSafeResultAfterDeleting.count, 0)
|
|
}
|
|
}
|