blob: 7da66cbc80df13df38691dc1ab373f6aa58dd1d5 [file] [log] [blame]
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import FlutterMacOS
import XCTest
import shared_preferences_macos
class RunnerTests: XCTestCase {
func testHandlesCommitNoOp() throws {
let plugin = SharedPreferencesPlugin()
let call = FlutterMethodCall(methodName: "commit", arguments: nil)
var called = false
plugin.handle(
call,
result: { (result: Any?) -> Void in
called = true
XCTAssert(result as? Bool == true)
})
XCTAssert(called)
}
func testSetAndGet() throws {
let plugin = SharedPreferencesPlugin()
let setCall = FlutterMethodCall(
methodName: "setInt",
arguments: [
"key": "flutter.foo",
"value": 42,
])
plugin.handle(
setCall,
result: { (result: Any?) -> Void in
XCTAssert(result as? Bool == true)
})
var value: Int?
plugin.handle(
FlutterMethodCall(methodName: "getAll", arguments: nil),
result: { (result: Any?) -> Void in
if let prefs = result as? [String: Any] {
value = prefs["flutter.foo"] as? Int
}
})
XCTAssertEqual(value, 42)
}
func testClear() throws {
let plugin = SharedPreferencesPlugin()
let setCall = FlutterMethodCall(
methodName: "setInt",
arguments: [
"key": "flutter.foo",
"value": 42,
])
plugin.handle(setCall, result: { (result: Any?) -> Void in })
// Make sure there is something to clear, so the test can't pass due to a set failure.
let getCall = FlutterMethodCall(methodName: "getAll", arguments: nil)
var value: Int?
plugin.handle(
getCall,
result: { (result: Any?) -> Void in
if let prefs = result as? [String: Any] {
value = prefs["flutter.foo"] as? Int
}
})
XCTAssertEqual(value, 42)
// Clear the value.
plugin.handle(
FlutterMethodCall(methodName: "clear", arguments: nil),
result: { (result: Any?) -> Void in
XCTAssert(result as? Bool == true)
})
// Get the value again, which should clear |value|.
plugin.handle(
getCall,
result: { (result: Any?) -> Void in
if let prefs = result as? [String: Any] {
value = prefs["flutter.foo"] as? Int
XCTAssert(prefs.isEmpty)
}
})
XCTAssertEqual(value, nil)
}
}