Files
workavia-mail-front/ios/TwakeMailTests/DateConversionTests.swift
T

87 lines
2.6 KiB
Swift

import XCTest
@testable import Runner
class DateConversionTests: XCTestCase {
func testConvertValidISO8601StringToDate() {
// Arrange
let validDateString = "2024-05-20T22:54:57.958"
// Act
let date = validDateString.convertISO8601StringToDate()
// Assert
XCTAssertNotNil(date, "Date should not be nil")
// Arrange
let calendar = Calendar.current
let expectedComponents = DateComponents(year: 2024, month: 5, day: 20, hour: 22, minute: 54, second: 57, nanosecond: 958000000)
// Act
let expectedDate = calendar.date(from: expectedComponents)
// Assert
XCTAssertEqual(date, expectedDate, "Converted date does not match expected date")
}
func testInvalidISO8601String() {
// Arrange
let invalidDateString = "Invalid Date String"
// Act
let date = invalidDateString.convertISO8601StringToDate()
// Assert
XCTAssertNil(date, "The conversion should return nil for an invalid date string.")
}
func testConvertValidDateToISO8601String() {
// Arrange
let validDate = Calendar.current.date(
from: DateComponents(
year: 2024,
month: 5,
day: 20,
hour: 22,
minute: 54,
second: 57,
nanosecond: 958000000
)
)
let expectedDateString = "2024-05-20T22:54:57.958"
// Act
let validDateString = validDate!.convertDateToISO8601String()
// Assert
XCTAssertEqual(validDateString, expectedDateString, "Converted date string does not match expected date string")
}
func testAddingSeconds() {
// Arrange
let initialDate = Date()
let secondsToAdd = 60
let expectedDate = initialDate.addingTimeInterval(TimeInterval(secondsToAdd))
// Act
let resultDate = initialDate.adding(seconds: secondsToAdd)
// Assert
XCTAssertEqual(resultDate, expectedDate, "The date after adding seconds should be correct.")
}
func testAddingNegativeSeconds() {
// Arrange
let initialDate = Date()
let secondsToSubtract = -60
let expectedDate = initialDate.addingTimeInterval(TimeInterval(secondsToSubtract))
// Act
let resultDate = initialDate.adding(seconds: secondsToSubtract)
// Assert
XCTAssertEqual(resultDate, expectedDate, "The date after subtracting seconds should be correct.")
}
}