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

Add MessengerSetLogLevel function wrapper

parent 9d7038f9
No related branches found
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