@@ -21,7 +21,7 @@ class ReconcileAndLocalSaveOperationTests: XCTestCase {
21
21
var anyPostDeletedMutationSync : MutationSync < AnyModel > !
22
22
23
23
var operation : ReconcileAndLocalSaveOperation !
24
- var stateMachine : MockStateMachine !
24
+ var stateMachine : MockStateMachine < ReconcileAndLocalSaveOperation . State , ReconcileAndLocalSaveOperation . Action > !
25
25
26
26
override func setUp( ) {
27
27
do {
@@ -65,7 +65,7 @@ class ReconcileAndLocalSaveOperationTests: XCTestCase {
65
65
func testQuerying( ) throws {
66
66
let expect = expectation ( description: " action .queried notified " )
67
67
storageAdapter. returnOnQueryMutationSync ( mutationSync: anyPostMutationSync)
68
- stateMachine. setExpectActionCriteria { action in
68
+ stateMachine. pushExpectActionCriteria { action in
69
69
XCTAssertEqual ( action,
70
70
ReconcileAndLocalSaveOperation . Action. queried ( self . anyPostMutationSync,
71
71
self . anyPostMutationSync) )
@@ -93,7 +93,7 @@ class ReconcileAndLocalSaveOperationTests: XCTestCase {
93
93
*/
94
94
func testQueryingWithInvalidStorageAdapter_error( ) throws {
95
95
let expect = expectation ( description: " action .errored nil storage adapter " )
96
- stateMachine. setExpectActionCriteria { action in
96
+ stateMachine. pushExpectActionCriteria { action in
97
97
XCTAssertEqual ( action,
98
98
ReconcileAndLocalSaveOperation . Action. errored ( DataStoreError . nilStorageAdapter ( ) ) )
99
99
expect. fulfill ( )
@@ -109,7 +109,7 @@ class ReconcileAndLocalSaveOperationTests: XCTestCase {
109
109
let expect = expectation ( description: " action .errored notified " )
110
110
let error = DataStoreError . invalidModelName ( " invalidModelName " )
111
111
storageAdapter. throwOnQueryMutationSync ( error: error)
112
- stateMachine. setExpectActionCriteria { action in
112
+ stateMachine. pushExpectActionCriteria { action in
113
113
XCTAssertEqual ( action, ReconcileAndLocalSaveOperation . Action. errored ( error) )
114
114
expect. fulfill ( )
115
115
}
@@ -122,7 +122,7 @@ class ReconcileAndLocalSaveOperationTests: XCTestCase {
122
122
func testQueryingWithEmptyLocalStore( ) throws {
123
123
let expect = expectation ( description: " action .queried notified with local data == nil " )
124
124
storageAdapter. returnOnQueryMutationSync ( mutationSync: nil )
125
- stateMachine. setExpectActionCriteria { action in
125
+ stateMachine. pushExpectActionCriteria { action in
126
126
XCTAssertEqual ( action, ReconcileAndLocalSaveOperation . Action. queried ( self . anyPostMutationSync, nil ) )
127
127
expect. fulfill ( )
128
128
}
@@ -135,7 +135,7 @@ class ReconcileAndLocalSaveOperationTests: XCTestCase {
135
135
func testReconcilingWithoutLocalModel( ) throws {
136
136
let expect = expectation ( description: " action .reconciled notified " )
137
137
let expectedDisposition = RemoteSyncReconciler . Disposition. applyRemoteModel ( anyPostMutationSync)
138
- stateMachine. setExpectActionCriteria { action in
138
+ stateMachine. pushExpectActionCriteria { action in
139
139
XCTAssertEqual ( action, ReconcileAndLocalSaveOperation . Action. reconciled ( expectedDisposition) )
140
140
expect. fulfill ( )
141
141
}
@@ -148,7 +148,7 @@ class ReconcileAndLocalSaveOperationTests: XCTestCase {
148
148
let expect = expectation ( description: " action .execute applyRemoteModel " )
149
149
let disposition = RemoteSyncReconciler . Disposition. applyRemoteModel ( anyPostMutationSync)
150
150
storageAdapter. returnOnSave ( dataStoreResult: . success( anyPostMutationSync. model) )
151
- stateMachine. setExpectActionCriteria { action in
151
+ stateMachine. pushExpectActionCriteria { action in
152
152
XCTAssertEqual ( action, ReconcileAndLocalSaveOperation . Action. applied ( self . anyPostMutationSync) )
153
153
expect. fulfill ( )
154
154
}
@@ -162,7 +162,7 @@ class ReconcileAndLocalSaveOperationTests: XCTestCase {
162
162
let disposition = RemoteSyncReconciler . Disposition. applyRemoteModel ( anyPostMutationSync)
163
163
let error = DataStoreError . invalidModelName ( " invModelName " )
164
164
storageAdapter. returnOnSave ( dataStoreResult: . failure( error) )
165
- stateMachine. setExpectActionCriteria { action in
165
+ stateMachine. pushExpectActionCriteria { action in
166
166
XCTAssertEqual ( action, ReconcileAndLocalSaveOperation . Action. errored ( error) )
167
167
expect. fulfill ( )
168
168
}
@@ -178,7 +178,7 @@ class ReconcileAndLocalSaveOperationTests: XCTestCase {
178
178
let error = DataStoreError . invalidModelName ( " forceError " )
179
179
storageAdapter. returnOnSave ( dataStoreResult: . success( anyPostMutationSync. model) )
180
180
storageAdapter. shouldReturnErrorOnSaveMetadata = true
181
- stateMachine. setExpectActionCriteria { action in
181
+ stateMachine. pushExpectActionCriteria { action in
182
182
XCTAssertEqual ( action, ReconcileAndLocalSaveOperation . Action. errored ( error) )
183
183
expect. fulfill ( )
184
184
}
@@ -191,7 +191,7 @@ class ReconcileAndLocalSaveOperationTests: XCTestCase {
191
191
let expect = expectation ( description: " action .execute applyRemoteModel delete success case " )
192
192
let disposition = RemoteSyncReconciler . Disposition. applyRemoteModel ( anyPostDeletedMutationSync)
193
193
storageAdapter. returnOnSave ( dataStoreResult: . success( anyPostDeletedMutationSync. model) )
194
- stateMachine. setExpectActionCriteria { action in
194
+ stateMachine. pushExpectActionCriteria { action in
195
195
XCTAssertEqual ( action, ReconcileAndLocalSaveOperation . Action. applied ( self . anyPostDeletedMutationSync) )
196
196
expect. fulfill ( )
197
197
}
@@ -205,7 +205,7 @@ class ReconcileAndLocalSaveOperationTests: XCTestCase {
205
205
let disposition = RemoteSyncReconciler . Disposition. applyRemoteModel ( anyPostDeletedMutationSync)
206
206
let error = DataStoreError . invalidModelName ( " DelMutate " )
207
207
storageAdapter. shouldReturnErrorOnDeleteMutation = true
208
- stateMachine. setExpectActionCriteria { action in
208
+ stateMachine. pushExpectActionCriteria { action in
209
209
XCTAssertEqual ( action, ReconcileAndLocalSaveOperation . Action. errored ( error) )
210
210
expect. fulfill ( )
211
211
}
@@ -221,7 +221,7 @@ class ReconcileAndLocalSaveOperationTests: XCTestCase {
221
221
let error = DataStoreError . invalidModelName ( " forceError " )
222
222
storageAdapter. shouldReturnErrorOnSaveMetadata = true
223
223
storageAdapter. returnOnSave ( dataStoreResult: . failure( error) )
224
- stateMachine. setExpectActionCriteria { action in
224
+ stateMachine. pushExpectActionCriteria { action in
225
225
XCTAssertEqual ( action, ReconcileAndLocalSaveOperation . Action. errored ( error) )
226
226
expect. fulfill ( )
227
227
}
@@ -233,7 +233,7 @@ class ReconcileAndLocalSaveOperationTests: XCTestCase {
233
233
func testExecuteDropRemoteModel( ) throws {
234
234
let expect = expectation ( description: " action .execute dropRemoteModel " )
235
235
let disposition = RemoteSyncReconciler . Disposition. dropRemoteModel
236
- stateMachine. setExpectActionCriteria { action in
236
+ stateMachine. pushExpectActionCriteria { action in
237
237
XCTAssertEqual ( action, ReconcileAndLocalSaveOperation . Action. dropped)
238
238
expect. fulfill ( )
239
239
}
@@ -247,7 +247,7 @@ class ReconcileAndLocalSaveOperationTests: XCTestCase {
247
247
let expect = expectation ( description: " action .execute error " )
248
248
let error = DataStoreError . invalidModelName ( " invModelName " )
249
249
let disposition = RemoteSyncReconciler . Disposition. error ( error)
250
- stateMachine. setExpectActionCriteria { action in
250
+ stateMachine. pushExpectActionCriteria { action in
251
251
XCTAssertEqual ( action, ReconcileAndLocalSaveOperation . Action. errored ( error) )
252
252
expect. fulfill ( )
253
253
}
@@ -264,7 +264,7 @@ class ReconcileAndLocalSaveOperationTests: XCTestCase {
264
264
XCTAssertEqual ( payload. eventName, " DataStore.syncReceived " )
265
265
hubExpect. fulfill ( )
266
266
}
267
- stateMachine. setExpectActionCriteria { action in
267
+ stateMachine. pushExpectActionCriteria { action in
268
268
XCTAssertEqual ( action, ReconcileAndLocalSaveOperation . Action. notified)
269
269
notifyExpect. fulfill ( )
270
270
}
@@ -275,22 +275,6 @@ class ReconcileAndLocalSaveOperationTests: XCTestCase {
275
275
Amplify . Hub. removeListener ( hubListener)
276
276
}
277
277
}
278
-
279
- class MockStateMachine : StateMachine < ReconcileAndLocalSaveOperation . State , ReconcileAndLocalSaveOperation . Action > {
280
- typealias ExpectActionCriteria = ( _ action: ReconcileAndLocalSaveOperation . Action ) -> Void
281
- var expectActionCriteria : ExpectActionCriteria ?
282
-
283
- override func notify( action: ReconcileAndLocalSaveOperation . Action ) {
284
- if let expectActionCriteria = expectActionCriteria {
285
- expectActionCriteria ( action)
286
- }
287
- }
288
-
289
- func setExpectActionCriteria( expectActionCriteria: @escaping ExpectActionCriteria ) {
290
- self . expectActionCriteria = expectActionCriteria
291
- }
292
- }
293
-
294
278
extension ReconcileAndLocalSaveOperation . State : Equatable {
295
279
public static func == ( lhs: ReconcileAndLocalSaveOperation . State ,
296
280
rhs: ReconcileAndLocalSaveOperation . State ) -> Bool {
0 commit comments