@@ -11,63 +11,83 @@ import XCTest
1111final class ActivityManagerTests : XCTestCase {
1212 var activityManager : ActivityManager !
1313
14- override func setUp( ) {
15- super. setUp ( )
16- activityManager = ActivityManager ( )
14+ override func setUp( ) async throws {
15+ try await super. setUp ( )
16+ // Initialize on main actor since ActivityManager is main actor-isolated
17+ await MainActor . run {
18+ activityManager = ActivityManager ( )
19+ }
1720 }
1821
19- override func tearDown( ) {
20- activityManager = nil
21- super. tearDown ( )
22+ override func tearDown( ) async throws {
23+ await MainActor . run {
24+ activityManager = nil
25+ }
26+ try await super. tearDown ( )
2227 }
2328
24- func testCreateTask( ) {
25- let activity = activityManager. post ( title: " Task Title " )
26- XCTAssertEqual ( activityManager. activities. first? . id, activity. id)
27- XCTAssertEqual ( activityManager. activities. first? . title, " Task Title " )
29+ func testCreateTask( ) async {
30+ await MainActor . run {
31+ let activity = activityManager. post ( title: " Task Title " )
32+ XCTAssertEqual ( activityManager. activities. first? . id, activity. id)
33+ XCTAssertEqual ( activityManager. activities. first? . title, " Task Title " )
34+ }
2835 }
2936
30- func testCreateTaskWithPriority( ) {
31- let activity1 = activityManager. post ( title: " Task Title " )
32- let activity2 = activityManager. post (
33- priority: true ,
34- title: " Priority Task Title "
35- )
37+ func testCreateTaskWithPriority( ) async {
38+ await MainActor . run {
39+ let activity1 = activityManager. post ( title: " Task Title " )
40+ let activity2 = activityManager. post (
41+ priority: true ,
42+ title: " Priority Task Title "
43+ )
3644
37- XCTAssertEqual ( activityManager. activities. first? . id, activity2. id)
38- XCTAssertEqual ( activityManager. activities. first? . title, " Priority Task Title " )
39- XCTAssertEqual ( activityManager. activities. last? . id, activity1. id)
45+ XCTAssertEqual ( activityManager. activities. first? . id, activity2. id)
46+ XCTAssertEqual ( activityManager. activities. first? . title, " Priority Task Title " )
47+ XCTAssertEqual ( activityManager. activities. last? . id, activity1. id)
48+ }
4049 }
4150
42- func testUpdateTask( ) {
43- let activity = activityManager. post ( title: " Task Title " )
51+ func testUpdateTask( ) async {
52+ await MainActor . run {
53+ let activity = activityManager. post ( title: " Task Title " )
4454
45- activityManager. update (
46- id: activity. id,
47- title: " Updated Task Title "
48- )
55+ activityManager. update (
56+ id: activity. id,
57+ title: " Updated Task Title "
58+ )
4959
50- XCTAssertEqual ( activityManager. activities. first? . title, " Updated Task Title " )
60+ XCTAssertEqual ( activityManager. activities. first? . title, " Updated Task Title " )
61+ }
5162 }
5263
53- func testDeleteTask( ) {
54- let activity = activityManager. post ( title: " Task Title " )
55- activityManager. delete ( id: activity. id)
64+ func testDeleteTask( ) async {
65+ await MainActor . run {
66+ let activity = activityManager. post ( title: " Task Title " )
67+ activityManager. delete ( id: activity. id)
5668
57- XCTAssertTrue ( activityManager. activities. isEmpty)
69+ XCTAssertTrue ( activityManager. activities. isEmpty)
70+ }
5871 }
5972
60- func testDeleteTaskWithDelay( ) {
61- let activity = activityManager. post ( title: " Task Title " )
62- activityManager. delete ( id: activity. id, delay: 0.2 )
73+ func testDeleteTaskWithDelay( ) async throws {
74+ let expectation = XCTestExpectation ( )
6375
64- XCTAssertFalse ( activityManager. activities. isEmpty)
76+ await MainActor . run {
77+ let activity = activityManager. post ( title: " Task Title " )
78+ activityManager. delete ( id: activity. id, delay: 0.2 )
6579
66- let expectation = XCTestExpectation ( )
67- DispatchQueue . main. asyncAfter ( deadline: . now( ) + 0.3 ) {
80+ XCTAssertFalse ( activityManager. activities. isEmpty)
81+ }
82+
83+ // Wait for deletion
84+ try await Task . sleep ( nanoseconds: 300_000_000 ) // 0.3 seconds
85+
86+ await MainActor . run {
6887 XCTAssertTrue ( self . activityManager. activities. isEmpty)
6988 expectation. fulfill ( )
7089 }
71- wait ( for: [ expectation] , timeout: 1 )
90+
91+ await fulfillment ( of: [ expectation] , timeout: 1 )
7292 }
7393}
0 commit comments