Files
suixinkan_uikit/suixinkanTests/MockLocationProvider.swift
2026-07-10 11:44:56 +08:00

35 lines
1.3 KiB
Swift

//
// MockLocationProvider.swift
// suixinkanTests
//
import CoreLocation
@testable import suixinkan
///
final class MockLocationProvider: LocationProviding, @unchecked Sendable {
var snapshot = HomeLocationSnapshot(latitude: 39.9087, longitude: 116.3975, address: "北京市东城区")
var coordinate = CLLocationCoordinate2D(latitude: 39.9087, longitude: 116.3975)
var reverseGeocodeResult = "北京市东城区"
var requestSnapshotError: Error?
var requestCoordinateError: Error?
var requestedSnapshotAccuracies: [CLLocationAccuracy] = []
var requestedAccuracies: [CLLocationAccuracy] = []
func requestSnapshot(desiredAccuracy: CLLocationAccuracy = kCLLocationAccuracyBest) async throws -> HomeLocationSnapshot {
requestedSnapshotAccuracies.append(desiredAccuracy)
if let requestSnapshotError { throw requestSnapshotError }
return snapshot
}
func requestCoordinate(desiredAccuracy: CLLocationAccuracy) async throws -> CLLocationCoordinate2D {
requestedAccuracies.append(desiredAccuracy)
if let requestCoordinateError { throw requestCoordinateError }
return coordinate
}
func reverseGeocode(latitude: Double, longitude: Double) async -> String {
reverseGeocodeResult
}
}