@@ -4,7 +4,7 @@ import XCTest
4
4
class UserTests : XCTestCase {
5
5
// MARK: Actual Request tests
6
6
7
- func testGetUser ( ) {
7
+ func testGetUserByName ( ) {
8
8
let session = OctoKitURLTestSession ( expectedURL: " https://api.github.com/users/mietzmithut " , expectedHTTPMethod: " GET " , jsonFile: " user_mietzmithut " , statusCode: 200 )
9
9
let username = " mietzmithut "
10
10
let task = Octokit ( session: session) . user ( name: username) { response in
@@ -20,7 +20,7 @@ class UserTests: XCTestCase {
20
20
XCTAssertTrue ( session. wasCalled)
21
21
}
22
22
23
- func testFailingToGetUser ( ) {
23
+ func testFailingToGetUserByName ( ) {
24
24
let username = " notexisting "
25
25
let session = OctoKitURLTestSession ( expectedURL: " https://api.github.com/users/notexisting " , expectedHTTPMethod: " GET " , jsonFile: nil , statusCode: 404 )
26
26
let task = Octokit ( session: session) . user ( name: username) { response in
@@ -38,11 +38,55 @@ class UserTests: XCTestCase {
38
38
39
39
#if compiler(>=5.5.2) && canImport(_Concurrency)
40
40
@available ( macOS 12 . 0 , iOS 15 . 0 , tvOS 15 . 0 , watchOS 8 . 0 , * )
41
- func testGetUserAsync( ) async throws {
42
- let session = OctoKitURLTestSession ( expectedURL: " https://api.github.com/users/mietzmithut " , expectedHTTPMethod: " GET " , jsonFile: " user_mietzmithut " , statusCode: 200 )
43
- let username = " mietzmithut "
44
- let user = try await Octokit ( session: session) . user ( name: username)
45
- XCTAssertEqual ( user. login, username)
41
+ func testGetUserByNameAsync( ) async throws {
42
+ let expectedUserId = 4672699
43
+ let session = OctoKitURLTestSession ( expectedURL: " https://api.github.com/user/ \( expectedUserId) " , expectedHTTPMethod: " GET " , jsonFile: " user_mietzmithut " , statusCode: 200 )
44
+ let user = try await Octokit ( session: session) . user ( id: expectedUserId)
45
+ XCTAssertEqual ( user. id, expectedUserId)
46
+ XCTAssertNotNil ( user. createdAt)
47
+ XCTAssertTrue ( session. wasCalled)
48
+ }
49
+ #endif
50
+
51
+ func testGetUserById( ) {
52
+ let expectedUserId = 4672699
53
+ let session = OctoKitURLTestSession ( expectedURL: " https://api.github.com/user/ \( expectedUserId) " , expectedHTTPMethod: " GET " , jsonFile: " user_mietzmithut " , statusCode: 200 )
54
+ let task = Octokit ( session: session) . user ( id: expectedUserId) { response in
55
+ switch response {
56
+ case let . success( user) :
57
+ XCTAssertEqual ( user. id, expectedUserId)
58
+ XCTAssertNotNil ( user. createdAt)
59
+ case . failure:
60
+ XCTFail ( " should get a user " )
61
+ }
62
+ }
63
+ XCTAssertNotNil ( task)
64
+ XCTAssertTrue ( session. wasCalled)
65
+ }
66
+
67
+ func testFailingToGetUserById( ) {
68
+ let userId = 123456
69
+ let session = OctoKitURLTestSession ( expectedURL: " https://api.github.com/user/ \( userId) " , expectedHTTPMethod: " GET " , jsonFile: nil , statusCode: 404 )
70
+ let task = Octokit ( session: session) . user ( id: userId) { response in
71
+ switch response {
72
+ case . success:
73
+ XCTAssert ( false , " should not retrieve user " )
74
+ case let . failure( error as NSError ) :
75
+ XCTAssertEqual ( error. code, 404 )
76
+ XCTAssertEqual ( error. domain, OctoKitErrorDomain)
77
+ }
78
+ }
79
+ XCTAssertNotNil ( task)
80
+ XCTAssertTrue ( session. wasCalled)
81
+ }
82
+
83
+ #if compiler(>=5.5.2) && canImport(_Concurrency)
84
+ @available ( macOS 12 . 0 , iOS 15 . 0 , tvOS 15 . 0 , watchOS 8 . 0 , * )
85
+ func testGetUserByIdAsync( ) async throws {
86
+ let expectedUserId = 4672699
87
+ let session = OctoKitURLTestSession ( expectedURL: " https://api.github.com/user/ \( expectedUserId) " , expectedHTTPMethod: " GET " , jsonFile: " user_mietzmithut " , statusCode: 200 )
88
+ let user = try await Octokit ( session: session) . user ( id: expectedUserId)
89
+ XCTAssertEqual ( user. id, expectedUserId)
46
90
XCTAssertNotNil ( user. createdAt)
47
91
XCTAssertTrue ( session. wasCalled)
48
92
}
0 commit comments