SwiftKit/Tests/SwiftKitTests/Extensions/UserDefaults+CodableTests.s...

57 lines
1.4 KiB
Swift

//
// UserDefaults+CodableTests.swift
// SwiftKit
//
// Created by Daniel Saidi on 2020-09-23.
// Copyright © 2020 Daniel Saidi. All rights reserved.
//
import Foundation
import Quick
import Nimble
import SwiftKit
class UserDefaults_CodableTets: QuickSpec {
override func spec() {
var defaults: UserDefaults!
let key = "user"
beforeEach {
defaults = UserDefaults.standard
}
afterEach {
defaults.removeObject(forKey: key)
}
describe("getting codable") {
it("returns nil if no data is persisted") {
let result: User? = defaults.codable(forKey: key)
expect(result).to(beNil())
}
it("returns nil if invalid data is persisted") {
defaults.set("HEJ", forKey: key)
let result: User? = defaults.codable(forKey: key)
expect(result).to(beNil())
}
it("returns correctly persisted data") {
let user = User(name: "Daniel", age: 40)
defaults.setCodable(user, forKey: key)
let result: User = defaults.codable(forKey: key)!
expect(result).to(equal(user))
}
}
}
}
private struct User: Codable, Equatable {
let name: String
let age: Int
}