Skip to content

Commit 91114b1

Browse files
committed
Extract repetitive test setup
1 parent 1932437 commit 91114b1

File tree

1 file changed

+29
-100
lines changed

1 file changed

+29
-100
lines changed

WooCommerce/WooCommerceTests/ViewRelated/Dashboard/CardReaderSettings/CardReaderSettingsConnectedViewModelTests.swift

Lines changed: 29 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,27 @@ import XCTest
33
@testable import WooCommerce
44

55
final class CardReaderSettingsConnectedViewModelTests: XCTestCase {
6+
private var mockStoresManager: MockCardPresentPaymentsStoresManager!
7+
private var analytics: MockAnalyticsProvider!
8+
9+
private var viewModel: CardReaderSettingsConnectedViewModel!
10+
11+
override func setUpWithError() throws {
12+
mockStoresManager = MockCardPresentPaymentsStoresManager(
13+
connectedReaders: [MockCardReader.bbposChipper2XBT()],
14+
discoveredReaders: [],
15+
sessionManager: SessionManager.testingInstance
16+
)
17+
ServiceLocator.setStores(mockStoresManager)
18+
19+
analytics = MockAnalyticsProvider()
20+
ServiceLocator.setAnalytics(WooAnalytics(analyticsProvider: analytics))
21+
22+
viewModel = CardReaderSettingsConnectedViewModel(didChangeShouldShow: nil)
23+
}
24+
625
func test_did_change_should_show_returns_false_if_no_connected_readers() {
7-
let mockStoresManager = MockCardPresentPaymentsStoresManager(
26+
mockStoresManager = MockCardPresentPaymentsStoresManager(
827
connectedReaders: [],
928
discoveredReaders: [],
1029
sessionManager: SessionManager.testingInstance
@@ -21,16 +40,9 @@ final class CardReaderSettingsConnectedViewModelTests: XCTestCase {
2140
}
2241

2342
func test_did_change_should_show_returns_true_if_a_reader_is_connected() {
24-
let mockStoresManager = MockCardPresentPaymentsStoresManager(
25-
connectedReaders: [MockCardReader.bbposChipper2XBT()],
26-
discoveredReaders: [],
27-
sessionManager: SessionManager.testingInstance
28-
)
29-
ServiceLocator.setStores(mockStoresManager)
30-
3143
let expectation = self.expectation(description: #function)
3244

33-
let _ = CardReaderSettingsConnectedViewModel(didChangeShouldShow: { shouldShow in
45+
viewModel = CardReaderSettingsConnectedViewModel(didChangeShouldShow: { shouldShow in
3446
XCTAssertTrue(shouldShow == .isTrue)
3547
expectation.fulfill()
3648
} )
@@ -39,14 +51,7 @@ final class CardReaderSettingsConnectedViewModelTests: XCTestCase {
3951
}
4052

4153
func test_view_model_correctly_formats_connected_card_reader_battery_level() {
42-
let mockStoresManager = MockCardPresentPaymentsStoresManager(
43-
connectedReaders: [MockCardReader.bbposChipper2XBT()],
44-
discoveredReaders: [],
45-
sessionManager: SessionManager.testingInstance
46-
)
47-
ServiceLocator.setStores(mockStoresManager)
48-
49-
let viewModel = CardReaderSettingsConnectedViewModel(didChangeShouldShow: nil)
54+
viewModel = CardReaderSettingsConnectedViewModel(didChangeShouldShow: nil)
5055
XCTAssertEqual(viewModel.connectedReaderBatteryLevel, "50% Battery")
5156
}
5257

@@ -58,18 +63,11 @@ final class CardReaderSettingsConnectedViewModelTests: XCTestCase {
5863
)
5964
ServiceLocator.setStores(mockStoresManager)
6065

61-
let viewModel = CardReaderSettingsConnectedViewModel(didChangeShouldShow: nil)
66+
viewModel = CardReaderSettingsConnectedViewModel(didChangeShouldShow: nil)
6267
XCTAssertEqual(viewModel.connectedReaderBatteryLevel, "Unknown Battery Level")
6368
}
6469

6570
func test_view_model_correctly_formats_connected_card_reader_software_version() {
66-
let mockStoresManager = MockCardPresentPaymentsStoresManager(
67-
connectedReaders: [MockCardReader.bbposChipper2XBT()],
68-
discoveredReaders: [],
69-
sessionManager: SessionManager.testingInstance
70-
)
71-
ServiceLocator.setStores(mockStoresManager)
72-
7371
let viewModel = CardReaderSettingsConnectedViewModel(didChangeShouldShow: nil)
7472
XCTAssertEqual(viewModel.connectedReaderSoftwareVersion, "Version: 1.00.03.34-SZZZ_Generic_v45-300001")
7573
}
@@ -82,34 +80,25 @@ final class CardReaderSettingsConnectedViewModelTests: XCTestCase {
8280
)
8381
ServiceLocator.setStores(mockStoresManager)
8482

85-
let viewModel = CardReaderSettingsConnectedViewModel(didChangeShouldShow: nil)
83+
viewModel = CardReaderSettingsConnectedViewModel(didChangeShouldShow: nil)
8684
XCTAssertEqual(viewModel.connectedReaderSoftwareVersion, "Unknown Software Version")
8785
}
8886

8987
func test_startCardReaderUpdate_properly_handles_successful_update() {
9088
// Given
9189
let expectation = self.expectation(description: #function)
9290

93-
let mockStoresManager = MockCardPresentPaymentsStoresManager(
94-
connectedReaders: [MockCardReader.bbposChipper2XBT()],
95-
discoveredReaders: [],
96-
sessionManager: SessionManager.testingInstance
97-
)
98-
ServiceLocator.setStores(mockStoresManager)
99-
100-
let viewModel = CardReaderSettingsConnectedViewModel(didChangeShouldShow: nil)
101-
10291
var updateDidBegin = false
10392

10493
viewModel.didUpdate = {
105-
if viewModel.readerUpdateInProgress {
94+
if self.viewModel.readerUpdateInProgress {
10695
updateDidBegin = true
10796
}
10897

10998
// Update began
11099
if updateDidBegin {
111100
// But now it has stopped
112-
if !viewModel.readerUpdateInProgress {
101+
if !self.viewModel.readerUpdateInProgress {
113102
expectation.fulfill()
114103
}
115104
}
@@ -135,19 +124,19 @@ final class CardReaderSettingsConnectedViewModelTests: XCTestCase {
135124
)
136125
ServiceLocator.setStores(mockStoresManager)
137126

138-
let viewModel = CardReaderSettingsConnectedViewModel(didChangeShouldShow: nil)
127+
viewModel = CardReaderSettingsConnectedViewModel(didChangeShouldShow: nil)
139128

140129
var updateDidBegin = false
141130

142131
viewModel.didUpdate = {
143-
if viewModel.readerUpdateInProgress {
132+
if self.viewModel.readerUpdateInProgress {
144133
updateDidBegin = true
145134
}
146135

147136
// Update began
148137
if updateDidBegin {
149138
// But now it has stopped
150-
if !viewModel.readerUpdateInProgress {
139+
if !self.viewModel.readerUpdateInProgress {
151140
expectation.fulfill()
152141
}
153142
}
@@ -162,16 +151,6 @@ final class CardReaderSettingsConnectedViewModelTests: XCTestCase {
162151

163152
func test_startCardReaderUpdate_ViewModel_LogsTracksEvent_cardReaderSoftwareUpdateTapped() {
164153
// Given
165-
let mockStoresManager = MockCardPresentPaymentsStoresManager(
166-
connectedReaders: [MockCardReader.bbposChipper2XBT()],
167-
discoveredReaders: [],
168-
sessionManager: SessionManager.testingInstance
169-
)
170-
ServiceLocator.setStores(mockStoresManager)
171-
172-
let analytics = MockAnalyticsProvider()
173-
ServiceLocator.setAnalytics(WooAnalytics(analyticsProvider: analytics))
174-
let viewModel = CardReaderSettingsConnectedViewModel(didChangeShouldShow: nil)
175154

176155
// When
177156
viewModel.startCardReaderUpdate()
@@ -182,16 +161,6 @@ final class CardReaderSettingsConnectedViewModelTests: XCTestCase {
182161

183162
func test_startCardReaderUpdate_ViewModel_LogsTracksEvent_cardReaderSoftwareUpdateStarted() {
184163
// Given
185-
let mockStoresManager = MockCardPresentPaymentsStoresManager(
186-
connectedReaders: [MockCardReader.bbposChipper2XBT()],
187-
discoveredReaders: [],
188-
sessionManager: SessionManager.testingInstance
189-
)
190-
ServiceLocator.setStores(mockStoresManager)
191-
192-
let analytics = MockAnalyticsProvider()
193-
ServiceLocator.setAnalytics(WooAnalytics(analyticsProvider: analytics))
194-
let viewModel = CardReaderSettingsConnectedViewModel(didChangeShouldShow: nil)
195164

196165
// When
197166
mockStoresManager.simulateUpdateStarted()
@@ -202,16 +171,6 @@ final class CardReaderSettingsConnectedViewModelTests: XCTestCase {
202171

203172
func test_WhenStoreSendsUpdateComplete_ViewModel_LogsTracksEvent_cardReaderSoftwareUpdateSuccess() {
204173
// Given
205-
let mockStoresManager = MockCardPresentPaymentsStoresManager(
206-
connectedReaders: [MockCardReader.bbposChipper2XBT()],
207-
discoveredReaders: [],
208-
sessionManager: SessionManager.testingInstance
209-
)
210-
ServiceLocator.setStores(mockStoresManager)
211-
212-
let analytics = MockAnalyticsProvider()
213-
ServiceLocator.setAnalytics(WooAnalytics(analyticsProvider: analytics))
214-
let viewModel = CardReaderSettingsConnectedViewModel(didChangeShouldShow: nil)
215174

216175
// When
217176
mockStoresManager.simulateSuccessfulUpdate()
@@ -222,16 +181,6 @@ final class CardReaderSettingsConnectedViewModelTests: XCTestCase {
222181

223182
func test_WhenStoreSendsUpdateFailed_ViewModel_LogsTracksEvent_cardReaderSoftwareUpdateFailed() {
224183
// Given
225-
let mockStoresManager = MockCardPresentPaymentsStoresManager(
226-
connectedReaders: [MockCardReader.bbposChipper2XBT()],
227-
discoveredReaders: [],
228-
sessionManager: SessionManager.testingInstance
229-
)
230-
ServiceLocator.setStores(mockStoresManager)
231-
232-
let analytics = MockAnalyticsProvider()
233-
ServiceLocator.setAnalytics(WooAnalytics(analyticsProvider: analytics))
234-
let viewModel = CardReaderSettingsConnectedViewModel(didChangeShouldShow: nil)
235184

236185
// When
237186
let expectedError = CardReaderServiceError.softwareUpdate(underlyingError: .readerSoftwareUpdateFailedBatteryLow,
@@ -244,16 +193,6 @@ final class CardReaderSettingsConnectedViewModelTests: XCTestCase {
244193

245194
func test_WhenUserCancelsUpdate_ViewModel_LogsTracksEvent_cardReaderSoftwareUpdateCancelTapped() {
246195
// Given
247-
let mockStoresManager = MockCardPresentPaymentsStoresManager(
248-
connectedReaders: [MockCardReader.bbposChipper2XBT()],
249-
discoveredReaders: [],
250-
sessionManager: SessionManager.testingInstance
251-
)
252-
ServiceLocator.setStores(mockStoresManager)
253-
254-
let analytics = MockAnalyticsProvider()
255-
ServiceLocator.setAnalytics(WooAnalytics(analyticsProvider: analytics))
256-
let viewModel = CardReaderSettingsConnectedViewModel(didChangeShouldShow: nil)
257196

258197
// When
259198
viewModel.cancelCardReaderUpdate()
@@ -264,16 +203,6 @@ final class CardReaderSettingsConnectedViewModelTests: XCTestCase {
264203

265204
func test_WhenUpdateIsSuccessfullyCanceled_ViewModel_LogsTracksEvent_cardReaderSoftwareUpdateCanceled() {
266205
// Given
267-
let mockStoresManager = MockCardPresentPaymentsStoresManager(
268-
connectedReaders: [MockCardReader.bbposChipper2XBT()],
269-
discoveredReaders: [],
270-
sessionManager: SessionManager.testingInstance
271-
)
272-
ServiceLocator.setStores(mockStoresManager)
273-
274-
let analytics = MockAnalyticsProvider()
275-
ServiceLocator.setAnalytics(WooAnalytics(analyticsProvider: analytics))
276-
let viewModel = CardReaderSettingsConnectedViewModel(didChangeShouldShow: nil)
277206
let expectation = self.expectation(description: #function)
278207

279208
mockStoresManager.simulateCancelableUpdate {

0 commit comments

Comments
 (0)