You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
LeStorage/LeStorageTests/IdentifiableTests.swift

68 lines
1.8 KiB

//
// LeStorageTests.swift
// LeStorageTests
//
// Created by Laurent Morvillier on 18/09/2024.
//
import Testing
import LeStorage
class IntObject: ModelObject, Storable {
static func resourceName() -> String { "int" }
static func tokenExemptedMethods() -> [LeStorage.HTTPMethod] { [] }
static func filterByStoreIdentifier() -> Bool { false }
static var relationshipNames: [String] = []
var id: Int
var name: String
init(id: Int, name: String) {
self.id = id
self.name = name
}
}
class StringObject: ModelObject, Storable {
static func resourceName() -> String { "string" }
static func tokenExemptedMethods() -> [LeStorage.HTTPMethod] { [] }
static func filterByStoreIdentifier() -> Bool { false }
static var relationshipNames: [String] = []
var id: String
var name: String
init(id: String, name: String) {
self.id = id
self.name = name
}
}
struct IdentifiableTests {
@Test func testIntIds() async throws {
let intObjects: StoredCollection<IntObject> = Store.main.registerCollection()
let int = IntObject(id: 12, name: "test")
intObjects.addOrUpdate(instance: int)
if let search = intObjects.findById(12) {
#expect(search.id == 12)
} else {
Issue.record("object is missing")
}
}
@Test func testStringIds() async throws {
let stringObjects: StoredCollection<StringObject> = Store.main.registerCollection()
let string = StringObject(id: "coco", name: "name")
stringObjects.addOrUpdate(instance: string)
if let search = stringObjects.findById("coco") {
#expect(search.id == "coco")
} else {
Issue.record("object is missing")
}
}
}