Skip to content

Commit 5b1bfc9

Browse files
committed
Make UTC Explicit in test_dateDifferenceComponents
The test assumes that it is running as GMT/UTC. Because of the TimeZone.current fixes, the test is no longer guaranteed to be using GMT/UTC, and will use the system TimeZone and breaks when in PDT for example. By making the UTC assumption explicit, we remove one more variable on this test.
1 parent 2219bd1 commit 5b1bfc9

File tree

1 file changed

+18
-9
lines changed

1 file changed

+18
-9
lines changed

TestFoundation/TestCalendar.swift

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,16 @@ class TestNSDateComponents: XCTestCase {
331331
// 2286-11-20 17:46:41
332332
let date4 = Date(timeIntervalSince1970: 10_000_000_001)
333333

334-
let diff1 = Calendar.current.dateComponents([.month, .year, .day], from: date1, to: date2)
334+
// The date components below assume UTC/GMT time zone.
335+
guard let timeZone = TimeZone(abbreviation: "UTC") else {
336+
XCTFail("Unable to create UTC TimeZone for Test")
337+
return
338+
}
339+
340+
var calendar = Calendar.current
341+
calendar.timeZone = timeZone
342+
343+
let diff1 = calendar.dateComponents([.month, .year, .day], from: date1, to: date2)
335344
XCTAssertEqual(diff1.year, 1)
336345
XCTAssertEqual(diff1.month, 5)
337346
XCTAssertEqual(diff1.isLeapMonth, false)
@@ -350,35 +359,35 @@ class TestNSDateComponents: XCTestCase {
350359
XCTAssertNil(diff1.calendar)
351360
XCTAssertNil(diff1.timeZone)
352361

353-
let diff2 = Calendar.current.dateComponents([.weekOfMonth], from: date2, to: date1)
362+
let diff2 = calendar.dateComponents([.weekOfMonth], from: date2, to: date1)
354363
XCTAssertEqual(diff2.weekOfMonth, -76)
355364
XCTAssertEqual(diff2.isLeapMonth, false)
356365

357-
let diff3 = Calendar.current.dateComponents([.weekday], from: date2, to: date1)
366+
let diff3 = calendar.dateComponents([.weekday], from: date2, to: date1)
358367
XCTAssertEqual(diff3.weekday, -536)
359368
XCTAssertEqual(diff3.isLeapMonth, false)
360369

361-
let diff4 = Calendar.current.dateComponents([.weekday, .weekOfMonth], from: date1, to: date2)
370+
let diff4 = calendar.dateComponents([.weekday, .weekOfMonth], from: date1, to: date2)
362371
XCTAssertEqual(diff4.weekday, 4)
363372
XCTAssertEqual(diff4.weekOfMonth, 76)
364373
XCTAssertEqual(diff4.isLeapMonth, false)
365374

366-
let diff5 = Calendar.current.dateComponents([.weekday, .weekOfYear], from: date1, to: date2)
375+
let diff5 = calendar.dateComponents([.weekday, .weekOfYear], from: date1, to: date2)
367376
XCTAssertEqual(diff5.weekday, 4)
368377
XCTAssertEqual(diff5.weekOfYear, 76)
369378
XCTAssertEqual(diff5.isLeapMonth, false)
370379

371-
let diff6 = Calendar.current.dateComponents([.month, .weekOfMonth], from: date1, to: date2)
380+
let diff6 = calendar.dateComponents([.month, .weekOfMonth], from: date1, to: date2)
372381
XCTAssertEqual(diff6.month, 17)
373382
XCTAssertEqual(diff6.weekOfMonth, 2)
374383
XCTAssertEqual(diff6.isLeapMonth, false)
375384

376-
let diff7 = Calendar.current.dateComponents([.weekOfYear, .weekOfMonth], from: date2, to: date1)
385+
let diff7 = calendar.dateComponents([.weekOfYear, .weekOfMonth], from: date2, to: date1)
377386
XCTAssertEqual(diff7.weekOfYear, -76)
378387
XCTAssertEqual(diff7.weekOfMonth, 0)
379388
XCTAssertEqual(diff7.isLeapMonth, false)
380389

381-
let diff8 = Calendar.current.dateComponents([.era, .quarter, .year, .month, .day, .hour, .minute, .second, .nanosecond, .calendar, .timeZone], from: date2, to: date3)
390+
let diff8 = calendar.dateComponents([.era, .quarter, .year, .month, .day, .hour, .minute, .second, .nanosecond, .calendar, .timeZone], from: date2, to: date3)
382391
XCTAssertEqual(diff8.era, 0)
383392
XCTAssertEqual(diff8.year, 315)
384393
XCTAssertEqual(diff8.quarter, 0)
@@ -392,7 +401,7 @@ class TestNSDateComponents: XCTestCase {
392401
XCTAssertNil(diff8.calendar)
393402
XCTAssertNil(diff8.timeZone)
394403

395-
let diff9 = Calendar.current.dateComponents([.era, .quarter, .year, .month, .day, .hour, .minute, .second, .nanosecond, .calendar, .timeZone], from: date4, to: date3)
404+
let diff9 = calendar.dateComponents([.era, .quarter, .year, .month, .day, .hour, .minute, .second, .nanosecond, .calendar, .timeZone], from: date4, to: date3)
396405
XCTAssertEqual(diff9.era, 0)
397406
XCTAssertEqual(diff9.year, 0)
398407
XCTAssertEqual(diff9.quarter, 0)

0 commit comments

Comments
 (0)