in FBAEMKit/FBAEMKitTests/AEMAdvertiserSingleEntryRuleTests.swift [25:79]
func testIsMatchedWithEventParameters() {
var rule = _AEMAdvertiserSingleEntryRule(
with: .contains,
paramKey: "fb_content.title",
linguisticCondition: "hello",
numericalCondition: nil,
arrayCondition: nil
)
XCTAssertTrue(
rule.isMatchedEventParameters(["fb_content": ["title": "helloworld"]]),
"Should expect the event parameter matched with the rule"
)
XCTAssertTrue(
rule.isMatchedEventParameters(["fb_content": ["title": "HelloWorld"]]),
"Should expect the event parameter matched with the rule"
)
XCTAssertFalse(
rule.isMatchedEventParameters(["fb_content": ["tt": "helloworld"]]),
"Should not expect the event parameter matched with the rule"
)
XCTAssertFalse(
rule.isMatchedEventParameters(["fb_content": ["title": 100]]),
"Should not expect the event parameter matched with the rule"
)
XCTAssertFalse(
rule.isMatchedEventParameters(["quantitly": ["title": "helloworld"]]),
"Should not expect the event parameter matched with the rule"
)
rule.setOperator(.notEqual)
XCTAssertTrue(
rule.isMatchedEventParameters(["fb_content": ["title": "helloworld"]]),
"Should expect the event parameter matched with the rule"
)
XCTAssertFalse(
rule.isMatchedEventParameters(["fb_content": ["tt": "helloworld"]]),
"Should not expect the event parameter matched with the rule"
)
rule = _AEMAdvertiserSingleEntryRule(
with: .greaterThan,
paramKey: "fb_content.product1.quantity",
linguisticCondition: nil,
numericalCondition: NSNumber(value: 10),
arrayCondition: nil
)
XCTAssertTrue(
rule.isMatchedEventParameters(["fb_content": ["product1": ["quantity": 100]]]),
"Should expect the event parameter matched with the rule"
)
XCTAssertFalse(
rule.isMatchedEventParameters(["fb_content": ["product1": ["quantity": 1]]]),
"Should expect the event parameter matched with the rule"
)
}