Skip to content

Commit 994da9a

Browse files
committed
Add CIABEligibilityCheckerTests
1 parent 23a32bf commit 994da9a

File tree

2 files changed

+152
-0
lines changed

2 files changed

+152
-0
lines changed

WooCommerce/WooCommerce.xcodeproj/project.pbxproj

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1237,6 +1237,7 @@
12371237
26FFC50D2BED7C5B0067B3A4 /* WatchDependencies.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26B249702BEC801400730730 /* WatchDependencies.swift */; };
12381238
2D09E0D12E61BC7F005C26F3 /* ApplicationPasswordsExperimentState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D09E0D02E61BC7D005C26F3 /* ApplicationPasswordsExperimentState.swift */; };
12391239
2D09E0D52E65C9B9005C26F3 /* ApplicationPasswordsExperimentStateTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D09E0D42E65C9B9005C26F3 /* ApplicationPasswordsExperimentStateTests.swift */; };
1240+
2D7A3E232E7891DB00C46401 /* CIABEligibilityCheckerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D7A3E222E7891D200C46401 /* CIABEligibilityCheckerTests.swift */; };
12401241
2D880B492DFB2F3F00A6FB2C /* OptionalBinding.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D880B482DFB2F3D00A6FB2C /* OptionalBinding.swift */; };
12411242
2D88C1112DF883C300A6FB2C /* AttributedString+Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D88C1102DF883BD00A6FB2C /* AttributedString+Helpers.swift */; };
12421243
2DA63E042E69B6D400B0CB28 /* ApplicationPasswordsExperimentAvailabilityCheckerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DA63E032E69B6D200B0CB28 /* ApplicationPasswordsExperimentAvailabilityCheckerTests.swift */; };
@@ -4434,6 +4435,7 @@
44344435
26FFD32928C6A0F4002E5E5E /* UIImage+Widgets.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIImage+Widgets.swift"; sourceTree = "<group>"; };
44354436
2D09E0D02E61BC7D005C26F3 /* ApplicationPasswordsExperimentState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ApplicationPasswordsExperimentState.swift; sourceTree = "<group>"; };
44364437
2D09E0D42E65C9B9005C26F3 /* ApplicationPasswordsExperimentStateTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ApplicationPasswordsExperimentStateTests.swift; sourceTree = "<group>"; };
4438+
2D7A3E222E7891D200C46401 /* CIABEligibilityCheckerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CIABEligibilityCheckerTests.swift; sourceTree = "<group>"; };
44374439
2D880B482DFB2F3D00A6FB2C /* OptionalBinding.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OptionalBinding.swift; sourceTree = "<group>"; };
44384440
2D88C1102DF883BD00A6FB2C /* AttributedString+Helpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AttributedString+Helpers.swift"; sourceTree = "<group>"; };
44394441
2DA63E032E69B6D200B0CB28 /* ApplicationPasswordsExperimentAvailabilityCheckerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ApplicationPasswordsExperimentAvailabilityCheckerTests.swift; sourceTree = "<group>"; };
@@ -9071,6 +9073,14 @@
90719073
path = Images;
90729074
sourceTree = "<group>";
90739075
};
9076+
2D7A3E212E7891C400C46401 /* CIAB */ = {
9077+
isa = PBXGroup;
9078+
children = (
9079+
2D7A3E222E7891D200C46401 /* CIABEligibilityCheckerTests.swift */,
9080+
);
9081+
path = CIAB;
9082+
sourceTree = "<group>";
9083+
};
90749084
2DCB54F82E6AE8C900621F90 /* CIAB */ = {
90759085
isa = PBXGroup;
90769086
children = (
@@ -12959,6 +12969,7 @@
1295912969
D816DDBA22265D8000903E59 /* ViewRelated */ = {
1296012970
isa = PBXGroup;
1296112971
children = (
12972+
2D7A3E212E7891C400C46401 /* CIAB */,
1296212973
864059FE2C6F67A000DA04DC /* Custom Fields */,
1296312974
86023FAB2B16D80E00A28F07 /* Themes */,
1296412975
EE45E2C02A42C9C70085F227 /* Feature Highlight */,
@@ -17454,6 +17465,7 @@
1745417465
B517EA1A218B2D2600730EC4 /* StringFormatterTests.swift in Sources */,
1745517466
200BA15B2CF0A2130006DC5B /* MockPointOfSaleItemsService.swift in Sources */,
1745617467
26F65C9E25DEDE67008FAE29 /* GenerateVariationUseCaseTests.swift in Sources */,
17468+
2D7A3E232E7891DB00C46401 /* CIABEligibilityCheckerTests.swift in Sources */,
1745717469
03D798602A960FDF00809B0E /* MockPaymentCaptureOrchestrator.swift in Sources */,
1745817470
77307809251EA07100178696 /* ProductDownloadSettingsViewModelTests.swift in Sources */,
1745917471
02EA6BFC2435EC3500FFF90A /* MockImageDownloader.swift in Sources */,
Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
import XCTest
2+
@testable import WooCommerce
3+
@testable import Yosemite
4+
5+
class CIABEligibilityCheckerTests: XCTestCase {
6+
private var storesManager: MockStoresManager!
7+
private var sessionManager: SessionManager!
8+
private var checker: CIABEligibilityChecker!
9+
10+
override func setUp() {
11+
super.setUp()
12+
sessionManager = .makeForTesting()
13+
storesManager = MockStoresManager(sessionManager: sessionManager)
14+
checker = CIABEligibilityChecker(stores: storesManager)
15+
}
16+
17+
override func tearDown() {
18+
checker = nil
19+
storesManager = nil
20+
sessionManager = nil
21+
super.tearDown()
22+
}
23+
24+
// MARK: - isCurrentSiteCIAB
25+
26+
func test_is_current_site_ciab_when_no_default_site_returns_false() {
27+
// Given
28+
sessionManager.defaultSite = nil
29+
30+
// Then
31+
XCTAssertFalse(checker.isCurrentSiteCIAB)
32+
}
33+
34+
func test_is_current_site_ciab_when_default_site_is_ciab_returns_true() {
35+
// Given
36+
sessionManager.defaultSite = makeCIABSite()
37+
38+
// Then
39+
XCTAssertTrue(checker.isCurrentSiteCIAB)
40+
}
41+
42+
func test_is_current_site_ciab_when_default_site_is_not_ciab_returns_false() {
43+
// Given
44+
sessionManager.defaultSite = makeNonCIABGardenSite()
45+
46+
// Then
47+
XCTAssertFalse(checker.isCurrentSiteCIAB)
48+
}
49+
50+
func test_is_current_site_ciab_when_default_site_is_non_garden_returns_false() {
51+
// Given
52+
sessionManager.defaultSite = makeNonGardenSite()
53+
54+
// Then
55+
XCTAssertFalse(checker.isCurrentSiteCIAB)
56+
}
57+
58+
// MARK: - isSiteCIAB
59+
60+
func test_is_site_ciab_with_ciab_site_returns_true() {
61+
// Given
62+
let site = makeCIABSite()
63+
64+
// Then
65+
XCTAssertTrue(checker.isSiteCIAB(site))
66+
}
67+
68+
func test_is_site_ciab_with_non_ciab_garden_site_returns_false() {
69+
// Given
70+
let site = makeNonCIABGardenSite()
71+
72+
// Then
73+
XCTAssertFalse(checker.isSiteCIAB(site))
74+
}
75+
76+
func test_is_site_ciab_with_non_garden_site_returns_false() {
77+
// Given
78+
let site = makeNonGardenSite()
79+
80+
// Then
81+
XCTAssertFalse(checker.isSiteCIAB(site))
82+
}
83+
84+
// MARK: - isFeatureSupportedForCurrentSite
85+
86+
func test_is_feature_supported_for_current_site_when_not_ciab_returns_true() {
87+
// Given
88+
sessionManager.defaultSite = makeNonCIABGardenSite()
89+
90+
// Then
91+
XCTAssertTrue(checker.isFeatureSupportedForCurrentSite(.payments))
92+
}
93+
94+
func test_is_feature_supported_for_current_site_when_ciab_and_feature_unsupported_returns_false() {
95+
// Given
96+
sessionManager.defaultSite = makeCIABSite()
97+
98+
// Then
99+
XCTAssertFalse(checker.isFeatureSupportedForCurrentSite(.payments))
100+
}
101+
102+
// MARK: - isFeatureSupported(for:)
103+
104+
func test_is_feature_supported_for_site_when_not_ciab_returns_true() {
105+
// Given
106+
let site = makeNonCIABGardenSite()
107+
108+
// Then
109+
XCTAssertTrue(checker.isFeatureSupported(.payments, for: site))
110+
}
111+
112+
func test_is_feature_supported_for_site_when_ciab_and_feature_unsupported_returns_false() {
113+
// Given
114+
let site = makeCIABSite()
115+
116+
// Then
117+
XCTAssertFalse(checker.isFeatureSupported(.payments, for: site))
118+
}
119+
}
120+
121+
// MARK: - Helpers
122+
private extension CIABEligibilityCheckerTests {
123+
func makeCIABSite() -> Site {
124+
Site.fake().copy(
125+
isGarden: true,
126+
gardenName: "commerce"
127+
)
128+
}
129+
130+
func makeNonCIABGardenSite() -> Site {
131+
Site.fake().copy(
132+
isGarden: true,
133+
gardenName: "not-commerce"
134+
)
135+
}
136+
137+
func makeNonGardenSite() -> Site {
138+
Site.fake().copy(isGarden: false)
139+
}
140+
}

0 commit comments

Comments
 (0)