|
9 | 9 | import XCTest |
10 | 10 |
|
11 | 11 | // TODO: fix this test class, requires modules which our testbed is not using |
12 | | -final class BranchEventTestSwift : XCTestCase { |
13 | | - |
| 12 | +final class BranchEventTestSwift: XCTestCase { |
14 | 13 | override func setUpWithError() throws { |
15 | 14 | // Put setup code here. This method is called before the invocation of each test method in the class. |
16 | | - |
| 15 | + |
17 | 16 | Branch.getInstance("key_live_foo") |
18 | 17 | } |
19 | 18 |
|
20 | 19 | override func tearDownWithError() throws { |
21 | 20 | // Put teardown code here. This method is called after the invocation of each test method in the class. |
22 | 21 | } |
23 | | - |
24 | | - func testBranchEvent() throws { |
25 | 22 |
|
| 23 | + func testBranchEvent() throws { |
26 | 24 | // Set up the Branch Universal Object -- |
27 | 25 |
|
28 | | - let branchUniversalObject = BranchUniversalObject.init() |
| 26 | + let branchUniversalObject = BranchUniversalObject() |
29 | 27 | 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" |
59 | 57 | 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 = [ |
63 | 61 | "my_img_caption1", |
64 | | - "my_img_caption_2" |
| 62 | + "my_img_caption_2", |
65 | 63 | ] |
66 | | - branchUniversalObject.contentMetadata.customMetadata = [ |
| 64 | + branchUniversalObject.contentMetadata.customMetadata = [ |
67 | 65 | "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", |
69 | 67 | ] |
70 | 68 |
|
71 | 69 | // Set up the event properties -- |
72 | 70 |
|
73 | 71 | 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 = [ |
84 | 82 | "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", |
86 | 84 | ] |
87 | 85 |
|
88 | 86 | 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] |
98 | 100 | event.logEvent() |
99 | 101 | } |
100 | 102 |
|
101 | 103 | func testExampleSyntaxSwift() throws { |
102 | | - let contentItem = BranchUniversalObject.init() |
| 104 | + let contentItem = BranchUniversalObject() |
103 | 105 | contentItem.canonicalIdentifier = "item/123" |
104 | 106 | contentItem.canonicalUrl = "https://branch.io/item/123" |
105 | | - contentItem.contentMetadata.ratingAverage = 5.0; |
| 107 | + contentItem.contentMetadata.ratingAverage = 5.0 |
106 | 108 |
|
107 | 109 | var event = BranchEvent.standardEvent(.spendCredits) |
108 | 110 | event.transactionID = "tx1234" |
109 | 111 | event.eventDescription = "Product Search" |
110 | 112 | event.searchQuery = "user search query terms for product xyz" |
111 | 113 | event.customData["Custom_Event_Property_Key1"] = "Custom_Event_Property_val1" |
112 | | - event.contentItems = [ contentItem ] |
| 114 | + event.contentItems = [contentItem] |
113 | 115 | event.logEvent() |
114 | 116 |
|
115 | 117 | event = BranchEvent.standardEvent(.viewItem) |
116 | | - event.logEvent(); |
| 118 | + event.logEvent() |
117 | 119 |
|
118 | 120 | // Quickly log an event: |
119 | 121 | BranchEvent.standardEvent(.viewItem).logEvent() |
120 | 122 |
|
121 | 123 | // Quickly log an event with content: |
122 | | - let branchUniversalObject = BranchUniversalObject.init() |
| 124 | + let branchUniversalObject = BranchUniversalObject() |
123 | 125 | 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" |
126 | 128 | BranchEvent.standardEvent(.viewItem, withContentItem: branchUniversalObject).logEvent() |
127 | 129 | } |
128 | 130 | } |
0 commit comments