in FBAEMKit/FBAEMKitTests/AEMRuleTests.swift [292:344]
func testRuleMatchWithEventBundle() {
guard let rule = _AEMRule(json: [
Keys.conversionValue: 10,
Keys.priority: 7,
Keys.events: [
[
Keys.eventName: Values.activateApp,
],
[
Keys.eventName: Values.purchase,
Keys.values: [
[
Keys.currency: Values.USD,
Keys.amount: 100,
],
],
],
[
Keys.eventName: Values.testEvent,
],
],
]) else {
return XCTFail("Fail to initalize AEM rule")
}
XCTAssertTrue(
rule.isMatched(
withRecordedEvents: [Values.activateApp, Values.purchase, Values.testEvent],
recordedValues: [Values.purchase: [Values.USD: 1000]]
),
"Should match the expected events and values for the rule"
)
XCTAssertFalse(
rule.isMatched(
withRecordedEvents: [Values.activateApp, Values.purchase, Values.testEvent],
recordedValues: nil
),
"Should not match the unexpected values for the rule"
)
XCTAssertFalse(
rule.isMatched(
withRecordedEvents: [Values.activateApp, Values.purchase],
recordedValues: [Values.purchase: [Values.USD: 1000]]
),
"Should not match the unexpected events for the rule"
)
XCTAssertFalse(
rule.isMatched(
withRecordedEvents: [Values.activateApp, Values.purchase, Values.testEvent],
recordedValues: [Values.purchase: [Values.JPY: 1000]]
),
"Should not match the unexpected values for the rule"
)
}