func testLogProductItemNonNil()

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
    )
  }