HealthProbe / HealthProbeTests / DistributionCaptureConfigurationTests.swift
Newer Older
32 lines | 1.187kb
Bogdan Timofte authored 6 days ago
1
import HealthKit
2
import XCTest
3
@testable import HealthProbe
4

            
5
final class DistributionCaptureConfigurationTests: XCTestCase {
6
    func testHeartRateInitialImportUsesLargerWriteChunks() {
7
        let strategy = DistributionCaptureConfiguration.initialImportStrategy(
8
            for: HKQuantityTypeIdentifier.heartRate.rawValue
9
        )
10

            
11
        XCTAssertEqual(strategy.queryPageLimit, 2_000)
12
        XCTAssertEqual(strategy.initialWriteChunkSize, 2_000)
13
        XCTAssertEqual(strategy.minimumWriteChunkSize, 500)
14
        XCTAssertEqual(strategy.slowBatchThresholdSeconds, 2.5)
15
        XCTAssertEqual(strategy.severeBatchThresholdSeconds, 6)
16
    }
17

            
18
    func testHeartRateWriteChunkCanBackOffOnSlowDevices() {
19
        let strategy = DistributionCaptureConfiguration.initialImportStrategy(
20
            for: HKQuantityTypeIdentifier.heartRate.rawValue
21
        )
22
        var state = strategy.makePersistenceState()
23

            
24
        state.registerBatchDuration(strategy.severeBatchThresholdSeconds)
25

            
26
        XCTAssertEqual(state.currentWriteChunkSize, 1_000)
27

            
28
        state.registerBatchDuration(strategy.severeBatchThresholdSeconds)
29

            
30
        XCTAssertEqual(state.currentWriteChunkSize, 500)
31
    }
32
}