64 lines
1.9 KiB
Swift
64 lines
1.9 KiB
Swift
//
|
|
// Copyright 2023 Signal Messenger, LLC
|
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
//
|
|
|
|
@testable import SignalServiceKit
|
|
import XCTest
|
|
|
|
class OWSDeviceManagerTest: XCTestCase {
|
|
private let db: DB = MockDB()
|
|
private var deviceManager: OWSDeviceManager!
|
|
|
|
override func setUp() {
|
|
deviceManager = OWSDeviceManagerImpl(
|
|
databaseStorage: db,
|
|
keyValueStoreFactory: InMemoryKeyValueStoreFactory()
|
|
)
|
|
}
|
|
|
|
func testHasReceivedSyncMessage() {
|
|
XCTAssertFalse(deviceManager.hasReceivedSyncMessage(
|
|
inLastSeconds: 60
|
|
))
|
|
|
|
db.write { transaction in
|
|
deviceManager.setHasReceivedSyncMessage(
|
|
lastReceivedAt: Date().addingTimeInterval(-5),
|
|
transaction: transaction
|
|
)
|
|
}
|
|
|
|
XCTAssertFalse(deviceManager.hasReceivedSyncMessage(
|
|
inLastSeconds: 4
|
|
))
|
|
|
|
XCTAssertTrue(deviceManager.hasReceivedSyncMessage(
|
|
inLastSeconds: 6
|
|
))
|
|
}
|
|
|
|
func testMayHaveLinkedDevices() {
|
|
db.write { transaction in
|
|
XCTAssertTrue(deviceManager.mayHaveLinkedDevices(transaction: transaction))
|
|
|
|
deviceManager.setMayHaveLinkedDevices(false, transaction: transaction)
|
|
XCTAssertFalse(deviceManager.mayHaveLinkedDevices(transaction: transaction))
|
|
|
|
deviceManager.setMayHaveLinkedDevices(true, transaction: transaction)
|
|
XCTAssertTrue(deviceManager.mayHaveLinkedDevices(transaction: transaction))
|
|
}
|
|
}
|
|
|
|
func testRecordingSyncMessageSetsMayHaveLinkedDevices() {
|
|
db.write { transaction in
|
|
deviceManager.setMayHaveLinkedDevices(false, transaction: transaction)
|
|
XCTAssertFalse(deviceManager.mayHaveLinkedDevices(transaction: transaction))
|
|
|
|
deviceManager.setHasReceivedSyncMessage(transaction: transaction)
|
|
|
|
XCTAssertTrue(deviceManager.mayHaveLinkedDevices(transaction: transaction))
|
|
}
|
|
}
|
|
}
|