| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- // LoopFollow
- // BuildExpireConditionTests.swift
- // Created by Jonas Björkert on 2025-04-26.
- @testable import LoopFollow
- import XCTest
- final class BuildExpireConditionTests: XCTestCase {
- let cond = BuildExpireCondition()
- var alarm: Alarm!
- override func setUp() {
- super.setUp()
- alarm = Alarm(type: .buildExpire)
- alarm.threshold = 7 // 7 days before expiration
- }
- func testEvaluateWhenWithinThreshold() {
- let now = Date()
- // Build expires in 6 days → within threshold (7 days)
- let expiryDate = Calendar.current.date(byAdding: .day, value: 6, to: now)!
- let data = AlarmData(expireDate: expiryDate)
- XCTAssertTrue(cond.evaluate(alarm: alarm, data: data))
- }
- func testEvaluateWhenOutsideThreshold() {
- let now = Date()
- // Build expires in 10 days → outside threshold (7 days)
- let expiryDate = Calendar.current.date(byAdding: .day, value: 10, to: now)!
- let data = AlarmData(expireDate: expiryDate)
- XCTAssertFalse(cond.evaluate(alarm: alarm, data: data))
- }
- func testEvaluateWhenNoExpireDate() {
- let data = AlarmData(expireDate: nil)
- XCTAssertFalse(cond.evaluate(alarm: alarm, data: data))
- }
- func testEvaluateWhenNoThreshold() {
- // Clear threshold
- alarm.threshold = nil
- let now = Date()
- let expiryDate = Calendar.current.date(byAdding: .day, value: 5, to: now)!
- let data = AlarmData(expireDate: expiryDate)
- XCTAssertFalse(cond.evaluate(alarm: alarm, data: data))
- }
- }
|