diff --git a/AmplifyPlugins/Core/AWSPluginsCore/Model/Decorator/ConflictResolutionDecorator.swift b/AmplifyPlugins/Core/AWSPluginsCore/Model/Decorator/ConflictResolutionDecorator.swift index f775d80cd0..72ed86a415 100644 --- a/AmplifyPlugins/Core/AWSPluginsCore/Model/Decorator/ConflictResolutionDecorator.swift +++ b/AmplifyPlugins/Core/AWSPluginsCore/Model/Decorator/ConflictResolutionDecorator.swift @@ -15,12 +15,12 @@ import Foundation public struct ConflictResolutionDecorator: ModelBasedGraphQLDocumentDecorator { private let version: Int? - private let lastSync: Int? + private let lastSync: Int64? private let graphQLType: GraphQLOperationType private var primaryKeysOnly: Bool public init(version: Int? = nil, - lastSync: Int? = nil, + lastSync: Int64? = nil, graphQLType: GraphQLOperationType, primaryKeysOnly: Bool = true) { self.version = version diff --git a/AmplifyPlugins/Core/AWSPluginsCore/Model/GraphQLRequest/GraphQLRequest+AnyModelWithSync.swift b/AmplifyPlugins/Core/AWSPluginsCore/Model/GraphQLRequest/GraphQLRequest+AnyModelWithSync.swift index 0e63d0b63a..b779199e53 100644 --- a/AmplifyPlugins/Core/AWSPluginsCore/Model/GraphQLRequest/GraphQLRequest+AnyModelWithSync.swift +++ b/AmplifyPlugins/Core/AWSPluginsCore/Model/GraphQLRequest/GraphQLRequest+AnyModelWithSync.swift @@ -49,7 +49,7 @@ protocol ModelSyncGraphQLRequestFactory { where predicate: QueryPredicate?, limit: Int?, nextToken: String?, - lastSync: Int?, + lastSync: Int64?, authType: AWSAuthorizationType?) -> GraphQLRequest } @@ -110,7 +110,7 @@ extension GraphQLRequest: ModelSyncGraphQLRequestFactory { where predicate: QueryPredicate? = nil, limit: Int? = nil, nextToken: String? = nil, - lastSync: Int? = nil, + lastSync: Int64? = nil, authType: AWSAuthorizationType? = nil) -> GraphQLRequest { syncQuery(modelSchema: modelType.schema, where: predicate, @@ -215,7 +215,7 @@ extension GraphQLRequest: ModelSyncGraphQLRequestFactory { where predicate: QueryPredicate? = nil, limit: Int? = nil, nextToken: String? = nil, - lastSync: Int? = nil, + lastSync: Int64? = nil, authType: AWSAuthorizationType? = nil) -> GraphQLRequest { var documentBuilder = ModelBasedGraphQLDocumentBuilder(modelSchema: modelSchema, operationType: .query, diff --git a/AmplifyPlugins/Core/AWSPluginsCore/Model/Support/GraphQLDocumentInputValue.swift b/AmplifyPlugins/Core/AWSPluginsCore/Model/Support/GraphQLDocumentInputValue.swift index b5bfa0f8e1..ea33ad9334 100644 --- a/AmplifyPlugins/Core/AWSPluginsCore/Model/Support/GraphQLDocumentInputValue.swift +++ b/AmplifyPlugins/Core/AWSPluginsCore/Model/Support/GraphQLDocumentInputValue.swift @@ -37,6 +37,16 @@ extension Int: GraphQLDocumentValueRepresentable { } } +extension Int64: GraphQLDocumentValueRepresentable { + public var graphQLDocumentValue: String { + return "\(self)" + } + + public var graphQLInlineValue: String { + return "\(self)" + } +} + extension String: GraphQLDocumentValueRepresentable { public var graphQLDocumentValue: String { return self diff --git a/AmplifyPlugins/Core/AWSPluginsCore/Sync/ModelSync/ModelSyncMetadata.swift b/AmplifyPlugins/Core/AWSPluginsCore/Sync/ModelSync/ModelSyncMetadata.swift index 07eea52406..074a86f288 100644 --- a/AmplifyPlugins/Core/AWSPluginsCore/Sync/ModelSync/ModelSyncMetadata.swift +++ b/AmplifyPlugins/Core/AWSPluginsCore/Sync/ModelSync/ModelSyncMetadata.swift @@ -12,10 +12,10 @@ public struct ModelSyncMetadata: Model { public let id: String /// The timestamp (in Unix seconds) at which the last sync was started, as reported by the service - public var lastSync: Int? + public var lastSync: Int64? public init(id: String, - lastSync: Int?) { + lastSync: Int64?) { self.id = id self.lastSync = lastSync } diff --git a/AmplifyPlugins/Core/AWSPluginsCore/Sync/MutationSync/MutationSync.swift b/AmplifyPlugins/Core/AWSPluginsCore/Sync/MutationSync/MutationSync.swift index 65ec677e29..8348ac5132 100644 --- a/AmplifyPlugins/Core/AWSPluginsCore/Sync/MutationSync/MutationSync.swift +++ b/AmplifyPlugins/Core/AWSPluginsCore/Sync/MutationSync/MutationSync.swift @@ -87,7 +87,7 @@ public struct MutationSync: Decodable { self.syncMetadata = MutationSyncMetadata(modelId: modelIdentifier, modelName: resolvedModelName, deleted: deleted, - lastChangedAt: Int(lastChangedAt), + lastChangedAt: Int64(lastChangedAt), version: Int(version)) } } diff --git a/AmplifyPlugins/Core/AWSPluginsCore/Sync/MutationSync/MutationSyncMetadata.swift b/AmplifyPlugins/Core/AWSPluginsCore/Sync/MutationSync/MutationSyncMetadata.swift index 8b4290e59f..1e905b5439 100644 --- a/AmplifyPlugins/Core/AWSPluginsCore/Sync/MutationSync/MutationSyncMetadata.swift +++ b/AmplifyPlugins/Core/AWSPluginsCore/Sync/MutationSync/MutationSyncMetadata.swift @@ -14,7 +14,7 @@ public struct MutationSyncMetadata: Model { public let id: MutationSyncIdentifier public var deleted: Bool - public var lastChangedAt: Int + public var lastChangedAt: Int64 public var version: Int static let deliminator = "|" @@ -30,14 +30,14 @@ public struct MutationSyncMetadata: Model { The format of the `id` has changed to support unique ids across mutiple model types. Use init(modelId:modelName:deleted:lastChangedAt) to pass in the `modelName`. """) - public init(id: MutationSyncIdentifier, deleted: Bool, lastChangedAt: Int, version: Int) { + public init(id: MutationSyncIdentifier, deleted: Bool, lastChangedAt: Int64, version: Int) { self.id = id self.deleted = deleted self.lastChangedAt = lastChangedAt self.version = version } - public init(modelId: ModelId, modelName: String, deleted: Bool, lastChangedAt: Int, version: Int) { + public init(modelId: ModelId, modelName: String, deleted: Bool, lastChangedAt: Int64, version: Int) { self.id = Self.identifier(modelName: modelName, modelId: modelId) self.deleted = deleted self.lastChangedAt = lastChangedAt diff --git a/AmplifyPlugins/Core/AWSPluginsCore/Sync/PaginatedList.swift b/AmplifyPlugins/Core/AWSPluginsCore/Sync/PaginatedList.swift index d1b126e9cf..b77a11cbb9 100644 --- a/AmplifyPlugins/Core/AWSPluginsCore/Sync/PaginatedList.swift +++ b/AmplifyPlugins/Core/AWSPluginsCore/Sync/PaginatedList.swift @@ -11,5 +11,5 @@ import Foundation public struct PaginatedList: Decodable { public let items: [MutationSync] public let nextToken: String? - public let startedAt: Int? + public let startedAt: Int64? } diff --git a/AmplifyPlugins/Core/AWSPluginsCoreTests/Model/GraphQLDocument/GraphQLSyncQueryTests.swift b/AmplifyPlugins/Core/AWSPluginsCoreTests/Model/GraphQLDocument/GraphQLSyncQueryTests.swift index 0426140a0f..f8d225a8c4 100644 --- a/AmplifyPlugins/Core/AWSPluginsCoreTests/Model/GraphQLDocument/GraphQLSyncQueryTests.swift +++ b/AmplifyPlugins/Core/AWSPluginsCoreTests/Model/GraphQLDocument/GraphQLSyncQueryTests.swift @@ -77,7 +77,7 @@ class GraphQLSyncQueryTests: XCTestCase { XCTAssertEqual(variables["nextToken"] as? String, "token") XCTAssertNotNil(variables["filter"]) XCTAssertNotNil(variables["lastSync"]) - XCTAssertEqual(variables["lastSync"] as? Int, 123) + XCTAssertEqual(variables["lastSync"] as? Int64, 123) } func testSyncGraphQLQueryForComment() { diff --git a/AmplifyPlugins/Core/AWSPluginsCoreTests/Model/GraphQLRequest/GraphQLRequestAnyModelWithSyncTests.swift b/AmplifyPlugins/Core/AWSPluginsCoreTests/Model/GraphQLRequest/GraphQLRequestAnyModelWithSyncTests.swift index 0779edc428..7af997bad4 100644 --- a/AmplifyPlugins/Core/AWSPluginsCoreTests/Model/GraphQLRequest/GraphQLRequestAnyModelWithSyncTests.swift +++ b/AmplifyPlugins/Core/AWSPluginsCoreTests/Model/GraphQLRequest/GraphQLRequestAnyModelWithSyncTests.swift @@ -228,7 +228,7 @@ class GraphQLRequestAnyModelWithSyncTests: XCTestCase { let modelType = Post.self as Model.Type let nextToken = "nextToken" let limit = 100 - let lastSync = 123 + let lastSync: Int64 = 123 var documentBuilder = ModelBasedGraphQLDocumentBuilder(modelSchema: modelType.schema, operationType: .query) documentBuilder.add(decorator: DirectiveNameDecorator(type: .sync)) documentBuilder.add(decorator: PaginationDecorator(limit: limit, nextToken: nextToken)) @@ -274,14 +274,14 @@ class GraphQLRequestAnyModelWithSyncTests: XCTestCase { XCTAssertNotNil(variables["nextToken"]) XCTAssertEqual(variables["nextToken"] as? String, nextToken) XCTAssertNotNil(variables["lastSync"]) - XCTAssertEqual(variables["lastSync"] as? Int, lastSync) + XCTAssertEqual(variables["lastSync"] as? Int64, lastSync) } func testOptimizedSyncQueryGraphQLRequestWithFilter() { let modelType = Post.self as Model.Type let nextToken = "nextToken" let limit = 100 - let lastSync = 123 + let lastSync: Int64 = 123 let postId = "123" let predicate = Post.CodingKeys.id.eq(postId) let request = GraphQLRequest.syncQuery( @@ -310,7 +310,7 @@ class GraphQLRequestAnyModelWithSyncTests: XCTestCase { let modelType = Post.self as Model.Type let nextToken = "nextToken" let limit = 100 - let lastSync = 123 + let lastSync: Int64 = 123 let postId = "123" let altPostId = "456" let predicate = Post.CodingKeys.id.eq(postId) || Post.CodingKeys.id.eq(altPostId) diff --git a/AmplifyPlugins/Core/AWSPluginsCoreTests/Model/GraphQLRequest/GraphQLRequestAuthRuleTests.swift b/AmplifyPlugins/Core/AWSPluginsCoreTests/Model/GraphQLRequest/GraphQLRequestAuthRuleTests.swift index 1e71d4db58..7c24a3182a 100644 --- a/AmplifyPlugins/Core/AWSPluginsCoreTests/Model/GraphQLRequest/GraphQLRequestAuthRuleTests.swift +++ b/AmplifyPlugins/Core/AWSPluginsCoreTests/Model/GraphQLRequest/GraphQLRequestAuthRuleTests.swift @@ -303,7 +303,7 @@ class GraphQLRequestAuthRuleTests: XCTestCase { let modelType = Article.self as Model.Type let nextToken = "nextToken" let limit = 100 - let lastSync = 123 + let lastSync: Int64 = 123 var documentBuilder = ModelBasedGraphQLDocumentBuilder(modelSchema: modelType.schema, operationType: .query) documentBuilder.add(decorator: DirectiveNameDecorator(type: .sync)) documentBuilder.add(decorator: PaginationDecorator(limit: limit, nextToken: nextToken)) @@ -347,6 +347,6 @@ class GraphQLRequestAuthRuleTests: XCTestCase { XCTAssertNotNil(variables["nextToken"]) XCTAssertEqual(variables["nextToken"] as? String, nextToken) XCTAssertNotNil(variables["lastSync"]) - XCTAssertEqual(variables["lastSync"] as? Int, lastSync) + XCTAssertEqual(variables["lastSync"] as? Int64, lastSync) } } diff --git a/AmplifyPlugins/Core/AWSPluginsCoreTests/Model/GraphQLRequest/GraphQLRequestSyncCustomPrimaryKeyWithMultipleFieldsTests.swift b/AmplifyPlugins/Core/AWSPluginsCoreTests/Model/GraphQLRequest/GraphQLRequestSyncCustomPrimaryKeyWithMultipleFieldsTests.swift index 29051f17f2..694dcc8600 100644 --- a/AmplifyPlugins/Core/AWSPluginsCoreTests/Model/GraphQLRequest/GraphQLRequestSyncCustomPrimaryKeyWithMultipleFieldsTests.swift +++ b/AmplifyPlugins/Core/AWSPluginsCoreTests/Model/GraphQLRequest/GraphQLRequestSyncCustomPrimaryKeyWithMultipleFieldsTests.swift @@ -137,7 +137,7 @@ class GraphQLRequestSyncCustomPrimaryKeyWithMultipleFieldsTests: XCTestCase { func testSyncQueryGraphQLRequestWithDateInPK() throws { let nextToken = "nextToken" let limit = 100 - let lastSync = 123 + let lastSync: Int64 = 123 var documentBuilder = ModelBasedGraphQLDocumentBuilder(modelName: CustomerWithMultipleFieldsinPK.modelName, operationType: .query) documentBuilder.add(decorator: DirectiveNameDecorator(type: .sync)) @@ -188,7 +188,7 @@ class GraphQLRequestSyncCustomPrimaryKeyWithMultipleFieldsTests: XCTestCase { XCTAssertNotNil(variables["nextToken"]) XCTAssertEqual(variables["nextToken"] as? String, nextToken) XCTAssertNotNil(variables["lastSync"]) - XCTAssertEqual(variables["lastSync"] as? Int, lastSync) + XCTAssertEqual(variables["lastSync"] as? Int64, lastSync) } } diff --git a/AmplifyPlugins/DataStore/Sources/AWSDataStorePlugin/Migration/MutationSyncMetadataCopy.swift b/AmplifyPlugins/DataStore/Sources/AWSDataStorePlugin/Migration/MutationSyncMetadataCopy.swift index 592f0a62fd..855b3cf079 100644 --- a/AmplifyPlugins/DataStore/Sources/AWSDataStorePlugin/Migration/MutationSyncMetadataCopy.swift +++ b/AmplifyPlugins/DataStore/Sources/AWSDataStorePlugin/Migration/MutationSyncMetadataCopy.swift @@ -12,7 +12,7 @@ extension MutationSyncMetadataMigration { public struct MutationSyncMetadataCopy: Model { public let id: String public var deleted: Bool - public var lastChangedAt: Int + public var lastChangedAt: Int64 public var version: Int // MARK: - CodingKeys diff --git a/AmplifyPlugins/DataStore/Sources/AWSDataStorePlugin/Storage/SQLite/ModelValueConverter+SQLite.swift b/AmplifyPlugins/DataStore/Sources/AWSDataStorePlugin/Storage/SQLite/ModelValueConverter+SQLite.swift index 369fb58981..ab1a85aed9 100644 --- a/AmplifyPlugins/DataStore/Sources/AWSDataStorePlugin/Storage/SQLite/ModelValueConverter+SQLite.swift +++ b/AmplifyPlugins/DataStore/Sources/AWSDataStorePlugin/Storage/SQLite/ModelValueConverter+SQLite.swift @@ -31,7 +31,13 @@ public struct SQLiteModelValueConverter: ModelValueConverter { case .string: return value as? String case .int: - return value as? Int + if let intValue = value as? Int { + return intValue + } + if let int64Value = value as? Int64 { + return int64Value + } + return nil case .double: return value as? Double case .date, .dateTime, .time: diff --git a/AmplifyPlugins/DataStore/Sources/AWSDataStorePlugin/Subscribe/Support/Model+Sort.swift b/AmplifyPlugins/DataStore/Sources/AWSDataStorePlugin/Subscribe/Support/Model+Sort.swift index b9bdbfaf20..4c3b72f55c 100644 --- a/AmplifyPlugins/DataStore/Sources/AWSDataStorePlugin/Subscribe/Support/Model+Sort.swift +++ b/AmplifyPlugins/DataStore/Sources/AWSDataStorePlugin/Subscribe/Support/Model+Sort.swift @@ -103,13 +103,19 @@ extension ModelSchema { value2Optional: value2Optional) .sortComparator(sortOrder: sortOrder) case .int, .timestamp: - guard let value1Optional = value1 as? Int?, let value2Optional = value2 as? Int? else { - return false + if let value1Optional = value1 as? Int?, let value2Optional = value2 as? Int? { + return ModelValueCompare(value1Optional: value1Optional, + value2Optional: value2Optional) + .sortComparator(sortOrder: sortOrder) } - return ModelValueCompare(value1Optional: value1Optional, - value2Optional: value2Optional) - .sortComparator(sortOrder: sortOrder) - + + if let value1Optional = value1 as? Int64?, let value2Optional = value2 as? Int64? { + return ModelValueCompare(value1Optional: value1Optional, + value2Optional: value2Optional) + .sortComparator(sortOrder: sortOrder) + } + + return false case .double: guard let value1Optional = value1 as? Double?, let value2Optional = value2 as? Double? else { return false diff --git a/AmplifyPlugins/DataStore/Sources/AWSDataStorePlugin/Sync/Events/OutboxMutationEvent.swift b/AmplifyPlugins/DataStore/Sources/AWSDataStorePlugin/Sync/Events/OutboxMutationEvent.swift index 0401663f6f..3fdf36b4d7 100644 --- a/AmplifyPlugins/DataStore/Sources/AWSDataStorePlugin/Sync/Events/OutboxMutationEvent.swift +++ b/AmplifyPlugins/DataStore/Sources/AWSDataStorePlugin/Sync/Events/OutboxMutationEvent.swift @@ -36,7 +36,7 @@ public struct OutboxMutationEvent { public struct OutboxMutationEventElement { public let model: Model public var version: Int? - public var lastChangedAt: Int? + public var lastChangedAt: Int64? public var deleted: Bool? } } diff --git a/AmplifyPlugins/DataStore/Sources/AWSDataStorePlugin/Sync/InitialSync/InitialSyncOperation.swift b/AmplifyPlugins/DataStore/Sources/AWSDataStorePlugin/Sync/InitialSync/InitialSyncOperation.swift index d90392260a..a81f840cd0 100644 --- a/AmplifyPlugins/DataStore/Sources/AWSDataStorePlugin/Sync/InitialSync/InitialSyncOperation.swift +++ b/AmplifyPlugins/DataStore/Sources/AWSDataStorePlugin/Sync/InitialSync/InitialSyncOperation.swift @@ -67,7 +67,7 @@ final class InitialSyncOperation: AsynchronousOperation { } } - private func getLastSyncTime() -> Int? { + private func getLastSyncTime() -> Int64? { guard !isCancelled else { finish(result: .successfulVoid) return nil @@ -109,7 +109,7 @@ final class InitialSyncOperation: AsynchronousOperation { } } - private func query(lastSyncTime: Int?, nextToken: String? = nil) async { + private func query(lastSyncTime: Int64?, nextToken: String? = nil) async { guard !isCancelled else { finish(result: .successfulVoid) return @@ -160,7 +160,7 @@ final class InitialSyncOperation: AsynchronousOperation { /// Disposes of the query results: Stops if error, reconciles results if success, and kick off a new query if there /// is a next token - private func handleQueryResults(lastSyncTime: Int?, + private func handleQueryResults(lastSyncTime: Int64?, graphQLResult: Result>) { guard !isCancelled else { finish(result: .successfulVoid) @@ -198,7 +198,7 @@ final class InitialSyncOperation: AsynchronousOperation { } } - private func updateModelSyncMetadata(lastSyncTime: Int?) { + private func updateModelSyncMetadata(lastSyncTime: Int64?) { guard !isCancelled else { finish(result: .successfulVoid) return diff --git a/AmplifyPlugins/DataStore/Sources/AWSDataStorePlugin/Sync/Support/Model+Compare.swift b/AmplifyPlugins/DataStore/Sources/AWSDataStorePlugin/Sync/Support/Model+Compare.swift index 9860ae68bb..ca9595dbf1 100644 --- a/AmplifyPlugins/DataStore/Sources/AWSDataStorePlugin/Sync/Support/Model+Compare.swift +++ b/AmplifyPlugins/DataStore/Sources/AWSDataStorePlugin/Sync/Support/Model+Compare.swift @@ -56,12 +56,17 @@ extension ModelSchema { return false } case .int: - guard let value1Optional = value1 as? Int?, let value2Optional = value2 as? Int? else { - return false + if let value1Optional = value1 as? Int?, let value2Optional = value2 as? Int? { + if !compare(value1Optional, value2Optional) { + return false + } } - if !compare(value1Optional, value2Optional) { - return false + if let value1Optional = value1 as? Int64?, let value2Optional = value2 as? Int64? { + if !compare(value1Optional, value2Optional) { + return false + } } + return false case .double: guard let value1Optional = value1 as? Double?, let value2Optional = value2 as? Double? else { return false diff --git a/AmplifyPlugins/DataStore/Tests/AWSDataStorePluginTests/Core/SQLiteStorageEngineAdapterTests.swift b/AmplifyPlugins/DataStore/Tests/AWSDataStorePluginTests/Core/SQLiteStorageEngineAdapterTests.swift index 16870f2ed4..c14e909701 100644 --- a/AmplifyPlugins/DataStore/Tests/AWSDataStorePluginTests/Core/SQLiteStorageEngineAdapterTests.swift +++ b/AmplifyPlugins/DataStore/Tests/AWSDataStorePluginTests/Core/SQLiteStorageEngineAdapterTests.swift @@ -676,7 +676,7 @@ class SQLiteStorageEngineAdapterTests: BaseDataStoreTests { let metadata = MutationSyncMetadata(modelId: modelId, modelName: modelName, deleted: false, - lastChangedAt: Int(Date().timeIntervalSince1970), + lastChangedAt: Int64(Date().timeIntervalSince1970), version: 1) storageAdapter.save(metadata) { result in @@ -700,12 +700,12 @@ class SQLiteStorageEngineAdapterTests: BaseDataStoreTests { let metadata1 = MutationSyncMetadata(modelId: UUID().uuidString, modelName: modelName, deleted: false, - lastChangedAt: Int(Date().timeIntervalSince1970), + lastChangedAt: Int64(Date().timeIntervalSince1970), version: 1) let metadata2 = MutationSyncMetadata(modelId: UUID().uuidString, modelName: modelName, deleted: false, - lastChangedAt: Int(Date().timeIntervalSince1970), + lastChangedAt: Int64(Date().timeIntervalSince1970), version: 1) let saveMetadata1 = expectation(description: "save metadata1 success") diff --git a/AmplifyPlugins/DataStore/Tests/AWSDataStorePluginTests/Core/StorageAdapterMutationSyncTests.swift b/AmplifyPlugins/DataStore/Tests/AWSDataStorePluginTests/Core/StorageAdapterMutationSyncTests.swift index f33024288b..07c9e922b2 100644 --- a/AmplifyPlugins/DataStore/Tests/AWSDataStorePluginTests/Core/StorageAdapterMutationSyncTests.swift +++ b/AmplifyPlugins/DataStore/Tests/AWSDataStorePluginTests/Core/StorageAdapterMutationSyncTests.swift @@ -32,7 +32,7 @@ class StorageAdapterMutationSyncTests: BaseDataStoreTests { MutationSyncMetadata(modelId: $0.id, modelName: Post.modelName, deleted: false, - lastChangedAt: Int(Date().timeIntervalSince1970), + lastChangedAt: Int64(Date().timeIntervalSince1970), version: 1) } populateData(syncMetadataList) diff --git a/AmplifyPlugins/DataStore/Tests/AWSDataStorePluginTests/Sync/InitialSync/InitialSyncOperationTests.swift b/AmplifyPlugins/DataStore/Tests/AWSDataStorePluginTests/Sync/InitialSync/InitialSyncOperationTests.swift index 405bb0f18b..c320409284 100644 --- a/AmplifyPlugins/DataStore/Tests/AWSDataStorePluginTests/Sync/InitialSync/InitialSyncOperationTests.swift +++ b/AmplifyPlugins/DataStore/Tests/AWSDataStorePluginTests/Sync/InitialSync/InitialSyncOperationTests.swift @@ -29,7 +29,7 @@ class InitialSyncOperationTests: XCTestCase { /// - It reads sync metadata from storage func testReadsMetadata() { let responder = QueryRequestListenerResponder> { _, listener in - let startDateMilliseconds = Int(Date().timeIntervalSince1970) * 1_000 + let startDateMilliseconds = Int64(Date().timeIntervalSince1970) * 1_000 let list = PaginatedList(items: [], nextToken: nil, startedAt: startDateMilliseconds) let event: GraphQLOperation>.OperationResult = .success(.success(list)) listener?(event) @@ -90,7 +90,7 @@ class InitialSyncOperationTests: XCTestCase { func testQueriesAPI() { let apiWasQueried = expectation(description: "API was queried for a PaginatedList of AnyModel") let responder = QueryRequestListenerResponder> { _, listener in - let startDateMilliseconds = Int(Date().timeIntervalSince1970) * 1_000 + let startDateMilliseconds = Int64(Date().timeIntervalSince1970) * 1_000 let list = PaginatedList(items: [], nextToken: nil, startedAt: startDateMilliseconds) let event: GraphQLOperation>.OperationResult = .success(.success(list)) listener?(event) @@ -148,7 +148,7 @@ class InitialSyncOperationTests: XCTestCase { /// - The method invokes a completion callback when complete func testInvokesPublisherCompletion() { let responder = QueryRequestListenerResponder> { _, listener in - let startDateMilliseconds = Int(Date().timeIntervalSince1970) * 1_000 + let startDateMilliseconds = Int64(Date().timeIntervalSince1970) * 1_000 let list = PaginatedList(items: [], nextToken: nil, startedAt: startDateMilliseconds) let event: GraphQLOperation>.OperationResult = .success(.success(list)) listener?(event) @@ -203,7 +203,7 @@ class InitialSyncOperationTests: XCTestCase { var nextTokens = ["token1", "token2"] let responder = QueryRequestListenerResponder> { _, listener in - let startedAt = Int(Date().timeIntervalSince1970) + let startedAt = Int64(Date().timeIntervalSince1970) let nextToken = nextTokens.isEmpty ? nil : nextTokens.removeFirst() let list = PaginatedList(items: [], nextToken: nextToken, startedAt: startedAt) let event: GraphQLOperation>.OperationResult = .success(.success(list)) @@ -254,13 +254,13 @@ class InitialSyncOperationTests: XCTestCase { /// - Then: /// - The method submits the returned data to the reconciliation queue func testSubmitsToReconciliationQueue() { - let startedAtMilliseconds = Int(Date().timeIntervalSince1970) * 1_000 + let startedAtMilliseconds = Int64(Date().timeIntervalSince1970) * 1_000 let model = MockSynced(id: "1") let anyModel = AnyModel(model) let metadata = MutationSyncMetadata(modelId: "1", modelName: MockSynced.modelName, deleted: false, - lastChangedAt: Int(Date().timeIntervalSince1970), + lastChangedAt: Int64(Date().timeIntervalSince1970), version: 1) let mutationSync = MutationSync(model: anyModel, syncMetadata: metadata) let responder = QueryRequestListenerResponder> { _, listener in @@ -331,7 +331,7 @@ class InitialSyncOperationTests: XCTestCase { /// - Then: /// - The method submits the returned data to the reconciliation queue func testUpdatesSyncMetadata() throws { - let startDateMilliseconds = Int(Date().timeIntervalSince1970) * 1_000 + let startDateMilliseconds = Int64(Date().timeIntervalSince1970) * 1_000 let responder = QueryRequestListenerResponder> { _, listener in let startedAt = startDateMilliseconds let list = PaginatedList(items: [], nextToken: nil, startedAt: startedAt) @@ -477,7 +477,7 @@ class InitialSyncOperationTests: XCTestCase { /// - It performs a sync query against the API category with a "lastSync" time from the last start time of /// the stored metadata func testQueriesFromLastSync() throws { - let startDateMilliseconds = (Int(Date().timeIntervalSince1970) - 100) * 1_000 + let startDateMilliseconds = (Int64(Date().timeIntervalSince1970) - 100) * 1_000 let storageAdapter = try SQLiteStorageEngineAdapter(connection: Connection(.inMemory)) try storageAdapter.setUp(modelSchemas: StorageEngine.systemModelSchemas + [MockSynced.schema]) @@ -496,7 +496,7 @@ class InitialSyncOperationTests: XCTestCase { let apiWasQueried = expectation(description: "API was queried for a PaginatedList of AnyModel") let responder = QueryRequestListenerResponder> { request, listener in - let lastSync = request.variables?["lastSync"] as? Int + let lastSync = request.variables?["lastSync"] as? Int64 XCTAssertEqual(lastSync, startDateMilliseconds) let list = PaginatedList(items: [], nextToken: nil, startedAt: nil) @@ -548,7 +548,7 @@ class InitialSyncOperationTests: XCTestCase { func testBaseQueryWhenExpiredLastSync() throws { // Set start date to 100 seconds in the past - let startDateMilliSeconds = (Int(Date().timeIntervalSince1970) - 100) * 1_000 + let startDateMilliSeconds = (Int64(Date().timeIntervalSince1970) - 100) * 1_000 let storageAdapter = try SQLiteStorageEngineAdapter(connection: Connection(.inMemory)) try storageAdapter.setUp(modelSchemas: StorageEngine.systemModelSchemas + [MockSynced.schema]) diff --git a/AmplifyPlugins/DataStore/Tests/AWSDataStorePluginTests/Sync/InitialSync/InitialSyncOrchestratorTests.swift b/AmplifyPlugins/DataStore/Tests/AWSDataStorePluginTests/Sync/InitialSync/InitialSyncOrchestratorTests.swift index 6d85a46cf6..5dc0082601 100644 --- a/AmplifyPlugins/DataStore/Tests/AWSDataStorePluginTests/Sync/InitialSync/InitialSyncOrchestratorTests.swift +++ b/AmplifyPlugins/DataStore/Tests/AWSDataStorePluginTests/Sync/InitialSync/InitialSyncOrchestratorTests.swift @@ -28,7 +28,7 @@ class InitialSyncOrchestratorTests: XCTestCase { ModelRegistry.reset() PostCommentModelRegistration().registerModels(registry: ModelRegistry.self) let responder = QueryRequestListenerResponder> { _, listener in - let startedAt = Int(Date().timeIntervalSince1970) + let startedAt = Int64(Date().timeIntervalSince1970) let list = PaginatedList(items: [], nextToken: nil, startedAt: startedAt) let event: GraphQLOperation>.OperationResult = .success(.success(list)) listener?(event) @@ -126,7 +126,7 @@ class InitialSyncOrchestratorTests: XCTestCase { .failure(APIError.operationError("", "", nil)) listener?(event) } else if request.document.contains("SyncComments") { - let startedAt = Int(Date().timeIntervalSince1970) + let startedAt = Int64(Date().timeIntervalSince1970) let list = PaginatedList(items: [], nextToken: nil, startedAt: startedAt) let event: GraphQLOperation>.OperationResult = .success(.success(list)) listener?(event) @@ -239,7 +239,7 @@ class InitialSyncOrchestratorTests: XCTestCase { TestModelsWithNoAssociations().registerModels(registry: ModelRegistry.self) let responder = QueryRequestListenerResponder> { _, listener in - let startedAt = Int(Date().timeIntervalSince1970) + let startedAt = Int64(Date().timeIntervalSince1970) let list = PaginatedList(items: [], nextToken: nil, startedAt: startedAt) let event: GraphQLOperation>.OperationResult = .success(.success(list)) listener?(event) @@ -306,7 +306,7 @@ class InitialSyncOrchestratorTests: XCTestCase { commentWasQueried.fulfill() } - let startedAt = Int(Date().timeIntervalSince1970) + let startedAt = Int64(Date().timeIntervalSince1970) let list = PaginatedList(items: [], nextToken: nil, startedAt: startedAt) let event: GraphQLOperation>.OperationResult = .success(.success(list)) listener?(event) @@ -380,7 +380,7 @@ class InitialSyncOrchestratorTests: XCTestCase { commentWasQueried.fulfill() } - let startedAt = Int(Date().timeIntervalSince1970) + let startedAt = Int64(Date().timeIntervalSince1970) let nextToken = nextTokens.isEmpty ? nil : nextTokens.removeFirst() let list = PaginatedList(items: [], nextToken: nextToken, startedAt: startedAt) let event: GraphQLOperation>.OperationResult = .success(.success(list)) diff --git a/AmplifyPlugins/DataStore/Tests/AWSDataStorePluginTests/Sync/InitialSync/ModelSyncedEventEmitterTests.swift b/AmplifyPlugins/DataStore/Tests/AWSDataStorePluginTests/Sync/InitialSync/ModelSyncedEventEmitterTests.swift index 2dabd2bac3..38780e8ee2 100644 --- a/AmplifyPlugins/DataStore/Tests/AWSDataStorePluginTests/Sync/InitialSync/ModelSyncedEventEmitterTests.swift +++ b/AmplifyPlugins/DataStore/Tests/AWSDataStorePluginTests/Sync/InitialSync/ModelSyncedEventEmitterTests.swift @@ -49,7 +49,7 @@ class ModelSyncedEventEmitterTests: XCTestCase { let anyPostMetadata = MutationSyncMetadata(modelId: "1", modelName: Post.modelName, deleted: false, - lastChangedAt: Int(Date().timeIntervalSince1970), + lastChangedAt: Int64(Date().timeIntervalSince1970), version: 1) let testPost = Post(id: "1", title: "post1", content: "content", createdAt: .now()) let anyPost = AnyModel(testPost) @@ -129,7 +129,7 @@ class ModelSyncedEventEmitterTests: XCTestCase { let anyPostMetadata = MutationSyncMetadata(modelId: "1", modelName: "", deleted: false, - lastChangedAt: Int(Date().timeIntervalSince1970), + lastChangedAt: Int64(Date().timeIntervalSince1970), version: 1) let testPost = Post(id: "1", title: "post1", content: "content", createdAt: .now()) let anyPost = AnyModel(testPost) @@ -202,7 +202,7 @@ class ModelSyncedEventEmitterTests: XCTestCase { let anyPostMetadata = MutationSyncMetadata(modelId: "1", modelName: Post.modelName, deleted: false, - lastChangedAt: Int(Date().timeIntervalSince1970), + lastChangedAt: Int64(Date().timeIntervalSince1970), version: 1) let testPost = Post(id: "1", title: "post1", content: "content", createdAt: .now()) let anyPost = AnyModel(testPost) diff --git a/AmplifyPlugins/DataStore/Tests/AWSDataStorePluginTests/Sync/InitialSync/SyncEventEmitterTests.swift b/AmplifyPlugins/DataStore/Tests/AWSDataStorePluginTests/Sync/InitialSync/SyncEventEmitterTests.swift index d5f497274c..9dfbbadfa5 100644 --- a/AmplifyPlugins/DataStore/Tests/AWSDataStorePluginTests/Sync/InitialSync/SyncEventEmitterTests.swift +++ b/AmplifyPlugins/DataStore/Tests/AWSDataStorePluginTests/Sync/InitialSync/SyncEventEmitterTests.swift @@ -45,7 +45,7 @@ class SyncEventEmitterTests: XCTestCase { let anyPostMetadata = MutationSyncMetadata(modelId: "1", modelName: Post.modelName, deleted: false, - lastChangedAt: Int(Date().timeIntervalSince1970), + lastChangedAt: Int64(Date().timeIntervalSince1970), version: 1) let anyPostMutationSync = MutationSync(model: anyPost, syncMetadata: anyPostMetadata) let postMutationEvent = try MutationEvent(untypedModel: testPost, mutationType: .create) @@ -196,7 +196,7 @@ class SyncEventEmitterTests: XCTestCase { let anyPostMetadata = MutationSyncMetadata(modelId: "1", modelName: Post.modelName, deleted: false, - lastChangedAt: Int(Date().timeIntervalSince1970), + lastChangedAt: Int64(Date().timeIntervalSince1970), version: 1) let anyPostMutationSync = MutationSync(model: anyPost, syncMetadata: anyPostMetadata) @@ -207,7 +207,7 @@ class SyncEventEmitterTests: XCTestCase { let anyCommentMetadata = MutationSyncMetadata(modelId: "1", modelName: Comment.modelName, deleted: true, - lastChangedAt: Int(Date().timeIntervalSince1970), + lastChangedAt: Int64(Date().timeIntervalSince1970), version: 2) let anyCommentMutationSync = MutationSync(model: anyComment, syncMetadata: anyCommentMetadata) let commentMutationEvent = try MutationEvent(untypedModel: testComment, mutationType: .delete) diff --git a/AmplifyPlugins/DataStore/Tests/AWSDataStorePluginTests/Sync/SubscriptionSync/ReconcileAndLocalSaveOperationTests.swift b/AmplifyPlugins/DataStore/Tests/AWSDataStorePluginTests/Sync/SubscriptionSync/ReconcileAndLocalSaveOperationTests.swift index 2b7d4220e6..d0d19eeb4e 100644 --- a/AmplifyPlugins/DataStore/Tests/AWSDataStorePluginTests/Sync/SubscriptionSync/ReconcileAndLocalSaveOperationTests.swift +++ b/AmplifyPlugins/DataStore/Tests/AWSDataStorePluginTests/Sync/SubscriptionSync/ReconcileAndLocalSaveOperationTests.swift @@ -39,7 +39,7 @@ class ReconcileAndLocalSaveOperationTests: XCTestCase { anyPostMetadata = MutationSyncMetadata(modelId: "1", modelName: testPost.modelName, deleted: false, - lastChangedAt: Int(Date().timeIntervalSince1970), + lastChangedAt: Int64(Date().timeIntervalSince1970), version: 1) anyPostMutationSync = MutationSync(model: anyPost, syncMetadata: anyPostMetadata) @@ -48,7 +48,7 @@ class ReconcileAndLocalSaveOperationTests: XCTestCase { let anyPostDeleteMetadata = MutationSyncMetadata(modelId: "2", modelName: testPost.modelName, deleted: true, - lastChangedAt: Int(Date().timeIntervalSince1970), + lastChangedAt: Int64(Date().timeIntervalSince1970), version: 2) anyPostDeletedMutationSync = MutationSync(model: anyPostDelete, syncMetadata: anyPostDeleteMetadata) anyPostMutationEvent = MutationEvent(id: "1", @@ -338,12 +338,12 @@ class ReconcileAndLocalSaveOperationTests: XCTestCase { let metadata1 = MutationSyncMetadata(modelId: model1.id, modelName: model1.modelName, deleted: false, - lastChangedAt: Int(Date().timeIntervalSince1970), + lastChangedAt: Int64(Date().timeIntervalSince1970), version: 1) let metadata2 = MutationSyncMetadata(modelId: model2.id, modelName: model2.modelName, deleted: false, - lastChangedAt: Int(Date().timeIntervalSince1970), + lastChangedAt: Int64(Date().timeIntervalSince1970), version: 1) let remoteModel1 = MutationSync(model: model1, syncMetadata: metadata1) let remoteModel2 = MutationSync(model: model2, syncMetadata: metadata2) @@ -491,12 +491,12 @@ class ReconcileAndLocalSaveOperationTests: XCTestCase { let metadata1 = MutationSyncMetadata(modelId: model1.id, modelName: model1.modelName, deleted: false, - lastChangedAt: Int(Date().timeIntervalSince1970), + lastChangedAt: Int64(Date().timeIntervalSince1970), version: 1) let metadata2 = MutationSyncMetadata(modelId: model2.id, modelName: model2.modelName, deleted: false, - lastChangedAt: Int(Date().timeIntervalSince1970), + lastChangedAt: Int64(Date().timeIntervalSince1970), version: 1) let remoteModel1 = MutationSync(model: model1, syncMetadata: metadata1) let remoteModel2 = MutationSync(model: model2, syncMetadata: metadata2) @@ -504,12 +504,12 @@ class ReconcileAndLocalSaveOperationTests: XCTestCase { let localMetadata1 = MutationSyncMetadata(modelId: model1.id, modelName: model1.modelName, deleted: false, - lastChangedAt: Int(Date().timeIntervalSince1970), + lastChangedAt: Int64(Date().timeIntervalSince1970), version: 3) let localMetadata2 = MutationSyncMetadata(modelId: model2.id, modelName: model2.modelName, deleted: false, - lastChangedAt: Int(Date().timeIntervalSince1970), + lastChangedAt: Int64(Date().timeIntervalSince1970), version: 4) operation.publisher .sink { completion in diff --git a/AmplifyPlugins/DataStore/Tests/AWSDataStorePluginTests/Sync/SubscriptionSync/ReconcileAndSaveQueueTests.swift b/AmplifyPlugins/DataStore/Tests/AWSDataStorePluginTests/Sync/SubscriptionSync/ReconcileAndSaveQueueTests.swift index aeb93311cb..da06a88397 100644 --- a/AmplifyPlugins/DataStore/Tests/AWSDataStorePluginTests/Sync/SubscriptionSync/ReconcileAndSaveQueueTests.swift +++ b/AmplifyPlugins/DataStore/Tests/AWSDataStorePluginTests/Sync/SubscriptionSync/ReconcileAndSaveQueueTests.swift @@ -23,7 +23,7 @@ class ReconcileAndSaveQueueTests: XCTestCase { anyPostMetadata = MutationSyncMetadata(modelId: "1", modelName: testPost.modelName, deleted: false, - lastChangedAt: Int(Date().timeIntervalSince1970), + lastChangedAt: Int64(Date().timeIntervalSince1970), version: 1) anyPostMutationSync = MutationSync(model: anyPost, syncMetadata: anyPostMetadata) anyPostMutationSync = MutationSync(model: anyPost, syncMetadata: anyPostMetadata) diff --git a/AmplifyPlugins/DataStore/Tests/AWSDataStorePluginTests/Sync/Support/MutationEventExtensionsTests.swift b/AmplifyPlugins/DataStore/Tests/AWSDataStorePluginTests/Sync/Support/MutationEventExtensionsTests.swift index e709ebe364..7938a953ff 100644 --- a/AmplifyPlugins/DataStore/Tests/AWSDataStorePluginTests/Sync/Support/MutationEventExtensionsTests.swift +++ b/AmplifyPlugins/DataStore/Tests/AWSDataStorePluginTests/Sync/Support/MutationEventExtensionsTests.swift @@ -361,7 +361,7 @@ class MutationEventExtensionsTest: BaseDataStoreTests { let metadata = MutationSyncMetadata(modelId: model.identifier(schema: MutationEvent.schema).stringValue, modelName: model.modelName, deleted: false, - lastChangedAt: Int(Date().timeIntervalSince1970), + lastChangedAt: Int64(Date().timeIntervalSince1970), version: version) return MutationSync(model: AnyModel(model), syncMetadata: metadata) } diff --git a/AmplifyPlugins/DataStore/Tests/AWSDataStorePluginTests/TestSupport/Foundation+TestExtensions.swift b/AmplifyPlugins/DataStore/Tests/AWSDataStorePluginTests/TestSupport/Foundation+TestExtensions.swift index a86c286cdf..53c8c27732 100644 --- a/AmplifyPlugins/DataStore/Tests/AWSDataStorePluginTests/TestSupport/Foundation+TestExtensions.swift +++ b/AmplifyPlugins/DataStore/Tests/AWSDataStorePluginTests/TestSupport/Foundation+TestExtensions.swift @@ -8,7 +8,7 @@ import Foundation extension Date { - var unixSeconds: Int { - Int(timeIntervalSince1970) + var unixSeconds: Int64 { + Int64(timeIntervalSince1970) } }