Skip to content

Commit 9de137c

Browse files
committed
test: update
1 parent 0980d2e commit 9de137c

File tree

1 file changed

+79
-0
lines changed

1 file changed

+79
-0
lines changed

AVOS/LeanCloudObjcTests/LCUserTestCase.swift

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -372,4 +372,83 @@ class LCUserTestCase: BaseTestCase {
372372
}
373373
}
374374
}
375+
376+
func testFetch() {
377+
let objectWithInvalidID = LCObject(objectId: uuid)
378+
XCTAssertFalse(objectWithInvalidID.fetch())
379+
do {
380+
try objectWithInvalidID.fetchAndThrows()
381+
XCTFail()
382+
} catch {
383+
XCTAssertEqual((error as NSError).code, kLCErrorObjectNotFound)
384+
}
385+
do {
386+
try objectWithInvalidID.fetch(with: nil)
387+
XCTFail()
388+
} catch {
389+
XCTAssertEqual((error as NSError).code, kLCErrorObjectNotFound)
390+
}
391+
do {
392+
try LCObject.fetchAll([objectWithInvalidID], error: ())
393+
XCTFail()
394+
} catch {
395+
XCTAssertNotNil(error)
396+
}
397+
398+
let validObject = LCObject()
399+
let childObject = LCObject()
400+
let key = "childObject"
401+
validObject[key] = childObject
402+
XCTAssertTrue(validObject.save())
403+
404+
guard let objectId = validObject.objectId else {
405+
XCTFail()
406+
return
407+
}
408+
409+
expecting { exp in
410+
let object = LCObject(objectId: objectId)
411+
object.fetchInBackground { obj, error in
412+
XCTAssertTrue(Thread.isMainThread)
413+
XCTAssertTrue(obj === object)
414+
XCTAssertNil(error)
415+
let child = object[key] as? LCObject
416+
XCTAssertEqual(child?.objectId, childObject.objectId)
417+
XCTAssertNil(child?.createdAt)
418+
XCTAssertNil(child?.updatedAt)
419+
exp.fulfill()
420+
}
421+
}
422+
423+
expecting { exp in
424+
let object = LCObject(objectId: objectId)
425+
let option = LCObjectFetchOption()
426+
option.selectKeys = [key]
427+
option.includeKeys = [key]
428+
object.fetchInBackground(with: option) { obj, error in
429+
XCTAssertTrue(Thread.isMainThread)
430+
XCTAssertTrue(obj === object)
431+
XCTAssertNil(error)
432+
let child = object[key] as? LCObject
433+
XCTAssertEqual(child?.objectId, childObject.objectId)
434+
XCTAssertNotNil(child?.createdAt)
435+
XCTAssertNotNil(child?.updatedAt)
436+
exp.fulfill()
437+
}
438+
}
439+
440+
expecting { exp in
441+
let object = LCObject(objectId: objectId)
442+
LCObject.fetchAll(inBackground: [object]) { objects, error in
443+
XCTAssertTrue(Thread.isMainThread)
444+
XCTAssertEqual(objects?.count, 1)
445+
let child = (objects?.first as? LCObject)?[key] as? LCObject
446+
XCTAssertEqual(child?.objectId, childObject.objectId)
447+
XCTAssertNil(child?.createdAt)
448+
XCTAssertNil(child?.updatedAt)
449+
XCTAssertNil(error)
450+
exp.fulfill()
451+
}
452+
}
453+
}
375454
}

0 commit comments

Comments
 (0)