in FBSDKCoreKit/FBSDKCoreKitTests/Internal/AppEvents/AppEventsTests.swift [308:402]
func testLogProductItemNonNil() throws {
appEvents.logProductItem(
id: "F40CEE4E-471E-45DB-8541-1526043F4B21",
availability: .inStock,
condition: .new,
description: "description",
imageLink: "https://www.sample.com",
link: "https://www.sample.com",
title: "title",
priceAmount: 1.0,
currency: "USD",
gtin: "BLUE MOUNTAIN",
mpn: "BLUE MOUNTAIN",
brand: "PHILZ",
parameters: [:]
)
let expectedAEMParameters: [AppEvents.ParameterName: String] = [
.init("fb_product_availability"): "IN_STOCK",
.init("fb_product_brand"): "PHILZ",
.init("fb_product_condition"): "NEW",
.init("fb_product_description"): "description",
.init("fb_product_gtin"): "BLUE MOUNTAIN",
.init("fb_product_image_link"): "https://www.sample.com",
.init("fb_product_item_id"): "F40CEE4E-471E-45DB-8541-1526043F4B21",
.init("fb_product_link"): "https://www.sample.com",
.init("fb_product_mpn"): "BLUE MOUNTAIN",
.init("fb_product_price_amount"): "1.000",
.init("fb_product_price_currency"): "USD",
.init("fb_product_title"): "title",
]
let capturedParameters = try XCTUnwrap(
appEventsStateProvider.state?.capturedEventDictionary
)
XCTAssertEqual(
capturedParameters["_eventName"] as? String,
"fb_mobile_catalog_update"
)
XCTAssertEqual(
capturedParameters["fb_product_availability"] as? String,
"IN_STOCK"
)
XCTAssertEqual(
capturedParameters["fb_product_brand"] as? String,
"PHILZ"
)
XCTAssertEqual(
capturedParameters["fb_product_condition"] as? String,
"NEW"
)
XCTAssertEqual(
capturedParameters["fb_product_description"] as? String,
"description"
)
XCTAssertEqual(
capturedParameters["fb_product_gtin"] as? String,
"BLUE MOUNTAIN"
)
XCTAssertEqual(
capturedParameters["fb_product_image_link"] as? String,
"https://www.sample.com"
)
XCTAssertEqual(
capturedParameters["fb_product_item_id"] as? String,
"F40CEE4E-471E-45DB-8541-1526043F4B21"
)
XCTAssertEqual(
capturedParameters["fb_product_link"] as? String,
"https://www.sample.com"
)
XCTAssertEqual(
capturedParameters["fb_product_mpn"] as? String,
"BLUE MOUNTAIN"
)
XCTAssertEqual(
capturedParameters["fb_product_price_amount"] as? String,
"1.000"
)
XCTAssertEqual(
capturedParameters["fb_product_price_currency"] as? String,
"USD"
)
XCTAssertEqual(
capturedParameters["fb_product_title"] as? String,
"title"
)
validateAEMReporterCalled(
eventName: .init("fb_mobile_catalog_update"),
currency: nil,
value: nil,
parameters: expectedAEMParameters
)
}