AutoCat2/AutoCatCoreTests/SettingsTests.swift

80 lines
3.3 KiB
Swift

import XCTest
import AutoCatCore
enum TestError: LocalizedError {
case createDefaultsFailed
public var errorDescription: String? {
switch self {
case .createDefaultsFailed:
return "Failed to create UserDefaults"
}
}
}
class SettingsTests: XCTestCase {
private var settings: SettingsProtocol!
override func setUpWithError() throws {
guard let userDefaults = UserDefaults(suiteName: #file) else {
throw TestError.createDefaultsFailed
}
userDefaults.removePersistentDomain(forName: #file)
self.settings = Settings(defaults: userDefaults)
}
override func tearDownWithError() throws {
// Put teardown code here. This method is called after the invocation of each test method in the class.
}
func testAlternativeOrder() {
XCTAssert(self.settings.recognizeAlternativeOrder == false, "recognizeAlternativeOrder: wrong default value")
self.settings.recognizeAlternativeOrder = true
XCTAssert(self.settings.recognizeAlternativeOrder == true, "recognizeAlternativeOrder: failed to change value")
}
func testShortenedNumbers() {
XCTAssert(self.settings.recognizeShortenedNumbers == false, "recognizeShortenedNumbers: wrong default value")
self.settings.recognizeShortenedNumbers = true
XCTAssert(self.settings.recognizeShortenedNumbers == true, "recognizeShortenedNumbers: failed to change value")
}
func testDefaultRegion() {
XCTAssert(self.settings.defaultRegion == "161", "defaultRegion: wrong default value")
self.settings.defaultRegion = "761"
XCTAssert(self.settings.defaultRegion == "761", "defaultRegion: failed to change value")
}
func testRecordBeep() {
XCTAssert(self.settings.recordBeep == false, "recordBeep: wrong default value")
self.settings.recordBeep = true
XCTAssert(self.settings.recordBeep == true, "recordBeep: failed to change value")
}
func testDebugInfo() {
XCTAssert(self.settings.showDebugInfo == false, "showDebugInfo: wrong default value")
self.settings.showDebugInfo = true
XCTAssert(self.settings.showDebugInfo == true, "showDebugInfo: failed to change value")
}
func testDefaultUser() {
XCTAssert(self.settings.user.email.isEmpty, "Default user email is not empty")
XCTAssert(self.settings.user.token.isEmpty, "Default user token is not empty")
XCTAssert(self.settings.user.firebaseIdToken == nil, "Default user firebase ID token is not nil")
XCTAssert(self.settings.user.firebaseRefreshToken == nil, "Default user firebase refresh token is not nil")
}
func testSaveUser() {
self.settings.user.token = "TestToken"
XCTAssert(self.settings.user.token == "TestToken", "Failed to save user token to settings")
self.settings.user.firebaseIdToken = "TestFirebaseToken"
XCTAssert(self.settings.user.firebaseIdToken == "TestFirebaseToken", "Failed to save user firebaseIdToken to settings")
self.settings.user.firebaseRefreshToken = "TestResreshToken"
XCTAssert(self.settings.user.firebaseRefreshToken == "TestResreshToken", "Failed to save user firebaseRefreshToken to settings")
}
}