| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- @testable import FreeAPS
- import XCTest
- class FileStorageTests: XCTestCase {
- let fileStorage = BaseFileStorage()
- struct DummyObject: JSON {
- let id: String
- let value: Decimal
- }
- override func setUpWithError() throws {
- // Put setup code here. This method is called before the invocation of each test method in the class.
- }
- override func tearDownWithError() throws {
- // Put teardown code here. This method is called after the invocation of each test method in the class.
- }
- func testStorage() throws {
- let uniqID = UUID().uuidString
- let object1 = DummyObject(id: uniqID, value: 1.0)
- let object2 = DummyObject(id: UUID().uuidString, value: 1.2)
- let object3 = DummyObject(id: UUID().uuidString, value: 1.4)
- let object4 = DummyObject(id: uniqID, value: 1.0)
- do {
- try fileStorage.save(object1, as: "tests/testStorage1.json")
- } catch {
- XCTFail(error.localizedDescription)
- }
- do {
- try fileStorage.save([object1, object2], as: "tests/testStorage2.json")
- } catch {
- XCTFail(error.localizedDescription)
- }
- do {
- let value = try fileStorage.retrieve("tests/testStorage1.json", as: DummyObject.self)
- XCTAssert(value.rawJSON == object1.rawJSON)
- } catch {
- XCTFail(error.localizedDescription)
- }
- do {
- let values = try fileStorage.retrieve("tests/testStorage2.json", as: [DummyObject].self)
- XCTAssert(values.rawJSON == [object1, object2].rawJSON)
- } catch {
- XCTFail(error.localizedDescription)
- }
- do {
- try fileStorage.append(object3, to: "tests/testStorage1.json")
- let values = try fileStorage.retrieve("tests/testStorage1.json", as: [DummyObject].self)
- XCTAssert(values.rawJSON == [object1, object3].rawJSON)
- } catch {
- XCTFail(error.localizedDescription)
- }
- do {
- try fileStorage.append([object2, object4], to: "tests/testStorage1.json")
- let values = try fileStorage.retrieve("tests/testStorage1.json", as: [DummyObject].self)
- XCTAssert(values.rawJSON == [object1, object3, object2, object4].rawJSON)
- } catch {
- XCTFail(error.localizedDescription)
- }
- do {
- try fileStorage.append([object3, object4], to: "tests/testStorage2.json", uniqBy: \.id)
- let values = try fileStorage.retrieve("tests/testStorage2.json", as: [DummyObject].self)
- XCTAssert(values.rawJSON == [object1, object2, object3].rawJSON)
- } catch {
- XCTFail(error.localizedDescription)
- }
- do {
- try fileStorage.remove("tests/testStorage1.json")
- try fileStorage.rename("tests/testStorage2.json", to: "tests/testStorage1.json")
- let values = try fileStorage.retrieve("tests/testStorage1.json", as: [DummyObject].self)
- XCTAssert(values.rawJSON == [object1, object2, object3].rawJSON)
- } catch {
- XCTFail(error.localizedDescription)
- }
- }
- }
|