Skip to content

Commit fd55d0a

Browse files
authored
Merge pull request #619 from Iterable/jay/MOB-5970-mock-api-client
[MOB-5970] create and use blank API client
2 parents ef4811d + afda19a commit fd55d0a

File tree

3 files changed

+90
-86
lines changed

3 files changed

+90
-86
lines changed

swift-sdk.xcodeproj/project.pbxproj

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,8 @@
139139
5588DFF328C046FF000697D7 /* MockMessageViewControllerEventTracker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5588DFED28C046FF000697D7 /* MockMessageViewControllerEventTracker.swift */; };
140140
5588DFF428C046FF000697D7 /* MockMessageViewControllerEventTracker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5588DFED28C046FF000697D7 /* MockMessageViewControllerEventTracker.swift */; };
141141
55AEA95925F05B7D00B38CED /* InAppMessageProcessorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55AEA95825F05B7D00B38CED /* InAppMessageProcessorTests.swift */; };
142+
55B06F3729D5102800C3B1BC /* BlankApiClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55B06F3629D5102800C3B1BC /* BlankApiClient.swift */; };
143+
55B06F3829D5102800C3B1BC /* BlankApiClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55B06F3629D5102800C3B1BC /* BlankApiClient.swift */; };
142144
55B3119B251015CF0056E4FC /* AuthManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55298B222501A5AB00190BAE /* AuthManager.swift */; };
143145
55B37FC1229620D20042F13A /* CommerceItemTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55B37FC0229620D20042F13A /* CommerceItemTests.swift */; };
144146
55B37FC42297135F0042F13A /* NotificationMetadataTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55B37FC32297135F0042F13A /* NotificationMetadataTests.swift */; };
@@ -539,6 +541,7 @@
539541
5588DFE528C046D7000697D7 /* MockInboxState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockInboxState.swift; sourceTree = "<group>"; };
540542
5588DFED28C046FF000697D7 /* MockMessageViewControllerEventTracker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockMessageViewControllerEventTracker.swift; sourceTree = "<group>"; };
541543
55AEA95825F05B7D00B38CED /* InAppMessageProcessorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InAppMessageProcessorTests.swift; sourceTree = "<group>"; };
544+
55B06F3629D5102800C3B1BC /* BlankApiClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlankApiClient.swift; sourceTree = "<group>"; };
542545
55B37FC0229620D20042F13A /* CommerceItemTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommerceItemTests.swift; sourceTree = "<group>"; };
543546
55B37FC32297135F0042F13A /* NotificationMetadataTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationMetadataTests.swift; sourceTree = "<group>"; };
544547
55B37FC5229752DD0042F13A /* OrderedDictionaryTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrderedDictionaryTests.swift; sourceTree = "<group>"; };
@@ -1283,9 +1286,10 @@
12831286
AC87172421A4E3FF00FEA369 /* Helper Classes */ = {
12841287
isa = PBXGroup;
12851288
children = (
1289+
55B06F3629D5102800C3B1BC /* BlankApiClient.swift */,
12861290
AC2C668320D3370600D46CC9 /* Mocks.swift */,
1287-
00CB31B4210960C4004ACDEC /* TestUtils.swift */,
12881291
AC87172521A4E47E00FEA369 /* TestInAppPayloadGenerator.swift */,
1292+
00CB31B4210960C4004ACDEC /* TestUtils.swift */,
12891293
);
12901294
name = "Helper Classes";
12911295
sourceTree = "<group>";
@@ -2104,6 +2108,7 @@
21042108
5588DF8128C04494000697D7 /* MockUrlDelegate.swift in Sources */,
21052109
5585DF8F22A73390000A32B9 /* IterableInboxViewControllerTests.swift in Sources */,
21062110
55B9F15124B3D33700E8198A /* AuthTests.swift in Sources */,
2111+
55B06F3829D5102800C3B1BC /* BlankApiClient.swift in Sources */,
21072112
5588DFE928C046D7000697D7 /* MockInboxState.swift in Sources */,
21082113
ACED4C01213F50B30055A497 /* LoggingTests.swift in Sources */,
21092114
AC52C5B8272A8B32000DCDCF /* KeychainWrapperTests.swift in Sources */,
@@ -2210,6 +2215,7 @@
22102215
AC738CE82315A5B600B96B2D /* CommonExtensions.swift in Sources */,
22112216
5588DF8828C044BE000697D7 /* MockCustomActionDelegate.swift in Sources */,
22122217
5588DF8028C04494000697D7 /* MockUrlDelegate.swift in Sources */,
2218+
55B06F3729D5102800C3B1BC /* BlankApiClient.swift in Sources */,
22132219
AC738CE72315A54100B96B2D /* CommonMocks.swift in Sources */,
22142220
5588DFE028C046B7000697D7 /* MockLocalStorage.swift in Sources */,
22152221
5588DFA028C04570000697D7 /* MockApplicationStateProvider.swift in Sources */,

tests/unit-tests/BlankApiClient.swift

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
//
2+
// Copyright © 2023 Iterable. All rights reserved.
3+
//
4+
5+
import Foundation
6+
7+
@testable import IterableSDK
8+
9+
class BlankApiClient: ApiClientProtocol {
10+
func register(registerTokenInfo: IterableSDK.RegisterTokenInfo, notificationsEnabled: Bool) -> IterableSDK.Pending<IterableSDK.SendRequestValue, IterableSDK.SendRequestError> {
11+
Pending()
12+
}
13+
14+
func updateUser(_ dataFields: [AnyHashable : Any], mergeNestedObjects: Bool) -> IterableSDK.Pending<IterableSDK.SendRequestValue, IterableSDK.SendRequestError> {
15+
Pending()
16+
}
17+
18+
func updateEmail(newEmail: String) -> IterableSDK.Pending<IterableSDK.SendRequestValue, IterableSDK.SendRequestError> {
19+
Pending()
20+
}
21+
22+
func updateCart(items: [IterableSDK.CommerceItem]) -> IterableSDK.Pending<IterableSDK.SendRequestValue, IterableSDK.SendRequestError> {
23+
Pending()
24+
}
25+
26+
func track(purchase total: NSNumber, items: [IterableSDK.CommerceItem], dataFields: [AnyHashable : Any]?, campaignId: NSNumber?, templateId: NSNumber?) -> IterableSDK.Pending<IterableSDK.SendRequestValue, IterableSDK.SendRequestError> {
27+
Pending()
28+
}
29+
30+
func track(pushOpen campaignId: NSNumber, templateId: NSNumber?, messageId: String, appAlreadyRunning: Bool, dataFields: [AnyHashable : Any]?) -> IterableSDK.Pending<IterableSDK.SendRequestValue, IterableSDK.SendRequestError> {
31+
Pending()
32+
}
33+
34+
func track(event eventName: String, dataFields: [AnyHashable : Any]?) -> IterableSDK.Pending<IterableSDK.SendRequestValue, IterableSDK.SendRequestError> {
35+
Pending()
36+
}
37+
38+
func updateSubscriptions(_ emailListIds: [NSNumber]?, unsubscribedChannelIds: [NSNumber]?, unsubscribedMessageTypeIds: [NSNumber]?, subscribedMessageTypeIds: [NSNumber]?, campaignId: NSNumber?, templateId: NSNumber?) -> IterableSDK.Pending<IterableSDK.SendRequestValue, IterableSDK.SendRequestError> {
39+
Pending()
40+
}
41+
42+
func getInAppMessages(_ count: NSNumber) -> IterableSDK.Pending<IterableSDK.SendRequestValue, IterableSDK.SendRequestError> {
43+
Pending()
44+
}
45+
46+
func track(inAppOpen inAppMessageContext: IterableSDK.InAppMessageContext) -> IterableSDK.Pending<IterableSDK.SendRequestValue, IterableSDK.SendRequestError> {
47+
Pending()
48+
}
49+
50+
func track(inAppClick inAppMessageContext: IterableSDK.InAppMessageContext, clickedUrl: String) -> IterableSDK.Pending<IterableSDK.SendRequestValue, IterableSDK.SendRequestError> {
51+
Pending()
52+
}
53+
54+
func track(inAppClose inAppMessageContext: IterableSDK.InAppMessageContext, source: IterableSDK.InAppCloseSource?, clickedUrl: String?) -> IterableSDK.Pending<IterableSDK.SendRequestValue, IterableSDK.SendRequestError> {
55+
Pending()
56+
}
57+
58+
func track(inAppDelivery inAppMessageContext: IterableSDK.InAppMessageContext) -> IterableSDK.Pending<IterableSDK.SendRequestValue, IterableSDK.SendRequestError> {
59+
Pending()
60+
}
61+
62+
func inAppConsume(messageId: String) -> IterableSDK.Pending<IterableSDK.SendRequestValue, IterableSDK.SendRequestError> {
63+
Pending()
64+
}
65+
66+
func inAppConsume(inAppMessageContext: IterableSDK.InAppMessageContext, source: IterableSDK.InAppDeleteSource?) -> IterableSDK.Pending<IterableSDK.SendRequestValue, IterableSDK.SendRequestError> {
67+
Pending()
68+
}
69+
70+
func track(inboxSession: IterableSDK.IterableInboxSession) -> IterableSDK.Pending<IterableSDK.SendRequestValue, IterableSDK.SendRequestError> {
71+
Pending()
72+
}
73+
74+
func disableDevice(forAllUsers allUsers: Bool, hexToken: String) -> IterableSDK.Pending<IterableSDK.SendRequestValue, IterableSDK.SendRequestError> {
75+
Pending()
76+
}
77+
78+
func getRemoteConfiguration() -> IterableSDK.Pending<IterableSDK.RemoteConfiguration, IterableSDK.SendRequestError> {
79+
Pending()
80+
}
81+
}

tests/unit-tests/InAppHelperTests.swift

Lines changed: 2 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import XCTest
88

99
class InAppHelperTests: XCTestCase {
1010
func testGetInAppMessagesWithNoError() {
11-
class MyApiClient: MockApiClient {
11+
class MyApiClient: BlankApiClient {
1212
override func getInAppMessages(_: NSNumber) -> Pending<SendRequestValue, SendRequestError> {
1313
let payload = TestInAppPayloadGenerator.createPayloadWithUrl(numMessages: 3)
1414
return Fulfill<SendRequestValue, SendRequestError>(value: payload)
@@ -28,7 +28,7 @@ class InAppHelperTests: XCTestCase {
2828
// the second message should be consumed because it has a message id
2929
let expectation1 = expectation(description: "in app consume is called for message with error")
3030

31-
class MyApiClient: MockApiClient {
31+
class MyApiClient: BlankApiClient {
3232
let expectation: XCTestExpectation
3333

3434
init(expectation: XCTestExpectation) {
@@ -92,87 +92,4 @@ class InAppHelperTests: XCTestCase {
9292
XCTFail("expected regular url")
9393
}
9494
}
95-
96-
private class MockApiClient: ApiClientProtocol {
97-
func register(registerTokenInfo _: RegisterTokenInfo,
98-
notificationsEnabled _: Bool) -> Pending<SendRequestValue, SendRequestError> {
99-
fatalError()
100-
}
101-
102-
func updateUser(_: [AnyHashable: Any], mergeNestedObjects _: Bool) -> Pending<SendRequestValue, SendRequestError> {
103-
fatalError()
104-
}
105-
106-
func updateEmail(newEmail _: String) -> Pending<SendRequestValue, SendRequestError> {
107-
fatalError()
108-
}
109-
110-
func updateCart(items: [CommerceItem]) -> Pending<SendRequestValue, SendRequestError> {
111-
fatalError()
112-
}
113-
114-
func track(purchase _: NSNumber, items _: [CommerceItem], dataFields _: [AnyHashable: Any]?, campaignId _: NSNumber?, templateId _: NSNumber?) -> Pending<SendRequestValue, SendRequestError> {
115-
fatalError()
116-
}
117-
118-
func track(pushOpen _: NSNumber, templateId _: NSNumber?, messageId _: String, appAlreadyRunning _: Bool, dataFields _: [AnyHashable: Any]?) -> Pending<SendRequestValue, SendRequestError> {
119-
fatalError()
120-
}
121-
122-
func track(event _: String, dataFields _: [AnyHashable: Any]?) -> Pending<SendRequestValue, SendRequestError> {
123-
fatalError()
124-
}
125-
126-
func updateSubscriptions(_: [NSNumber]?, unsubscribedChannelIds _: [NSNumber]?, unsubscribedMessageTypeIds _: [NSNumber]?, subscribedMessageTypeIds _: [NSNumber]?, campaignId _: NSNumber?, templateId _: NSNumber?) -> Pending<SendRequestValue, SendRequestError> {
127-
fatalError()
128-
}
129-
130-
func getInAppMessages(_: NSNumber) -> Pending<SendRequestValue, SendRequestError> {
131-
fatalError()
132-
}
133-
134-
func track(inAppOpen _: String) -> Pending<SendRequestValue, SendRequestError> {
135-
fatalError()
136-
}
137-
138-
func track(inAppOpen _: InAppMessageContext) -> Pending<SendRequestValue, SendRequestError> {
139-
fatalError()
140-
}
141-
142-
func track(inAppClick _: String, clickedUrl _: String) -> Pending<SendRequestValue, SendRequestError> {
143-
fatalError()
144-
}
145-
146-
func track(inAppClick _: InAppMessageContext, clickedUrl _: String) -> Pending<SendRequestValue, SendRequestError> {
147-
fatalError()
148-
}
149-
150-
func track(inAppClose _: InAppMessageContext, source _: InAppCloseSource?, clickedUrl _: String?) -> Pending<SendRequestValue, SendRequestError> {
151-
fatalError()
152-
}
153-
154-
func track(inAppDelivery _: InAppMessageContext) -> Pending<SendRequestValue, SendRequestError> {
155-
fatalError()
156-
}
157-
158-
func inAppConsume(messageId _: String) -> Pending<SendRequestValue, SendRequestError> {
159-
fatalError()
160-
}
161-
162-
func inAppConsume(inAppMessageContext _: InAppMessageContext, source _: InAppDeleteSource?) -> Pending<SendRequestValue, SendRequestError> {
163-
fatalError()
164-
}
165-
166-
func track(inboxSession _: IterableInboxSession) -> Pending<SendRequestValue, SendRequestError> {
167-
fatalError()
168-
}
169-
170-
func disableDevice(forAllUsers _: Bool, hexToken _: String) -> Pending<SendRequestValue, SendRequestError> {
171-
fatalError()
172-
}
173-
174-
func getRemoteConfiguration() -> Pending<RemoteConfiguration, SendRequestError> {
175-
fatalError()
176-
}
177-
}
17895
}

0 commit comments

Comments
 (0)