Skip to content

Commit 5d38160

Browse files
committed
SDK-479 add optional developer provided id
1 parent 8e3cd48 commit 5d38160

12 files changed

+69
-0
lines changed

Branch-SDK-Tests/BranchCrossPlatformIDTests.m

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@ - (void)testBuildFromJSON {
3030

3131
BranchCrossPlatformID *cpid = [BranchCrossPlatformID buildFromJSON:json];
3232
XCTAssertNotNil(cpid);
33+
XCTAssertNotNil(cpid.developerID);
34+
XCTAssertNotNil(cpid.crossPlatformID);
35+
XCTAssertNotNil(cpid.pastCrossPlatformIDs);
36+
XCTAssertNotNil(cpid.probabiliticCrossPlatformIDs);
3337
}
3438

3539
- (void)testBuildFromJSON_EmptyId {
@@ -59,6 +63,15 @@ - (void)testBuildFromJSON_EmptyProb {
5963
XCTAssertTrue(cpid.probabiliticCrossPlatformIDs.count == 0);
6064
}
6165

66+
- (void)testBuildFromJSON_EmptyDevId {
67+
NSDictionary *json = [BNCJsonLoader dictionaryFromJSONFileNamed:@"cpid_empty_dev_id"];
68+
XCTAssertNotNil(json);
69+
70+
BranchCrossPlatformID *cpid = [BranchCrossPlatformID buildFromJSON:json];
71+
XCTAssertNotNil(cpid);
72+
XCTAssertTrue([@"" isEqualToString:cpid.developerID]);
73+
}
74+
6275
- (void)testBuildFromJSON_MissingId {
6376
NSDictionary *json = [BNCJsonLoader dictionaryFromJSONFileNamed:@"cpid_missing_id"];
6477
XCTAssertNotNil(json);
@@ -83,5 +96,13 @@ - (void)testBuildFromJSON_MissingProb {
8396
XCTAssertNil(cpid);
8497
}
8598

99+
- (void)testBuildFromJSON_MissingDevId {
100+
NSDictionary *json = [BNCJsonLoader dictionaryFromJSONFileNamed:@"cpid_missing_dev_id"];
101+
XCTAssertNotNil(json);
102+
103+
BranchCrossPlatformID *cpid = [BranchCrossPlatformID buildFromJSON:json];
104+
XCTAssertNotNil(cpid);
105+
XCTAssertNil(cpid.developerID);
106+
}
86107

87108
@end

Branch-SDK/Branch-SDK/BranchCrossPlatformID.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ NS_ASSUME_NONNULL_BEGIN
2323
@interface BranchCrossPlatformID : NSObject
2424

2525
@property (nonatomic, copy, readonly) NSString *crossPlatformID;
26+
@property (nonatomic, copy, readonly) NSString *developerID;
2627
@property (nonatomic, strong, readonly) NSArray<NSString *> *pastCrossPlatformIDs;
2728
@property (nonatomic, strong, readonly) NSArray<BranchProbabilisticCrossPlatformID *> *probabiliticCrossPlatformIDs;
2829

Branch-SDK/Branch-SDK/BranchCrossPlatformID.m

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ + (BranchCrossPlatformID *)buildFromJSON:(NSDictionary *)json {
3737

3838
BranchCrossPlatformID *cpid = [BranchCrossPlatformID new];
3939
cpid->_crossPlatformID = [BNCJSONUtility stringForKey:@"cross_platform_id" json:userData];
40+
cpid->_developerID = [BNCJSONUtility stringForKey:@"developer_identity" json:userData];
4041
cpid->_pastCrossPlatformIDs = [BNCJSONUtility stringArrayForKey:@"past_cross_platform_ids" json:userData];
4142

4243
// parse probability pairs

cannedData/cpid.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
22
"user_data": {
33
"cross_platform_id": "273e4c5da13b978ee2f78f8997abd972959c184aaffb8cad716721a00a08d32b",
4+
"developer_identity": "[email protected]",
45
"past_cross_platform_ids": [
56
"a0bd175fd2c45b1cad81df45d5f1ddb117eadc98e61b85bb49f8f13e88ceff20",
67
"z0bd175fd2c45b1cad81df45d5f1ddb117eadc98e61b85bb49f8f13e88ceff20"

cannedData/cpid_empty_dev_id.json

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"user_data": {
3+
"cross_platform_id": "273e4c5da13b978ee2f78f8997abd972959c184aaffb8cad716721a00a08d32b",
4+
"developer_identity": "",
5+
"past_cross_platform_ids": [
6+
"a0bd175fd2c45b1cad81df45d5f1ddb117eadc98e61b85bb49f8f13e88ceff20",
7+
"z0bd175fd2c45b1cad81df45d5f1ddb117eadc98e61b85bb49f8f13e88ceff20"
8+
],
9+
"prob_cross_platform_ids": [
10+
{
11+
"id": "88ce973fead4b23bca482725a7ac8d6e5198f0d2c70ec3c511472633c645de42",
12+
"probability": 0.95
13+
},
14+
{
15+
"id": "08ce973fead4b23bca482725a7ac8d6e5198f0d2c70ec3c511472633c645de42",
16+
"probability": 0.91
17+
}
18+
]
19+
}
20+
}

cannedData/cpid_empty_id.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
22
"user_data": {
33
"cross_platform_id": "",
4+
"developer_identity": "[email protected]",
45
"past_cross_platform_ids": [
56
"a0bd175fd2c45b1cad81df45d5f1ddb117eadc98e61b85bb49f8f13e88ceff20",
67
"z0bd175fd2c45b1cad81df45d5f1ddb117eadc98e61b85bb49f8f13e88ceff20"

cannedData/cpid_empty_past.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
22
"user_data": {
33
"cross_platform_id": "273e4c5da13b978ee2f78f8997abd972959c184aaffb8cad716721a00a08d32b",
4+
"developer_identity": "[email protected]",
45
"past_cross_platform_ids": [ ],
56
"prob_cross_platform_ids": [
67
{

cannedData/cpid_empty_prob.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
{
22
"user_data": {
3+
"developer_identity": "[email protected]",
34
"cross_platform_id": "273e4c5da13b978ee2f78f8997abd972959c184aaffb8cad716721a00a08d32b",
45
"past_cross_platform_ids": [
56
"a0bd175fd2c45b1cad81df45d5f1ddb117eadc98e61b85bb49f8f13e88ceff20",
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"user_data": {
3+
"cross_platform_id": "273e4c5da13b978ee2f78f8997abd972959c184aaffb8cad716721a00a08d32b",
4+
"past_cross_platform_ids": [
5+
"a0bd175fd2c45b1cad81df45d5f1ddb117eadc98e61b85bb49f8f13e88ceff20",
6+
"z0bd175fd2c45b1cad81df45d5f1ddb117eadc98e61b85bb49f8f13e88ceff20"
7+
],
8+
"prob_cross_platform_ids": [
9+
{
10+
"id": "88ce973fead4b23bca482725a7ac8d6e5198f0d2c70ec3c511472633c645de42",
11+
"probability": 0.95
12+
},
13+
{
14+
"id": "08ce973fead4b23bca482725a7ac8d6e5198f0d2c70ec3c511472633c645de42",
15+
"probability": 0.91
16+
}
17+
]
18+
}
19+
}

cannedData/cpid_missing_id.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
{
22
"user_data": {
3+
"developer_identity": "[email protected]",
34
"past_cross_platform_ids": [
45
"a0bd175fd2c45b1cad81df45d5f1ddb117eadc98e61b85bb49f8f13e88ceff20"
56
],

0 commit comments

Comments
 (0)