Skip to content

Commit

Permalink
Refine UTs
Browse files Browse the repository at this point in the history
  • Loading branch information
alfogrillo committed Apr 21, 2023
1 parent 6fbb535 commit 1f6550b
Showing 1 changed file with 49 additions and 17 deletions.
66 changes: 49 additions & 17 deletions UnitTests/Sources/UserPreferenceTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -23,20 +23,7 @@ final class UserPreferenceTests: XCTestCase {
UserDefaults.testDefaults.removeVolatileDomain(forName: .userDefaultsSuiteName)
}

func testVolatileStorage() throws {
let setPreference = {
let value = TestPreferences()
value.volatileVar = "Hello"
}

setPreference()

let value = TestPreferences()

XCTAssertNil(value.volatileVar)
}

func testPlistStorage() throws {
func testStorePlistValue() throws {
let setPreference = {
let value = TestPreferences()
value.plist = "Hello"
Expand All @@ -51,7 +38,7 @@ final class UserPreferenceTests: XCTestCase {
XCTAssertNil(UserDefaults.testDefaults.data(forKey: .key2), "Hello")
}

func testCodableStorage() throws {
func testStoreCodableValue() throws {
let storedType = CodableTestType(a: "some", b: [1, 2, 3])

let setPreference = {
Expand All @@ -67,7 +54,20 @@ final class UserPreferenceTests: XCTestCase {
XCTAssertNotNil(UserDefaults.testDefaults.data(forKey: .key3))
}

func testCodableVolatile() throws {
func testStorePlistValueOnVolatileStorage() throws {
let setPreference = {
let value = TestPreferences()
value.volatileVar = "Hello"
}

setPreference()

let value = TestPreferences()

XCTAssertNil(value.volatileVar)
}

func testStoreCodableValueOnVolatileStorage() throws {
let storedType = CodableTestType(a: "some", b: [1, 2, 3])

let setPreference = {
Expand All @@ -83,7 +83,7 @@ final class UserPreferenceTests: XCTestCase {
XCTAssertNil(UserDefaults.testDefaults.data(forKey: .key4))
}

func testPlistArrayStorage() throws {
func testStorePlistArray() throws {
let setPreference = {
let value = TestPreferences()
value.plistArray = [1, 2, 3]
Expand All @@ -97,6 +97,38 @@ final class UserPreferenceTests: XCTestCase {
XCTAssertEqual(UserDefaults.testDefaults.array(forKey: .key5) as? [Int], [1, 2, 3])
XCTAssertNil(UserDefaults.testDefaults.data(forKey: .key5), "Hello")
}

func testAssignNilToPlistType() throws {
let setPreference = {
let value = TestPreferences()
value.plist = "Hello"
}

setPreference()

let value = TestPreferences()
value.plist = nil

XCTAssertNil(value.plist)
XCTAssertNil(UserDefaults.testDefaults.string(forKey: .key2))
}

func testAssignNilToCodableType() throws {
let storedType = CodableTestType(a: "some", b: [1, 2, 3])

let setPreference = {
let value = TestPreferences()
value.codable = storedType
}

setPreference()

let value = TestPreferences()
value.codable = nil

XCTAssertNil(value.codable)
XCTAssertNil(UserDefaults.testDefaults.data(forKey: .key3))
}
}

private struct TestPreferences {
Expand Down

0 comments on commit 1f6550b

Please sign in to comment.