Skip to content

Commit bd5fc14

Browse files
committed
test(sdk): remove unsafe force-unwraps in BranchEvent tests
1 parent 3b8c5b5 commit bd5fc14

1 file changed

Lines changed: 70 additions & 68 deletions

File tree

Branch-TestBed/Branch-SDK-Tests/BranchEvent.Test.swift

Lines changed: 70 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -9,120 +9,122 @@
99
import XCTest
1010

1111
// TODO: fix this test class, requires modules which our testbed is not using
12-
final class BranchEventTestSwift : XCTestCase {
13-
12+
final class BranchEventTestSwift: XCTestCase {
1413
override func setUpWithError() throws {
1514
// Put setup code here. This method is called before the invocation of each test method in the class.
16-
15+
1716
Branch.getInstance("key_live_foo")
1817
}
1918

2019
override func tearDownWithError() throws {
2120
// Put teardown code here. This method is called after the invocation of each test method in the class.
2221
}
23-
24-
func testBranchEvent() throws {
2522

23+
func testBranchEvent() throws {
2624
// Set up the Branch Universal Object --
2725

28-
let branchUniversalObject = BranchUniversalObject.init()
26+
let branchUniversalObject = BranchUniversalObject()
2927
branchUniversalObject.canonicalIdentifier = "item/12345"
30-
branchUniversalObject.canonicalUrl = "https://branch.io/deepviews"
31-
branchUniversalObject.title = "My Content Title"
32-
branchUniversalObject.contentDescription = "my_product_description1"
33-
branchUniversalObject.imageUrl = "https://test_img_url"
34-
branchUniversalObject.keywords = [ "My_Keyword1", "My_Keyword2" ]
35-
branchUniversalObject.creationDate = Date.init(timeIntervalSince1970:1501869445321.0/1000.0)
36-
branchUniversalObject.expirationDate = Date.init(timeIntervalSince1970:212123232544.0/1000.0)
37-
branchUniversalObject.locallyIndex = true
38-
branchUniversalObject.publiclyIndex = false
39-
40-
branchUniversalObject.contentMetadata.contentSchema = .commerceProduct
41-
branchUniversalObject.contentMetadata.quantity = 2
42-
branchUniversalObject.contentMetadata.price = 23.20
43-
branchUniversalObject.contentMetadata.currency = .USD
44-
branchUniversalObject.contentMetadata.sku = "1994320302"
45-
branchUniversalObject.contentMetadata.productName = "my_product_name1"
46-
branchUniversalObject.contentMetadata.productBrand = "my_prod_Brand1"
47-
branchUniversalObject.contentMetadata.productCategory = .babyToddler
48-
branchUniversalObject.contentMetadata.productVariant = "3T"
49-
branchUniversalObject.contentMetadata.condition = .fair
50-
51-
branchUniversalObject.contentMetadata.ratingAverage = 5;
52-
branchUniversalObject.contentMetadata.ratingCount = 5;
53-
branchUniversalObject.contentMetadata.ratingMax = 7;
54-
branchUniversalObject.contentMetadata.rating = 6;
55-
branchUniversalObject.contentMetadata.addressStreet = "Street_name1"
56-
branchUniversalObject.contentMetadata.addressCity = "city1"
57-
branchUniversalObject.contentMetadata.addressRegion = "Region1"
58-
branchUniversalObject.contentMetadata.addressCountry = "Country1"
28+
branchUniversalObject.canonicalUrl = "https://branch.io/deepviews"
29+
branchUniversalObject.title = "My Content Title"
30+
branchUniversalObject.contentDescription = "my_product_description1"
31+
branchUniversalObject.imageUrl = "https://test_img_url"
32+
branchUniversalObject.keywords = ["My_Keyword1", "My_Keyword2"]
33+
branchUniversalObject.creationDate = Date(timeIntervalSince1970: 1_501_869_445_321.0 / 1000.0)
34+
branchUniversalObject.expirationDate = Date(timeIntervalSince1970: 212_123_232_544.0 / 1000.0)
35+
branchUniversalObject.locallyIndex = true
36+
branchUniversalObject.publiclyIndex = false
37+
38+
branchUniversalObject.contentMetadata.contentSchema = .commerceProduct
39+
branchUniversalObject.contentMetadata.quantity = 2
40+
branchUniversalObject.contentMetadata.price = 23.20
41+
branchUniversalObject.contentMetadata.currency = .USD
42+
branchUniversalObject.contentMetadata.sku = "1994320302"
43+
branchUniversalObject.contentMetadata.productName = "my_product_name1"
44+
branchUniversalObject.contentMetadata.productBrand = "my_prod_Brand1"
45+
branchUniversalObject.contentMetadata.productCategory = .babyToddler
46+
branchUniversalObject.contentMetadata.productVariant = "3T"
47+
branchUniversalObject.contentMetadata.condition = .fair
48+
49+
branchUniversalObject.contentMetadata.ratingAverage = 5
50+
branchUniversalObject.contentMetadata.ratingCount = 5
51+
branchUniversalObject.contentMetadata.ratingMax = 7
52+
branchUniversalObject.contentMetadata.rating = 6
53+
branchUniversalObject.contentMetadata.addressStreet = "Street_name1"
54+
branchUniversalObject.contentMetadata.addressCity = "city1"
55+
branchUniversalObject.contentMetadata.addressRegion = "Region1"
56+
branchUniversalObject.contentMetadata.addressCountry = "Country1"
5957
branchUniversalObject.contentMetadata.addressPostalCode = "postal_code"
60-
branchUniversalObject.contentMetadata.latitude = 12.07
61-
branchUniversalObject.contentMetadata.longitude = -97.5
62-
branchUniversalObject.contentMetadata.imageCaptions = [
58+
branchUniversalObject.contentMetadata.latitude = 12.07
59+
branchUniversalObject.contentMetadata.longitude = -97.5
60+
branchUniversalObject.contentMetadata.imageCaptions = [
6361
"my_img_caption1",
64-
"my_img_caption_2"
62+
"my_img_caption_2",
6563
]
66-
branchUniversalObject.contentMetadata.customMetadata = [
64+
branchUniversalObject.contentMetadata.customMetadata = [
6765
"Custom_Content_metadata_key1": "Custom_Content_metadata_val1",
68-
"Custom_Content_metadata_key2": "Custom_Content_metadata_val2"
66+
"Custom_Content_metadata_key2": "Custom_Content_metadata_val2",
6967
]
7068

7169
// Set up the event properties --
7270

7371
let event = BranchEvent.standardEvent(.purchase)
74-
event.transactionID = "12344555"
75-
event.currency = .USD;
76-
event.revenue = 1.5
77-
event.shipping = 10.2
78-
event.tax = 12.3
79-
event.coupon = "test_coupon";
80-
event.affiliation = "test_affiliation";
81-
event.eventDescription = "Event _description";
82-
event.searchQuery = "Query"
83-
event.customData = [
72+
event.transactionID = "12344555"
73+
event.currency = .USD
74+
event.revenue = 1.5
75+
event.shipping = 10.2
76+
event.tax = 12.3
77+
event.coupon = "test_coupon"
78+
event.affiliation = "test_affiliation"
79+
event.eventDescription = "Event _description"
80+
event.searchQuery = "Query"
81+
event.customData = [
8482
"Custom_Event_Property_Key1": "Custom_Event_Property_val1",
85-
"Custom_Event_Property_Key2": "Custom_Event_Property_val2"
83+
"Custom_Event_Property_Key2": "Custom_Event_Property_val2",
8684
]
8785

8886
var testDictionary = event.dictionary()
89-
var dictionary = self.mutableDictionaryFromBundleJSON(withKey: "V2EventProperties")
90-
XCTAssert((dictionary?.isEqual(to: testDictionary))!)
91-
92-
testDictionary = branchUniversalObject.dictionary() as! [AnyHashable : Any]
93-
dictionary = self.mutableDictionaryFromBundleJSON(withKey: "BranchUniversalObjectJSON")
94-
dictionary!["$publicly_indexable"] = nil // Remove this value since we don't add false values.
95-
XCTAssert((dictionary?.isEqual(to: testDictionary))!)
96-
97-
event.contentItems = [ branchUniversalObject ]
87+
var dictionary = mutableDictionaryFromBundleJSON(withKey: "V2EventProperties")
88+
if let dictionary = dictionary {
89+
XCTAssert(dictionary.isEqual(to: testDictionary))
90+
}
91+
92+
testDictionary = (branchUniversalObject.dictionary() as? [AnyHashable: Any]) ?? [:]
93+
dictionary = mutableDictionaryFromBundleJSON(withKey: "BranchUniversalObjectJSON")
94+
if let dictionary = dictionary {
95+
dictionary["$publicly_indexable"] = nil // Remove this value since we don't add false values.
96+
XCTAssert(dictionary.isEqual(to: testDictionary))
97+
}
98+
99+
event.contentItems = [branchUniversalObject]
98100
event.logEvent()
99101
}
100102

101103
func testExampleSyntaxSwift() throws {
102-
let contentItem = BranchUniversalObject.init()
104+
let contentItem = BranchUniversalObject()
103105
contentItem.canonicalIdentifier = "item/123"
104106
contentItem.canonicalUrl = "https://branch.io/item/123"
105-
contentItem.contentMetadata.ratingAverage = 5.0;
107+
contentItem.contentMetadata.ratingAverage = 5.0
106108

107109
var event = BranchEvent.standardEvent(.spendCredits)
108110
event.transactionID = "tx1234"
109111
event.eventDescription = "Product Search"
110112
event.searchQuery = "user search query terms for product xyz"
111113
event.customData["Custom_Event_Property_Key1"] = "Custom_Event_Property_val1"
112-
event.contentItems = [ contentItem ]
114+
event.contentItems = [contentItem]
113115
event.logEvent()
114116

115117
event = BranchEvent.standardEvent(.viewItem)
116-
event.logEvent();
118+
event.logEvent()
117119

118120
// Quickly log an event:
119121
BranchEvent.standardEvent(.viewItem).logEvent()
120122

121123
// Quickly log an event with content:
122-
let branchUniversalObject = BranchUniversalObject.init()
124+
let branchUniversalObject = BranchUniversalObject()
123125
branchUniversalObject.canonicalIdentifier = "item/12345"
124-
branchUniversalObject.canonicalUrl = "https://branch.io/deepviews"
125-
branchUniversalObject.title = "My Content Title"
126+
branchUniversalObject.canonicalUrl = "https://branch.io/deepviews"
127+
branchUniversalObject.title = "My Content Title"
126128
BranchEvent.standardEvent(.viewItem, withContentItem: branchUniversalObject).logEvent()
127129
}
128130
}

0 commit comments

Comments
 (0)