amplify-swift/AmplifyPlugins/DataStore/Tests/AWSDataStorePluginTests/Sync/MutationQueue/MutationEventClearStateTest...

57 lines
2.1 KiB
Swift

//
// Copyright Amazon.com Inc. or its affiliates.
// All Rights Reserved.
//
// SPDX-License-Identifier: Apache-2.0
//
import Foundation
import XCTest
@testable import Amplify
@testable import AmplifyTestCommon
@testable import AWSPluginsCore
@testable import AWSDataStorePlugin
class MutationEventClearStateTests: XCTestCase {
var mockStorageAdapter: MockSQLiteStorageEngineAdapter!
var mutationEventClearState: MutationEventClearState!
override func setUp() {
mockStorageAdapter = MockSQLiteStorageEngineAdapter()
mutationEventClearState = MutationEventClearState(storageAdapter: mockStorageAdapter)
}
func testInProcessIsSetFromTrueToFalse() {
let queryExpectation = expectation(description: "query is called")
let saveExpectation = expectation(description: "save is Called")
let completionExpectation = expectation(description: "completion handler is called")
let queryResponder = QueryModelTypePredicateResponder<MutationEvent> { _, _ in
queryExpectation.fulfill()
var mutationEvent = MutationEvent(modelId: "1111-22",
modelName: "Post",
json: "{}",
mutationType: .create)
mutationEvent.inProcess = true
return .success([mutationEvent])
}
mockStorageAdapter.responders[.queryModelTypePredicate] = queryResponder
let saveResponder = SaveModelCompletionResponder<MutationEvent> { model, completion in
XCTAssertEqual("1111-22", model.modelId)
XCTAssertFalse(model.inProcess)
saveExpectation.fulfill()
completion(.success(model))
}
mockStorageAdapter.responders[.saveModelCompletion] = saveResponder
mutationEventClearState.clearStateOutgoingMutations {
completionExpectation.fulfill()
}
wait(for: [queryExpectation,
saveExpectation,
completionExpectation], timeout: 1.0)
}
}