66 lines
2.3 KiB
Swift
66 lines
2.3 KiB
Swift
//
|
|
// KeychainBasedDeviceIdentifierTests.swift
|
|
// SwiftKitTests
|
|
//
|
|
// Created by Daniel Saidi on 2016-11-24.
|
|
// Copyright © 2020 Daniel Saidi. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
import Quick
|
|
import Nimble
|
|
@testable import SwiftKit
|
|
|
|
class KeychainBasedDeviceIdentifierTests: QuickSpec {
|
|
|
|
override func spec() {
|
|
|
|
describe("keychain-based device identifier") {
|
|
|
|
var identifier: DeviceIdentifier!
|
|
var keychainService: MockKeychainService!
|
|
var backupIdentifier: MockDeviceIdentifier!
|
|
|
|
beforeEach {
|
|
keychainService = MockKeychainService()
|
|
backupIdentifier = MockDeviceIdentifier()
|
|
identifier = KeychainBasedDeviceIdentifier(
|
|
keychainService: keychainService,
|
|
backupIdentifier: backupIdentifier)
|
|
}
|
|
|
|
describe("getting device identifier") {
|
|
|
|
context("when keychain value exists") {
|
|
|
|
it("returns value") {
|
|
let id = "foo"
|
|
keychainService.registerResult(for: keychainService.stringRef) { _, _ in id }
|
|
let result = identifier.getDeviceIdentifier()
|
|
expect(result).to(equal(id))
|
|
}
|
|
}
|
|
|
|
context("when keychain value does not exist") {
|
|
|
|
beforeEach {
|
|
backupIdentifier.registerResult(for: backupIdentifier.getDeviceIdentifierRef) { "foo" }
|
|
}
|
|
|
|
it("returns backup identifier value") {
|
|
let result = identifier.getDeviceIdentifier()
|
|
expect(result).to(equal("foo"))
|
|
}
|
|
|
|
it("writes to keychain") {
|
|
_ = identifier.getDeviceIdentifier()
|
|
let inv = keychainService.invokations(of: keychainService.setStringRef)
|
|
expect(inv.count).to(equal(1))
|
|
expect(inv[0].arguments.0).to(equal("foo"))
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|