Signal-iOS/SignalServiceKit/tests/Network/API/Requests/ChatServiceAuthTest.swift
2025-03-21 17:02:15 -05:00

59 lines
2.0 KiB
Swift

//
// Copyright 2023 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
//
import LibSignalClient
import SignalServiceKit
import XCTest
final class ChatServiceAuthTest: XCTestCase {
func testImplicit() {
let auth = ChatServiceAuth.implicit()
XCTAssertEqual(auth.credentials, .implicit)
}
func testExplicit() {
let aciString = "125a6d22-5364-4583-9132-66227867d9ec"
let aci = Aci.constantForTesting(aciString)
let auth = ChatServiceAuth.explicit(aci: aci, deviceId: .primary, password: "foo bar")
XCTAssertEqual(auth.credentials, .explicit(username: aciString, password: "foo bar"))
}
func testExplicitSecondaryDevice() {
let aciString = "125a6d22-5364-4583-9132-66227867d9ec"
let aci = Aci.constantForTesting(aciString)
let auth = ChatServiceAuth.explicit(aci: aci, deviceId: DeviceId(validating: 3)!, password: "foo bar")
XCTAssertEqual(auth.credentials, .explicit(username: "\(aciString).3", password: "foo bar"))
}
func testEquality() {
let aci1 = Aci.randomForTesting()
let aci2 = Aci.randomForTesting()
let implicit = ChatServiceAuth.implicit()
let explicit1 = ChatServiceAuth.explicit(aci: aci1, deviceId: .primary, password: "foo bar")
let explicit2 = ChatServiceAuth.explicit(aci: aci1, deviceId: .primary, password: "foo bar")
let explicit3 = ChatServiceAuth.explicit(aci: aci1, deviceId: .primary, password: "baz qux")
let explicit4 = ChatServiceAuth.explicit(aci: aci2, deviceId: .primary, password: "foo bar")
for auth in [implicit, explicit1, explicit2, explicit3, explicit4] {
XCTAssertEqual(auth, auth)
}
for other in [explicit1, explicit2, explicit3, explicit4] {
XCTAssertNotEqual(implicit, other)
XCTAssertNotEqual(other, implicit)
}
XCTAssertEqual(explicit1, explicit2)
XCTAssertNotEqual(explicit1, explicit3)
XCTAssertNotEqual(explicit1, explicit4)
}
}