// // SwiftLocationMock.swift // AutoCatCoreTests // // Created by Selim Mustafaev on 02.08.2024. // Copyright © 2024 Selim Mustafaev. All rights reserved. // import AutoCatCore import CoreLocation import SwiftLocation final class SwiftLocationMock { var authorizationStatus: CLAuthorizationStatus = .notDetermined var requestedStatus: CLAuthorizationStatus = .notDetermined var location: CLLocation? var requestLocationTime: TimeInterval = 0 var requestLocationCount = 0 } extension SwiftLocationMock: SwiftLocationProtocol { func requestPermission(_ permission: LocationPermission) async throws -> CLAuthorizationStatus { authorizationStatus = requestedStatus return requestedStatus } func requestLocation(accuracy filters: AccuracyFilters?, timeout: TimeInterval?) async throws -> Tasks.ContinuousUpdateLocation.StreamEvent { requestLocationCount += 1 if requestLocationTime > 0 { try await Task.sleep(nanoseconds: UInt64(requestLocationTime*1_000_000_000)) } if let location { return .didUpdateLocations([location]) } else { return .didUpdateLocations([]) } } }