|
Bogdan Timofte
authored
a week ago
|
1
|
import XCTest
|
|
|
2
|
@testable import HealthProbe
|
|
|
3
|
|
|
|
4
|
final class LocalMetricTimeoutProfileTests: XCTestCase {
|
|
|
5
|
override func tearDown() {
|
|
|
6
|
LocalMetricTimeoutProfileStore.removeAll()
|
|
|
7
|
super.tearDown()
|
|
|
8
|
}
|
|
|
9
|
|
|
|
10
|
func testRecordsSuccessAndPersistsProfile() {
|
|
|
11
|
var profile = LocalMetricTimeoutProfile(metricIdentifier: "step_count", displayName: "Step Count")
|
|
|
12
|
|
|
|
13
|
profile.recordSuccess(elapsed: 12, displayName: "Step Count")
|
|
|
14
|
LocalMetricTimeoutProfileStore.save(profile)
|
|
|
15
|
|
|
|
16
|
let loaded = LocalMetricTimeoutProfileStore.profile(for: MonitoredType(
|
|
|
17
|
id: "step_count",
|
|
|
18
|
displayName: "Step Count",
|
|
|
19
|
category: .activity,
|
|
|
20
|
isEnabledByDefault: true,
|
|
|
21
|
objectType: nil
|
|
|
22
|
))
|
|
|
23
|
XCTAssertEqual(loaded.successCount, 1)
|
|
|
24
|
XCTAssertEqual(loaded.lastSuccessfulElapsed, 12)
|
|
|
25
|
XCTAssertEqual(loaded.timeoutMode, "adaptive")
|
|
|
26
|
}
|
|
|
27
|
|
|
|
28
|
func testManualTimeoutIsClampedAndResettable() {
|
|
|
29
|
var profile = LocalMetricTimeoutProfile(metricIdentifier: "heart_rate", displayName: "Heart Rate")
|
|
|
30
|
|
|
|
31
|
profile.setManualTimeout(1_000)
|
|
|
32
|
XCTAssertEqual(profile.effectiveTimeout, LocalMetricTimeoutProfile.maximumTimeout)
|
|
|
33
|
XCTAssertEqual(profile.timeoutMode, "manual")
|
|
|
34
|
|
|
|
35
|
profile.resetLearning()
|
|
|
36
|
XCTAssertEqual(profile.effectiveTimeout, LocalMetricTimeoutProfile.defaultInitialTimeout)
|
|
|
37
|
XCTAssertEqual(profile.timeoutMode, "default")
|
|
|
38
|
}
|
|
|
39
|
}
|