From b70b478997f3a1b566bd0fefa0f12a2c4a9c9e0e Mon Sep 17 00:00:00 2001 From: NachoSoto Date: Wed, 16 Aug 2023 15:13:19 -0700 Subject: [PATCH] `PostedTransactionCache`: remove implementation As explained in #2914 this won't be usable. --- RevenueCat.xcodeproj/project.pbxproj | 8 --- Sources/Caching/PostedTransactionCache.swift | 56 ------------------ .../Caching/PostedTransactionCacheTests.swift | 57 ------------------- 3 files changed, 121 deletions(-) delete mode 100644 Sources/Caching/PostedTransactionCache.swift delete mode 100644 Tests/UnitTests/Caching/PostedTransactionCacheTests.swift diff --git a/RevenueCat.xcodeproj/project.pbxproj b/RevenueCat.xcodeproj/project.pbxproj index 26204175cf..4c020ae020 100644 --- a/RevenueCat.xcodeproj/project.pbxproj +++ b/RevenueCat.xcodeproj/project.pbxproj @@ -222,7 +222,6 @@ 4F5C05BF2A43A2C500651C7D /* LocaleExtensionsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F5C05BE2A43A2C500651C7D /* LocaleExtensionsTests.swift */; }; 4F5D52D92A5713A800E1C758 /* DebugViewSwiftUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4FCEEA602A379CF9002C2112 /* DebugViewSwiftUITests.swift */; }; 4F5D52EC2A57152B00E1C758 /* ImageSnapshot.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4FCEEA622A37A2E9002C2112 /* ImageSnapshot.swift */; }; - 4F6423F62A72C20F0071BFD1 /* PostedTransactionCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F6423F52A72C20F0071BFD1 /* PostedTransactionCache.swift */; }; 4F69EB092A14406E00ED6D4B /* Matchers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F69EB082A14406E00ED6D4B /* Matchers.swift */; }; 4F69EB0A2A14406E00ED6D4B /* Matchers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F69EB082A14406E00ED6D4B /* Matchers.swift */; }; 4F6BED592A26A14400CD9322 /* DebugView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F6BED582A26A14400CD9322 /* DebugView.swift */; }; @@ -275,7 +274,6 @@ 4FBBC5682A61E42F0077281F /* NonEmptyStringDecodable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4FBBC5672A61E42F0077281F /* NonEmptyStringDecodable.swift */; }; 4FC083292A4A35FB00A97089 /* Integer+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4FC083282A4A35FB00A97089 /* Integer+Extensions.swift */; }; 4FC0832B2A4A361700A97089 /* IntegerExtensionsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4FC0832A2A4A361700A97089 /* IntegerExtensionsTests.swift */; }; - 4FC6F8892A73E445002139B2 /* PostedTransactionCacheTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4FC6F8882A73E445002139B2 /* PostedTransactionCacheTests.swift */; }; 4FC972172A712DCC008593DE /* CachingProductsManagerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4FC972162A712DCC008593DE /* CachingProductsManagerTests.swift */; }; 4FCBA84F2A15391B004134BD /* SnapshotTesting+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 576C8A9127D27DDD0058FA6E /* SnapshotTesting+Extensions.swift */; }; 4FCBA8512A153940004134BD /* SnapshotTesting in Frameworks */ = {isa = PBXBuildFile; productRef = 4FCBA8502A153940004134BD /* SnapshotTesting */; }; @@ -973,7 +971,6 @@ 4F54DF412A1D8D0700FD72BF /* MockTransactionPoster.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockTransactionPoster.swift; sourceTree = ""; }; 4F5C05BC2A43A21A00651C7D /* Locale+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Locale+Extensions.swift"; sourceTree = ""; }; 4F5C05BE2A43A2C500651C7D /* LocaleExtensionsTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocaleExtensionsTests.swift; sourceTree = ""; }; - 4F6423F52A72C20F0071BFD1 /* PostedTransactionCache.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostedTransactionCache.swift; sourceTree = ""; }; 4F69EB082A14406E00ED6D4B /* Matchers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Matchers.swift; sourceTree = ""; }; 4F6BED582A26A14400CD9322 /* DebugView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DebugView.swift; sourceTree = ""; }; 4F6BEDD82A26B55C00CD9322 /* DebugViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DebugViewModel.swift; sourceTree = ""; }; @@ -1000,7 +997,6 @@ 4FBBC5672A61E42F0077281F /* NonEmptyStringDecodable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NonEmptyStringDecodable.swift; sourceTree = ""; }; 4FC083282A4A35FB00A97089 /* Integer+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Integer+Extensions.swift"; sourceTree = ""; }; 4FC0832A2A4A361700A97089 /* IntegerExtensionsTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IntegerExtensionsTests.swift; sourceTree = ""; }; - 4FC6F8882A73E445002139B2 /* PostedTransactionCacheTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PostedTransactionCacheTests.swift; sourceTree = ""; }; 4FC972162A712DCC008593DE /* CachingProductsManagerTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CachingProductsManagerTests.swift; sourceTree = ""; }; 4FCBA8522A1539D0004134BD /* __Snapshots__ */ = {isa = PBXFileReference; lastKnownFileType = folder; path = __Snapshots__; sourceTree = ""; }; 4FCEEA5D2A379B80002C2112 /* DebugViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DebugViewController.swift; sourceTree = ""; }; @@ -2170,7 +2166,6 @@ children = ( 37E35D87B7E6F91E27E98F42 /* DeviceCacheTests.swift */, 37E35E3250FBBB03D92E06EC /* InMemoryCachedObjectTests.swift */, - 4FC6F8882A73E445002139B2 /* PostedTransactionCacheTests.swift */, ); path = Caching; sourceTree = ""; @@ -2635,7 +2630,6 @@ children = ( B3B5FBC0269E17CE00104A0C /* DeviceCache.swift */, B3B5FBBE269E081E00104A0C /* InMemoryCachedObject.swift */, - 4F6423F52A72C20F0071BFD1 /* PostedTransactionCache.swift */, ); path = Caching; sourceTree = ""; @@ -3272,7 +3266,6 @@ 57E6C27C29723A94001AFE98 /* Signing.swift in Sources */, 57CB2AD429CCF21A00C91439 /* RedirectLoggerTaskDelegate.swift in Sources */, 57C381DC27961547009E3940 /* SK2StoreProductDiscount.swift in Sources */, - 4F6423F62A72C20F0071BFD1 /* PostedTransactionCache.swift in Sources */, B34605CA279A6E380031CA74 /* GetCustomerInfoOperation.swift in Sources */, 5751379527F4C4D80064AB2C /* Optional+Extensions.swift in Sources */, B3852FA026C1ED1F005384F8 /* IdentityManager.swift in Sources */, @@ -3493,7 +3486,6 @@ 5766AA5A283D4CAB00FA6091 /* IgnoreHashableTests.swift in Sources */, B36824BF268FBC8700957E4C /* SubscriberAttributeTests.swift in Sources */, 351B51BC26D450E800BD2BD7 /* OfferingsTests.swift in Sources */, - 4FC6F8892A73E445002139B2 /* PostedTransactionCacheTests.swift in Sources */, 5796A38827D6B85900653165 /* BackendPostReceiptDataTests.swift in Sources */, 5752E8482892DC500069281E /* ErrorUtilsTests.swift in Sources */, 57488BF229CB84D40000EE7E /* BackendOfflineEntitlementsTests.swift in Sources */, diff --git a/Sources/Caching/PostedTransactionCache.swift b/Sources/Caching/PostedTransactionCache.swift deleted file mode 100644 index d4357ddd4e..0000000000 --- a/Sources/Caching/PostedTransactionCache.swift +++ /dev/null @@ -1,56 +0,0 @@ -// -// Copyright RevenueCat Inc. All Rights Reserved. -// -// Licensed under the MIT License (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://opensource.org/licenses/MIT -// -// PostedTransactionCache.swift -// -// Created by Nacho Soto on 7/27/23. - -import Foundation - -/// A type that can keep track of which transactions have been posted to the backend. -protocol PostedTransactionCacheType: Sendable { - - func savePostedTransaction(_ transaction: StoreTransactionType) - func hasPostedTransaction(_ transaction: StoreTransactionType) -> Bool - -} - -final class PostedTransactionCache: PostedTransactionCacheType { - - private typealias StoredTransactions = Set - - private let deviceCache: DeviceCache - - init(deviceCache: DeviceCache) { - self.deviceCache = deviceCache - } - - func savePostedTransaction(_ transaction: StoreTransactionType) { - self.deviceCache.update(key: CacheKey.transactions, - default: Set()) { transactions in - transactions.insert(transaction.transactionIdentifier) - } - } - - func hasPostedTransaction(_ transaction: StoreTransactionType) -> Bool { - let transactions: StoredTransactions = self.deviceCache.value(for: CacheKey.transactions) ?? [] - return transactions.contains(transaction.transactionIdentifier) - } - -} - -private extension PostedTransactionCache { - - enum CacheKey: String, DeviceCacheKeyType { - - case transactions = "com.revenuecat.cached_transaction_identifier" - - } - -} diff --git a/Tests/UnitTests/Caching/PostedTransactionCacheTests.swift b/Tests/UnitTests/Caching/PostedTransactionCacheTests.swift deleted file mode 100644 index 43e14c3782..0000000000 --- a/Tests/UnitTests/Caching/PostedTransactionCacheTests.swift +++ /dev/null @@ -1,57 +0,0 @@ -// -// Copyright RevenueCat Inc. All Rights Reserved. -// -// Licensed under the MIT License (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://opensource.org/licenses/MIT -// -// PostedTransactionCacheTests.swift -// -// Created by Nacho Soto on 7/28/23. - -import Foundation -import Nimble -import XCTest - -@testable import RevenueCat - -class PostedTransactionCacheTests: TestCase { - - private var userDefaults: UserDefaults! - private var deviceCache: DeviceCache! - private var cache: PostedTransactionCache! - - override func setUpWithError() throws { - try super.setUpWithError() - - self.userDefaults = try XCTUnwrap(.init(suiteName: UUID().uuidString)) - self.deviceCache = .init(sandboxEnvironmentDetector: MockSandboxEnvironmentDetector(isSandbox: true), - userDefaults: self.userDefaults) - self.cache = .init(deviceCache: self.deviceCache) - } - - func testNoPostedTransactions() { - expect(self.cache.hasPostedTransaction(MockStoreTransaction())) == false - } - - func testSavesFirstTransaction() { - let transaction = MockStoreTransaction() - - self.cache.savePostedTransaction(transaction) - expect(self.cache.hasPostedTransaction(transaction)) == true - } - - func testSaveMultipleTransactions() { - let transaction1 = MockStoreTransaction() - let transaction2 = MockStoreTransaction() - - self.cache.savePostedTransaction(transaction1) - self.cache.savePostedTransaction(transaction2) - - expect(self.cache.hasPostedTransaction(transaction1)) == true - expect(self.cache.hasPostedTransaction(transaction2)) == true - } - -}