Skip to content
Snippets Groups Projects
Commit b9020a4f authored by Dariusz Rybicki's avatar Dariusz Rybicki
Browse files

Add MessengerSetLogLevel function wrapper

parent 9d7038f9
Branches jemimah/xxdk-documentation
No related tags found
2 merge requests!116XXMessengerClient - logging,!102Release 1.0.0
import XCTestDynamicOverlay
import XXClient
public struct MessengerSetLogLevel {
public var run: (LogLevel) throws -> Bool
public func callAsFunction(_ logLevel: LogLevel) throws -> Bool {
try run(logLevel)
}
}
extension MessengerSetLogLevel {
public static func live(_ env: MessengerEnvironment) -> MessengerSetLogLevel {
MessengerSetLogLevel(run: env.setLogLevel.run)
}
}
extension MessengerSetLogLevel {
public static let unimplemented = MessengerSetLogLevel(
run: XCTUnimplemented("\(Self.self)")
)
}
......@@ -38,6 +38,7 @@ public struct Messenger {
public var resumeBackup: MessengerResumeBackup
public var backupParams: MessengerBackupParams
public var stopBackup: MessengerStopBackup
public var setLogLevel: MessengerSetLogLevel
}
extension Messenger {
......@@ -79,7 +80,8 @@ extension Messenger {
startBackup: .live(env),
resumeBackup: .live(env),
backupParams: .live(env),
stopBackup: .live(env)
stopBackup: .live(env),
setLogLevel: .live(env)
)
}
}
......@@ -122,6 +124,7 @@ extension Messenger {
startBackup: .unimplemented,
resumeBackup: .unimplemented,
backupParams: .unimplemented,
stopBackup: .unimplemented
stopBackup: .unimplemented,
setLogLevel: .unimplemented
)
}
......@@ -31,6 +31,7 @@ public struct MessengerEnvironment {
public var registerForNotifications: RegisterForNotifications
public var resumeBackup: ResumeBackup
public var searchUD: SearchUD
public var setLogLevel: SetLogLevel
public var sleep: (TimeInterval) -> Void
public var storageDir: String
public var ud: Stored<UserDiscovery?>
......@@ -76,6 +77,7 @@ extension MessengerEnvironment {
registerForNotifications: .live,
resumeBackup: .live,
searchUD: .live,
setLogLevel: .live,
sleep: { Thread.sleep(forTimeInterval: $0) },
storageDir: MessengerEnvironment.defaultStorageDir,
ud: .inMemory(),
......@@ -116,6 +118,7 @@ extension MessengerEnvironment {
registerForNotifications: .unimplemented,
resumeBackup: .unimplemented,
searchUD: .unimplemented,
setLogLevel: .unimplemented,
sleep: XCTUnimplemented("\(Self.self).sleep"),
storageDir: "unimplemented",
ud: .unimplemented(),
......
import CustomDump
import XCTest
import XXClient
@testable import XXMessengerClient
final class MessengerSetLogLevelTests: XCTestCase {
func testSetLogLevel() throws {
var didSetLogLevel: [LogLevel] = []
var env: MessengerEnvironment = .unimplemented
env.setLogLevel.run = { level in
didSetLogLevel.append(level)
return true
}
let setLogLevel: MessengerSetLogLevel = .live(env)
let result = try setLogLevel(.debug)
XCTAssertNoDifference(didSetLogLevel, [.debug])
XCTAssertNoDifference(result, true)
}
func testSetLogLevelReturnsFalse() throws {
var env: MessengerEnvironment = .unimplemented
env.setLogLevel.run = { _ in return false }
let setLogLevel: MessengerSetLogLevel = .live(env)
let result = try setLogLevel(.debug)
XCTAssertNoDifference(result, false)
}
func testSetLogLevelFailure() {
struct Failure: Error, Equatable {}
let failure = Failure()
var env: MessengerEnvironment = .unimplemented
env.setLogLevel.run = { _ in throw failure }
let setLogLevel: MessengerSetLogLevel = .live(env)
XCTAssertThrowsError(try setLogLevel(.debug)) { error in
XCTAssertNoDifference(error as NSError, failure as NSError)
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment