Skip to content

Commit 27a15e4

Browse files
authored
Merge pull request #29 from BranchMetrics/SDK-2350-sync-3.4.1
SDK-2350 sync 3.4.1
2 parents 1d16f03 + 73a129d commit 27a15e4

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+878
-2335
lines changed

Branch-TestBed/Branch-SDK-Tests/BNCApplication+BNCTest.h

Lines changed: 0 additions & 20 deletions
This file was deleted.

Branch-TestBed/Branch-SDK-Tests/BNCApplication+BNCTest.m

Lines changed: 0 additions & 11 deletions
This file was deleted.
Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
//
2+
// BNCClassSerializationTests.m
3+
// Branch-SDK-Tests
4+
//
5+
// Created by Ernest Cho on 3/28/24.
6+
// Copyright © 2024 Branch, Inc. All rights reserved.
7+
//
8+
9+
#import <XCTest/XCTest.h>
10+
#import "BranchEvent.h"
11+
#import "BranchOpenRequest.h"
12+
#import "BranchInstallRequest.h"
13+
14+
@interface BranchEvent()
15+
// private BranchEvent methods used to build a BranchEventRequest
16+
- (NSDictionary *)buildEventDictionary;
17+
@end
18+
19+
@interface BranchOpenRequest()
20+
- (NSString *)getActionName;
21+
@end
22+
23+
@interface BNCClassSerializationTests : XCTestCase
24+
25+
@end
26+
27+
// Test serialization of replayable requests
28+
@implementation BNCClassSerializationTests
29+
30+
- (void)setUp {
31+
// Put setup code here. This method is called before the invocation of each test method in the class.
32+
}
33+
34+
- (void)tearDown {
35+
// Put teardown code here. This method is called after the invocation of each test method in the class.
36+
}
37+
38+
// BranchEventRequest is creation is tightly coupled with the BranchEvent class
39+
// In order to test building it, we need to expose some private methods. :(
40+
- (BranchEventRequest *)buildBranchEventRequest {
41+
BranchEvent *event = [BranchEvent standardEvent:BranchStandardEventPurchase];
42+
NSURL *url = [NSURL URLWithString:@"https://api3.branch.io/v2/event/standard"];
43+
NSDictionary *eventDictionary = [event buildEventDictionary];
44+
45+
BranchEventRequest *request = [[BranchEventRequest alloc] initWithServerURL:url eventDictionary:eventDictionary completion:nil];
46+
return request;
47+
}
48+
49+
- (void)testBranchEventRequestArchive {
50+
BranchEventRequest *request = [self buildBranchEventRequest];
51+
52+
// archive the event
53+
NSError *error = nil;
54+
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:request requiringSecureCoding:YES error:&error];
55+
XCTAssertNil(error);
56+
XCTAssertNotNil(data);
57+
58+
// unarchive the event
59+
id object = [NSKeyedUnarchiver unarchivedObjectOfClasses:[NSSet setWithArray:@[BranchEventRequest.class]] fromData:data error:&error];
60+
XCTAssertNil(error);
61+
XCTAssertNotNil(object);
62+
63+
// check object
64+
XCTAssertTrue([object isKindOfClass:BranchEventRequest.class]);
65+
BranchEventRequest *unarchivedRequest = (BranchEventRequest *)object;
66+
67+
XCTAssertTrue([request.serverURL.absoluteString isEqualToString:unarchivedRequest.serverURL.absoluteString]);
68+
XCTAssertTrue(request.eventDictionary.count == unarchivedRequest.eventDictionary.count);
69+
XCTAssertNil(unarchivedRequest.completion);
70+
}
71+
72+
- (void)testBranchOpenRequestArchive {
73+
BranchOpenRequest *request = [[BranchOpenRequest alloc] initWithCallback:nil];
74+
request.urlString = @"https://branch.io";
75+
76+
// archive the event
77+
NSError *error = nil;
78+
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:request requiringSecureCoding:YES error:&error];
79+
XCTAssertNil(error);
80+
XCTAssertNotNil(data);
81+
82+
// unarchive the event
83+
id object = [NSKeyedUnarchiver unarchivedObjectOfClasses:[NSSet setWithArray:@[BranchOpenRequest.class]] fromData:data error:&error];
84+
XCTAssertNil(error);
85+
XCTAssertNotNil(object);
86+
87+
// check object
88+
XCTAssertTrue([object isKindOfClass:BranchOpenRequest.class]);
89+
BranchOpenRequest *unarchivedRequest = (BranchOpenRequest *)object;
90+
91+
XCTAssertTrue([request.urlString isEqualToString:unarchivedRequest.urlString]);
92+
XCTAssertNil(unarchivedRequest.callback);
93+
XCTAssertTrue([@"open" isEqualToString:[unarchivedRequest getActionName]]);
94+
}
95+
96+
- (void)testBranchInstallRequestArchive {
97+
BranchInstallRequest *request = [[BranchInstallRequest alloc] initWithCallback:nil];
98+
request.urlString = @"https://branch.io";
99+
100+
// archive the event
101+
NSError *error = nil;
102+
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:request requiringSecureCoding:YES error:&error];
103+
XCTAssertNil(error);
104+
XCTAssertNotNil(data);
105+
106+
// unarchive the event
107+
id object = [NSKeyedUnarchiver unarchivedObjectOfClasses:[NSSet setWithArray:@[BranchInstallRequest.class]] fromData:data error:&error];
108+
XCTAssertNil(error);
109+
XCTAssertNotNil(object);
110+
111+
// check object
112+
XCTAssertTrue([object isKindOfClass:BranchInstallRequest.class]);
113+
BranchInstallRequest *unarchivedRequest = (BranchInstallRequest *)object;
114+
115+
XCTAssertTrue([request.urlString isEqualToString:unarchivedRequest.urlString]);
116+
XCTAssertNil(unarchivedRequest.callback);
117+
XCTAssertTrue([@"install" isEqualToString:[unarchivedRequest getActionName]]);
118+
}
119+
120+
@end

0 commit comments

Comments
 (0)