Skip to content

Commit 9caff5c

Browse files
committed
[tests] extend NSDictionary for testing
* We will need to know if a particular payload exists in a dictionary to confirm what requests are sending
1 parent 7ab2abe commit 9caff5c

File tree

2 files changed

+36
-0
lines changed

2 files changed

+36
-0
lines changed

iOS_SDK/OneSignalSDK/OneSignal.xcodeproj/project.pbxproj

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@
9090
3C87066E2BDE05B8000D8CD2 /* XCTest.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3C7A39D42B7C18EE0082665E /* XCTest.framework */; platformFilter = ios; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
9191
3C8706702BDE0957000D8CD2 /* MockUserRequests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C87066F2BDE0957000D8CD2 /* MockUserRequests.swift */; };
9292
3C8706722BDEE076000D8CD2 /* MockUserDefines.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C8706712BDEE076000D8CD2 /* MockUserDefines.swift */; };
93+
3C8706762BDEED75000D8CD2 /* NSDictionary+UnitTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C8706752BDEED75000D8CD2 /* NSDictionary+UnitTests.swift */; };
9394
3C8E6DF928A6D89E0031E48A /* OSOperationExecutor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C8E6DF828A6D89E0031E48A /* OSOperationExecutor.swift */; };
9495
3C8E6DFF28AB09AE0031E48A /* OSPropertyOperationExecutor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C8E6DFE28AB09AE0031E48A /* OSPropertyOperationExecutor.swift */; };
9596
3C8E6E0128AC0BA10031E48A /* OSIdentityOperationExecutor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C8E6E0028AC0BA10031E48A /* OSIdentityOperationExecutor.swift */; };
@@ -975,6 +976,7 @@
975976
3C7A39D42B7C18EE0082665E /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Platforms/iPhoneOS.platform/Developer/Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; };
976977
3C87066F2BDE0957000D8CD2 /* MockUserRequests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockUserRequests.swift; sourceTree = "<group>"; };
977978
3C8706712BDEE076000D8CD2 /* MockUserDefines.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockUserDefines.swift; sourceTree = "<group>"; };
979+
3C8706752BDEED75000D8CD2 /* NSDictionary+UnitTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSDictionary+UnitTests.swift"; sourceTree = "<group>"; };
978980
3C8E6DF828A6D89E0031E48A /* OSOperationExecutor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OSOperationExecutor.swift; sourceTree = "<group>"; };
979981
3C8E6DFE28AB09AE0031E48A /* OSPropertyOperationExecutor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OSPropertyOperationExecutor.swift; sourceTree = "<group>"; };
980982
3C8E6E0028AC0BA10031E48A /* OSIdentityOperationExecutor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OSIdentityOperationExecutor.swift; sourceTree = "<group>"; };
@@ -1676,6 +1678,14 @@
16761678
path = Source;
16771679
sourceTree = "<group>";
16781680
};
1681+
3C8706742BDEED53000D8CD2 /* Extensions */ = {
1682+
isa = PBXGroup;
1683+
children = (
1684+
3C8706752BDEED75000D8CD2 /* NSDictionary+UnitTests.swift */,
1685+
);
1686+
path = Extensions;
1687+
sourceTree = "<group>";
1688+
};
16791689
3C9AD6BA2B2284AB00BC1540 /* Executors */ = {
16801690
isa = PBXGroup;
16811691
children = (
@@ -1709,6 +1719,7 @@
17091719
3CC0639B2B6D7A8D002BB07F /* OneSignalCoreMocks */ = {
17101720
isa = PBXGroup;
17111721
children = (
1722+
3C8706742BDEED53000D8CD2 /* Extensions */,
17121723
3CC0639C2B6D7A8D002BB07F /* OneSignalCoreMocks.h */,
17131724
3CC063B32B6D7BA2002BB07F /* OneSignalCoreMocks.swift */,
17141725
3CC063B12B6D7AD8002BB07F /* MockOneSignalClient.swift */,
@@ -3353,6 +3364,7 @@
33533364
buildActionMask = 2147483647;
33543365
files = (
33553366
3CC063B22B6D7AD8002BB07F /* MockOneSignalClient.swift in Sources */,
3367+
3C8706762BDEED75000D8CD2 /* NSDictionary+UnitTests.swift in Sources */,
33563368
3CC063B42B6D7BA2002BB07F /* OneSignalCoreMocks.swift in Sources */,
33573369
);
33583370
runOnlyForDeploymentPostprocessing = 0;
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
extension NSDictionary {
2+
func contains(key: String, value: Any) -> Bool {
3+
guard let dictVal = self[key] else {
4+
return false
5+
}
6+
7+
return equals(dictVal, value)
8+
}
9+
10+
func contains(_ dict: [String: Any]) -> Bool {
11+
for (key, value) in dict {
12+
if !contains(key: key, value: value) {
13+
return false
14+
}
15+
}
16+
return true
17+
}
18+
19+
private func equals(_ x: Any, _ y: Any) -> Bool {
20+
guard x is AnyHashable else { return false }
21+
guard y is AnyHashable else { return false }
22+
return (x as! AnyHashable) == (y as! AnyHashable)
23+
}
24+
}

0 commit comments

Comments
 (0)