// // Copyright Amazon.com Inc. or its affiliates. // All Rights Reserved. // // SPDX-License-Identifier: Apache-2.0 // import Combine import XCTest @testable import Amplify @testable import AmplifyTestCommon @testable import AWSDataStorePlugin @testable import AWSPluginsCore class ReconciliationQueueTestBase: XCTestCase { var apiPlugin: MockAPICategoryPlugin! var authPlugin: MockAuthCategoryPlugin! var reconcileAndSaveQueue: ReconcileAndSaveQueue! var storageAdapter: MockSQLiteStorageEngineAdapter! var subscriptionEventsPublisher: MockIncomingSubscriptionEventPublisher! var subscriptionEventsSubject: PassthroughSubject<IncomingSubscriptionEventPublisherEvent, DataStoreError>! var modelPredicate: QueryPredicate? override func setUp() { ModelRegistry.register(modelType: MockSynced.self) apiPlugin = MockAPICategoryPlugin() authPlugin = MockAuthCategoryPlugin() reconcileAndSaveQueue = ReconcileAndSaveQueue([MockSynced.schema]) storageAdapter = MockSQLiteStorageEngineAdapter() subscriptionEventsPublisher = MockIncomingSubscriptionEventPublisher() subscriptionEventsSubject = subscriptionEventsPublisher.subject } } struct MockIncomingSubscriptionEventPublisher: IncomingSubscriptionEventPublisher { let subject = PassthroughSubject<IncomingSubscriptionEventPublisherEvent, DataStoreError>() var publisher: AnyPublisher<IncomingSubscriptionEventPublisherEvent, DataStoreError> { subject.eraseToAnyPublisher() } func cancel() { // no-op for mock } }