Bark/BarkTests/MessageDeleteTimeRangeTest.swift
2025-01-08 12:02:51 +08:00

70 lines
3.0 KiB
Swift

//
// MessageDeleteTimeRangeTest.swift
// BarkTests
//
// Created by huangfeng on 1/8/25.
// Copyright © 2025 Fin. All rights reserved.
//
@testable import Bark
import Testing
struct MessageDeleteTimeRangeTest {
@Test("检查时间范围区间是否正确", arguments: [
MessageDeleteTimeRange.lastHour,
MessageDeleteTimeRange.today,
MessageDeleteTimeRange.todayAndYesterday,
MessageDeleteTimeRange.lastMonth,
MessageDeleteTimeRange.allTime,
MessageDeleteTimeRange.beforeOneHour,
MessageDeleteTimeRange.beforeToday,
MessageDeleteTimeRange.beforeYesterday,
MessageDeleteTimeRange.beforeOneMonth
])
func testRange(range: MessageDeleteTimeRange) async throws {
let now = Date()
let lastHour = Calendar.current.date(byAdding: .hour, value: -1, to: now)!
let today = now.startOfDay
let yesterday = Calendar.current.date(byAdding: .day, value: -1, to: today)!.startOfDay
let lastMonth = Calendar.current.date(byAdding: .month, value: -1, to: now)!
switch range {
case .lastHour:
let startDate = range.startDate
let endDate = range.endDate
#expect(startDate.timeInterval == lastHour.timeInterval && endDate.timeInterval == now.timeInterval)
case .today:
let startDate = range.startDate
let endDate = range.endDate
#expect(startDate.timeInterval == today.timeInterval && endDate.timeInterval == now.timeInterval)
case .todayAndYesterday:
let startDate = range.startDate
let endDate = range.endDate
#expect(startDate.timeInterval == yesterday.timeInterval && endDate.timeInterval == now.timeInterval)
case .lastMonth:
let startDate = range.startDate
let endDate = range.endDate
#expect(startDate.timeInterval == lastMonth.timeInterval && endDate.timeInterval == now.timeInterval)
case .allTime:
let startDate = range.startDate
let endDate = range.endDate
#expect(startDate.timeInterval == 0 && endDate.timeInterval == now.timeInterval)
case .beforeOneHour:
let startDate = range.startDate
let endDate = range.endDate
#expect(startDate.timeInterval == 0 && endDate.timeInterval == lastHour.timeInterval)
case .beforeToday:
let startDate = range.startDate
let endDate = range.endDate
#expect(startDate.timeInterval == 0 && endDate.timeInterval == today.timeInterval)
case .beforeYesterday:
let startDate = range.startDate
let endDate = range.endDate
#expect(startDate.timeInterval == 0 && endDate.timeInterval == yesterday.timeInterval)
case .beforeOneMonth:
let startDate = range.startDate
let endDate = range.endDate
#expect(startDate.timeInterval == 0 && endDate.timeInterval == lastMonth.timeInterval)
}
}
}