AutoCat2/AutoCatCore/Testing/Testing.swift

50 lines
1.3 KiB
Swift

//
// Testing.swift
// AutoCatCore
//
// Created by Selim Mustafaev on 04.04.2022.
//
import Foundation
public struct Testing {
typealias ApiMockMap = [TestKind: [ApiMethodMockProtocol]]
public static let testEmail = "test@gmail.com"
public static let testPassword = "12345"
public enum TestKind: String {
case addNumberSuccess
}
public static var isUITesting: Bool {
ProcessInfo.processInfo.arguments.contains("UI-TESTING")
}
public static var testUrlSession: URLSession? {
guard let kindStr = ProcessInfo.processInfo.environment["testKind"],
let kind = TestKind(rawValue: kindStr) else {
return nil
}
MockURLProtocol.baseUrl = Constants.baseUrl
MockURLProtocol.apiMethodMocks = apiMockSets[kind] ?? []
let sessionConfig = URLSessionConfiguration.default
sessionConfig.protocolClasses = [MockURLProtocol.self]
return URLSession(configuration: sessionConfig)
}
private static let apiMockSets: ApiMockMap = {
var map = ApiMockMap()
map[.addNumberSuccess] = [
LoginMethodMock(login: testEmail, password: testPassword)
]
return map
}()
}