33 lines
1.1 KiB
Swift
33 lines
1.1 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 requestedAccuracies: [CLLocationAccuracy] = []
|
|
|
|
func requestSnapshot() async throws -> HomeLocationSnapshot {
|
|
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
|
|
}
|
|
}
|