SwiftKit/Tests/SwiftKitTests/Date/DateFormatter+InitTests.swift

66 lines
2.3 KiB
Swift

//
// DateFormatter+InitTests.swift
// SwiftKitTests
//
// Created by Daniel Saidi on 2018-09-05.
// Copyright © 2018 Daniel Saidi. All rights reserved.
//
import Foundation
import SwiftKit
import XCTest
class DateFormatter_InitTests: XCTestCase {
func testConvenienceInitializerUsesUsEnglishWithNoTimeByDefault() {
let formatter = DateFormatter(dateStyle: .medium)
XCTAssertEqual(formatter.locale.identifier, "en_US_POSIX")
XCTAssertEqual(formatter.dateStyle, .medium)
XCTAssertEqual(formatter.timeStyle, .none)
}
func testConvenienceInstanceGeneratesValidDateStringForMediumDateStyle() {
let date = Date(year: 2022, month: 10, day: 19) ?? Date()
let formatter = DateFormatter(dateStyle: .medium)
let result = formatter.string(from: date)
XCTAssertEqual(result, "Oct 19, 2022")
}
func testConvenienceInstanceGeneratesValidDateStringForLongDateStyleAndShortTimeStyle() {
let date = Date(year: 2022, month: 10, day: 19) ?? Date()
let formatter = DateFormatter(
dateStyle: .long,
timeStyle: .short
)
let result = formatter.string(from: date)
XCTAssertEqual(result, "October 19, 2022 at 12:00 AM")
}
func testConvenienceInstanceGeneratesValidDateStringForCustomLocale() {
let date = Date(year: 2022, month: 10, day: 19) ?? Date()
let formatter = DateFormatter(
dateStyle: .long,
timeStyle: .short,
locale: Locale(identifier: "sv-SE")
)
let result = formatter.string(from: date)
XCTAssertEqual(result, "19 oktober 2022 00:00")
}
func testIso8601SecondFormatterIsValid() {
let formatter = DateFormatter.iso8601Seconds
XCTAssertEqual(formatter.dateFormat, "yyyy-MM-dd'T'HH:mm:ssZ")
XCTAssertEqual(formatter.calendar.identifier, .iso8601)
XCTAssertEqual(formatter.locale.identifier, "en_US_POSIX")
XCTAssertNotNil(formatter.timeZone)
}
func testIso8601MilliSecondFormatterIsValid() {
let formatter = DateFormatter.iso8601Milliseconds
XCTAssertEqual(formatter.dateFormat, "yyyy-MM-dd'T'HH:mm:ss.SSSZ")
XCTAssertEqual(formatter.calendar.identifier, .iso8601)
XCTAssertEqual(formatter.locale.identifier, "en_US_POSIX")
XCTAssertNotNil(formatter.timeZone)
}
}