summaryrefslogtreecommitdiffhomepage
path: root/ios/MullvadVPNTests/FileCacheTests.swift
blob: dc3b250ed8860b70e32b59a72b1170b929e5a89b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
//
//  FileCacheTests.swift
//  MullvadVPNTests
//
//  Created by pronebird on 13/06/2023.
//  Copyright © 2023 Mullvad VPN AB. All rights reserved.
//

import Foundation
@testable import MullvadTypes
import XCTest

class FileCacheTests: XCTestCase {
    var testFileURL: URL!

    override func setUp() {
        testFileURL = FileManager.default.temporaryDirectory
            .appendingPathComponent("FileCacheTest-\(UUID().uuidString)", isDirectory: true)
    }

    override func tearDown() {
        try? FileManager.default.removeItem(at: testFileURL)
    }

    func testRead() throws {
        let stringData = UUID().uuidString
        try JSONEncoder().encode(stringData).write(to: testFileURL)

        let fileCache = FileCache<String>(fileURL: testFileURL)
        XCTAssertEqual(try fileCache.read(), stringData)
    }

    func testWrite() throws {
        let fileCache = FileCache<String>(fileURL: testFileURL)

        let stringData = UUID().uuidString
        let serializedData = try JSONEncoder().encode(stringData)

        try fileCache.write(stringData)

        XCTAssertEqual(try Data(contentsOf: testFileURL), serializedData)
    }
}