1- import XCTest
1+ import Foundation
2+ import Testing
23@testable import Yosemite
34import Storage
45
5- final class SiteSpecificAppSettingsStoreMethodsTests : XCTestCase {
6- private var sut : SiteSpecificAppSettingsStoreMethods !
7- private var fileStorage : MockFileStorage !
6+ struct SiteSpecificAppSettingsStoreMethodsTests {
7+ private let fileStorage : MockFileStorage
8+ private let sut : SiteSpecificAppSettingsStoreMethods
89 private let siteID : Int64 = 123
910
10- override func setUp( ) {
11- super. setUp ( )
12- fileStorage = MockFileStorage ( )
13- sut = SiteSpecificAppSettingsStoreMethods ( fileStorage: fileStorage)
14- }
15-
16- override func tearDown( ) {
17- sut = nil
18- fileStorage = nil
19- super. tearDown ( )
11+ init ( ) {
12+ self . fileStorage = MockFileStorage ( )
13+ self . sut = SiteSpecificAppSettingsStoreMethods ( fileStorage: fileStorage)
2014 }
2115
2216 // MARK: - Store Settings Tests
2317
24- func test_getStoreSettings_returns_default_settings_when_no_data_exists ( ) {
18+ @ Test func getStoreSettings_returns_default_settings_when_no_data_exists ( ) {
2519 // When
2620 let settings = sut. getStoreSettings ( for: siteID)
2721
2822 // Then
29- XCTAssertEqual ( settings, GeneralStoreSettings ( ) )
23+ #expect ( settings == GeneralStoreSettings ( ) )
3024 }
3125
32- func test_getStoreSettings_returns_saved_settings_when_data_exists ( ) throws {
26+ @ Test func getStoreSettings_returns_saved_settings_when_data_exists ( ) throws {
3327 // Given
3428 let expectedSettings = GeneralStoreSettings ( storeID: " test-store " )
3529 let existingData = GeneralStoreSettingsBySite ( storeSettingsBySite: [ siteID: expectedSettings] )
@@ -39,73 +33,63 @@ final class SiteSpecificAppSettingsStoreMethodsTests: XCTestCase {
3933 let settings = sut. getStoreSettings ( for: siteID)
4034
4135 // Then
42- XCTAssertEqual ( settings. storeID, expectedSettings. storeID)
36+ #expect ( settings. storeID == expectedSettings. storeID)
4337 }
4438
45- func test_setStoreSettings_saves_settings_successfully ( ) throws {
39+ @ Test func setStoreSettings_saves_settings_successfully ( ) async throws {
4640 // Given
4741 let settings = GeneralStoreSettings ( storeID: " test-store " )
48- let expectation = self . expectation ( description: " Settings saved " )
4942
5043 // When
51- sut. setStoreSettings ( settings: settings, for: siteID) { result in
52- switch result {
53- case . success:
54- expectation. fulfill ( )
55- case . failure:
56- XCTFail ( " Expected success but got failure " )
44+ try await withCheckedThrowingContinuation { continuation in
45+ sut. setStoreSettings ( settings: settings, for: siteID) { result in
46+ continuation. resume ( with: result)
5747 }
5848 }
5949
6050 // Then
61- wait ( for: [ expectation] , timeout: 1 )
6251 let savedData : GeneralStoreSettingsBySite = try fileStorage. data ( for: SiteSpecificAppSettingsStoreMethods . defaultGeneralStoreSettingsFileURL)
63- XCTAssertEqual ( savedData. storeSettingsBySite [ siteID] ? . storeID, settings. storeID)
52+ #expect ( savedData. storeSettingsBySite [ siteID] ? . storeID == settings. storeID)
6453 }
6554
66- func test_setStoreSettings_preserves_existing_settings_for_other_sites ( ) throws {
55+ @ Test func setStoreSettings_preserves_existing_settings_for_other_sites ( ) async throws {
6756 // Given
6857 let otherSiteID : Int64 = 456
6958 let otherSiteSettings = GeneralStoreSettings ( storeID: " other-store " )
7059 let existingData = GeneralStoreSettingsBySite ( storeSettingsBySite: [ otherSiteID: otherSiteSettings] )
7160 try fileStorage. write ( existingData, to: SiteSpecificAppSettingsStoreMethods . defaultGeneralStoreSettingsFileURL)
7261
7362 let newSettings = GeneralStoreSettings ( storeID: " test-store " )
74- let expectation = self . expectation ( description: " Settings saved " )
7563
7664 // When
77- sut. setStoreSettings ( settings: newSettings, for: siteID) { result in
78- switch result {
79- case . success:
80- expectation. fulfill ( )
81- case . failure:
82- XCTFail ( " Expected success but got failure " )
65+ try await withCheckedThrowingContinuation { continuation in
66+ sut. setStoreSettings ( settings: newSettings, for: siteID) { result in
67+ continuation. resume ( with: result)
8368 }
8469 }
8570
8671 // Then
87- wait ( for: [ expectation] , timeout: 1 )
8872 let savedData : GeneralStoreSettingsBySite = try fileStorage. data ( for: SiteSpecificAppSettingsStoreMethods . defaultGeneralStoreSettingsFileURL)
89- XCTAssertEqual ( savedData. storeSettingsBySite [ siteID] ? . storeID, newSettings. storeID)
90- XCTAssertEqual ( savedData. storeSettingsBySite [ otherSiteID] ? . storeID, otherSiteSettings. storeID)
73+ #expect ( savedData. storeSettingsBySite [ siteID] ? . storeID == newSettings. storeID)
74+ #expect ( savedData. storeSettingsBySite [ otherSiteID] ? . storeID == otherSiteSettings. storeID)
9175 }
9276
93- func test_resetStoreSettings_deletes_the_settings_file ( ) throws {
77+ @ Test func resetStoreSettings_deletes_the_settings_file ( ) throws {
9478 // Given
9579 let settings = GeneralStoreSettings ( storeID: " test-store " )
9680 try fileStorage. write ( GeneralStoreSettingsBySite ( storeSettingsBySite: [ siteID: settings] ) ,
97- to: SiteSpecificAppSettingsStoreMethods . defaultGeneralStoreSettingsFileURL)
81+ to: SiteSpecificAppSettingsStoreMethods . defaultGeneralStoreSettingsFileURL)
9882
9983 // When
10084 sut. resetStoreSettings ( )
10185
10286 // Then
103- XCTAssertTrue ( fileStorage. deleteIsHit)
87+ #expect ( fileStorage. deleteIsHit == true )
10488 }
10589
10690 // MARK: - Store ID Tests
10791
108- func test_setStoreID_updates_store_settings ( ) throws {
92+ @ Test func setStoreID_updates_store_settings ( ) throws {
10993 // Given
11094 let storeID = " test-store-id "
11195 let existingSettings = GeneralStoreSettingsBySite ( storeSettingsBySite: [ siteID: GeneralStoreSettings ( ) ] )
@@ -116,10 +100,10 @@ final class SiteSpecificAppSettingsStoreMethodsTests: XCTestCase {
116100
117101 // Then
118102 let savedData : GeneralStoreSettingsBySite = try fileStorage. data ( for: SiteSpecificAppSettingsStoreMethods . defaultGeneralStoreSettingsFileURL)
119- XCTAssertEqual ( savedData. storeSettingsBySite [ siteID] ? . storeID, storeID)
103+ #expect ( savedData. storeSettingsBySite [ siteID] ? . storeID == storeID)
120104 }
121105
122- func test_getStoreID_retrieves_saved_store_id ( ) throws {
106+ @ Test func getStoreID_retrieves_saved_store_id ( ) throws {
123107 // Given
124108 let storeID = " test-store-id "
125109 let existingSettings = GeneralStoreSettingsBySite ( storeSettingsBySite: [ siteID: GeneralStoreSettings ( storeID: storeID) ] )
@@ -132,20 +116,20 @@ final class SiteSpecificAppSettingsStoreMethodsTests: XCTestCase {
132116 }
133117
134118 // Then
135- XCTAssertEqual ( retrievedStoreID, storeID)
119+ #expect ( retrievedStoreID == storeID)
136120 }
137121
138122 // MARK: - Search Terms Tests
139123
140- func test_getSearchTerms_returns_empty_array_when_no_terms_exist ( ) {
124+ @ Test func getSearchTerms_returns_empty_array_when_no_terms_exist ( ) {
141125 // When
142126 let terms = sut. getSearchTerms ( for: . product, siteID: siteID)
143127
144128 // Then
145- XCTAssertTrue ( terms. isEmpty)
129+ #expect ( terms. isEmpty)
146130 }
147131
148- func test_getSearchTerms_returns_saved_terms ( ) throws {
132+ @ Test func getSearchTerms_returns_saved_terms ( ) throws {
149133 // Given
150134 let expectedTerms = [ " term1 " , " term2 " , " term3 " ]
151135 let storeSettings = GeneralStoreSettings ( searchTermsByKey: [ " product_search_terms " : expectedTerms] )
@@ -156,10 +140,10 @@ final class SiteSpecificAppSettingsStoreMethodsTests: XCTestCase {
156140 let terms = sut. getSearchTerms ( for: . product, siteID: siteID)
157141
158142 // Then
159- XCTAssertEqual ( terms, expectedTerms)
143+ #expect ( terms == expectedTerms)
160144 }
161145
162- func test_setSearchTerms_saves_terms_successfully ( ) throws {
146+ @ Test func setSearchTerms_saves_terms_successfully ( ) throws {
163147 // Given
164148 let terms = [ " term1 " , " term2 " , " term3 " ]
165149 let existingSettings = GeneralStoreSettingsBySite ( storeSettingsBySite: [ siteID: GeneralStoreSettings ( ) ] )
@@ -170,10 +154,10 @@ final class SiteSpecificAppSettingsStoreMethodsTests: XCTestCase {
170154
171155 // Then
172156 let savedData : GeneralStoreSettingsBySite = try fileStorage. data ( for: SiteSpecificAppSettingsStoreMethods . defaultGeneralStoreSettingsFileURL)
173- XCTAssertEqual ( savedData. storeSettingsBySite [ siteID] ? . searchTermsByKey [ " product_search_terms " ] , terms)
157+ #expect ( savedData. storeSettingsBySite [ siteID] ? . searchTermsByKey [ " product_search_terms " ] == terms)
174158 }
175159
176- func test_setSearchTerms_preserves_existing_terms_for_other_item_types ( ) throws {
160+ @ Test func setSearchTerms_preserves_existing_terms_for_other_item_types ( ) throws {
177161 // Given
178162 let existingTerms = [ " existing1 " , " existing2 " ]
179163 let storeSettings = GeneralStoreSettings ( searchTermsByKey: [ " variation_search_terms " : existingTerms] )
@@ -185,11 +169,11 @@ final class SiteSpecificAppSettingsStoreMethodsTests: XCTestCase {
185169
186170 // Then
187171 let savedData : GeneralStoreSettingsBySite = try fileStorage. data ( for: SiteSpecificAppSettingsStoreMethods . defaultGeneralStoreSettingsFileURL)
188- XCTAssertEqual ( savedData. storeSettingsBySite [ siteID] ? . searchTermsByKey [ " product_search_terms " ] , newTerms)
189- XCTAssertEqual ( savedData. storeSettingsBySite [ siteID] ? . searchTermsByKey [ " variation_search_terms " ] , existingTerms)
172+ #expect ( savedData. storeSettingsBySite [ siteID] ? . searchTermsByKey [ " product_search_terms " ] == newTerms)
173+ #expect ( savedData. storeSettingsBySite [ siteID] ? . searchTermsByKey [ " variation_search_terms " ] == existingTerms)
190174 }
191175
192- func test_setSearchTerms_preserves_existing_terms_for_other_sites ( ) throws {
176+ @ Test func setSearchTerms_preserves_existing_terms_for_other_sites ( ) throws {
193177 // Given
194178 let otherSiteID : Int64 = 456
195179 let otherSiteTerms = [ " other1 " , " other2 " ]
@@ -202,11 +186,11 @@ final class SiteSpecificAppSettingsStoreMethodsTests: XCTestCase {
202186
203187 // Then
204188 let savedData : GeneralStoreSettingsBySite = try fileStorage. data ( for: SiteSpecificAppSettingsStoreMethods . defaultGeneralStoreSettingsFileURL)
205- XCTAssertEqual ( savedData. storeSettingsBySite [ siteID] ? . searchTermsByKey [ " product_search_terms " ] , newTerms)
206- XCTAssertEqual ( savedData. storeSettingsBySite [ otherSiteID] ? . searchTermsByKey [ " product_search_terms " ] , otherSiteTerms)
189+ #expect ( savedData. storeSettingsBySite [ siteID] ? . searchTermsByKey [ " product_search_terms " ] == newTerms)
190+ #expect ( savedData. storeSettingsBySite [ otherSiteID] ? . searchTermsByKey [ " product_search_terms " ] == otherSiteTerms)
207191 }
208192
209- func test_resetStoreSettings_clears_search_terms ( ) throws {
193+ @ Test func resetStoreSettings_clears_search_terms ( ) throws {
210194 // Given
211195 let terms = [ " term1 " , " term2 " ]
212196 let storeSettings = GeneralStoreSettings ( searchTermsByKey: [ " product_search_terms " : terms] )
@@ -217,12 +201,12 @@ final class SiteSpecificAppSettingsStoreMethodsTests: XCTestCase {
217201 sut. resetStoreSettings ( )
218202
219203 // Then
220- XCTAssertTrue ( fileStorage. deleteIsHit)
204+ #expect ( fileStorage. deleteIsHit == true )
221205 let savedTerms = sut. getSearchTerms ( for: . product, siteID: siteID)
222- XCTAssertTrue ( savedTerms. isEmpty)
206+ #expect ( savedTerms. isEmpty)
223207 }
224208
225- func test_search_terms_work_for_all_item_types ( ) throws {
209+ @ Test func search_terms_work_for_all_item_types ( ) throws {
226210 // Given
227211 let productTerms = [ " product1 " , " product2 " ]
228212 let variationTerms = [ " variation1 " , " variation2 " ]
@@ -241,9 +225,9 @@ final class SiteSpecificAppSettingsStoreMethodsTests: XCTestCase {
241225 let retrievedCouponTerms = sut. getSearchTerms ( for: . coupon, siteID: siteID)
242226
243227 // Then
244- XCTAssertEqual ( retrievedProductTerms, productTerms)
245- XCTAssertEqual ( retrievedVariationTerms, variationTerms)
246- XCTAssertEqual ( retrievedCouponTerms, couponTerms)
228+ #expect ( retrievedProductTerms == productTerms)
229+ #expect ( retrievedVariationTerms == variationTerms)
230+ #expect ( retrievedCouponTerms == couponTerms)
247231 }
248232}
249233
0 commit comments