Sandor Arpa
06/24/2022, 10:06 AM$.event_details.net_amount=MatchingRuleGroup(rules=[NumberTypeMatcher(numberType=INTEGER)]
The error I get:
BodyMismatch(expected=-8000, actual=-8000, mismatch=Expected -8000 (JsonPrimitive) to be an integer
Matt (pactflow.io / pact-js / pact-go)
Sandor Arpa
06/24/2022, 10:14 AMSandor Arpa
06/24/2022, 10:20 AMau.com.dius.pact.model.v3.messaging.MessagePact([
au.com.dius.pact.model.v3.messaging.Message(a
dispute
lost
event,
[],
PRESENT(
{
"event_type": "DISPUTE_LOST",
"service_id": "service-id",
"resource_type": "dispute",
"event_details": {
"gateway_account_id": "a-gateway-account-id",
"amount": 6500,
"fee": 1500,
"net_amount": -8000
},
"live": true,
"timestamp": "2022-01-19T07:59:20.000000Z",
"resource_external_id": "payment-external-id",
"parent_resource_external_id": "external-id"
}
),
MatchingRules(rules=
{
body=Category(name=body,
matchingRules=
{
$.event_type=MatchingRuleGroup(rules=
[
au.com.dius.pact.model.matchingrules.TypeMatcher@3c3e363
],
ruleLogic=AND),
$.timestamp=MatchingRuleGroup(rules=
[
au.com.dius.pact.model.matchingrules.TypeMatcher@3c3e363
],
ruleLogic=AND),
$.resource_external_id=MatchingRuleGroup(rules=
[
au.com.dius.pact.model.matchingrules.TypeMatcher@3c3e363
],
ruleLogic=AND),
$.live=MatchingRuleGroup(rules=
[
au.com.dius.pact.model.matchingrules.TypeMatcher@3c3e363,
au.com.dius.pact.model.matchingrules.TypeMatcher@3c3e363
],
ruleLogic=AND),
$.resource_type=MatchingRuleGroup(rules=
[
au.com.dius.pact.model.matchingrules.TypeMatcher@3c3e363
],
ruleLogic=AND),
$.parent_resource_external_id=MatchingRuleGroup(rules=
[
au.com.dius.pact.model.matchingrules.TypeMatcher@3c3e363
],
ruleLogic=AND),
$.service_id=MatchingRuleGroup(rules=
[
au.com.dius.pact.model.matchingrules.TypeMatcher@3c3e363
],
ruleLogic=AND),
$.event_details.gateway_account_id=MatchingRuleGroup(rules=
[
au.com.dius.pact.model.matchingrules.TypeMatcher@3c3e363
],
ruleLogic=AND),
$.event_details.amount=MatchingRuleGroup(rules=
[
NumberTypeMatcher(numberType=INTEGER)
],
ruleLogic=AND),
$.event_details.net_amount=MatchingRuleGroup(rules=
[
NumberTypeMatcher(numberType=INTEGER)
],
ruleLogic=AND),
$.event_details.fee=MatchingRuleGroup(rules=
[
NumberTypeMatcher(numberType=INTEGER)
],
ruleLogic=AND)
}
)
}
),
Generators(categories={}),
[
contentType
:
application/json
],
null,
application/json,
null,
application/json)
],
Consumer(name=ledger), Provider(name=connector), [pactSpecification:[version: 3.0.0], pact-jvm:[version: 3.6.15]], null, [
au.com.dius.pact.model.v3.messaging.Message(a dispute lost event, [],
PRESENT({"event_type": "DISPUTE_LOST", "service_id": "service-id", "resource_type": "dispute",
"event_details": {"gateway_account_id":"a-gateway-account-id", "amount": 6500, "fee": 1500,
"net_amount": -8000}, "live": true, "timestamp": "2022-01-19T07:59:20.000000Z",
"resource_external_id": "payment-external-id", "parent_resource_external_id": "external-id"}),
MatchingRules(rules={body=Category(name=body,
matchingRules={$.event_type=MatchingRuleGroup(rules=[au.com.dius.pact.model.matchingrules.TypeMatcher@3c3e363], ruleLogic=AND),
$.timestamp=MatchingRuleGroup(rules=[au.com.dius.pact.model.matchingrules.TypeMatcher@3c3e363], ruleLogic=AND),
$.resource_external_id=MatchingRuleGroup(rules=[au.com.dius.pact.model.matchingrules.TypeMatcher@3c3e363], ruleLogic=AND),
$.live=MatchingRuleGroup(rules=[au.com.dius.pact.model.matchingrules.TypeMatcher@3c3e363, au.com.dius.pact.model.matchingrules.TypeMatcher@3c3e363], ruleLogic=AND),
$.resource_type=MatchingRuleGroup(rules=[au.com.dius.pact.model.matchingrules.TypeMatcher@3c3e363], ruleLogic=AND),
$.parent_resource_external_id=MatchingRuleGroup(rules=[au.com.dius.pact.model.matchingrules.TypeMatcher@3c3e363], ruleLogic=AND),
$.service_id=MatchingRuleGroup(rules=[au.com.dius.pact.model.matchingrules.TypeMatcher@3c3e363], ruleLogic=AND),
$.event_details.gateway_account_id=MatchingRuleGroup(rules=[au.com.dius.pact.model.matchingrules.TypeMatcher@3c3e363], ruleLogic=AND),
$.event_details.amount=MatchingRuleGroup(rules=[NumberTypeMatcher(numberType=INTEGER)], ruleLogic=AND),
$.event_details.net_amount=MatchingRuleGroup(rules=[NumberTypeMatcher(numberType=INTEGER)], ruleLogic=AND),
$.event_details.fee=MatchingRuleGroup(rules=[NumberTypeMatcher(numberType=INTEGER)], ruleLogic=AND)})}), Generators(categories={}), [contentType: application/json], null, application/json, null, application/json)
])
(So sorry, I tried my best to format the one line)Sandor Arpa
06/24/2022, 10:22 AMBodyComparisonResult(mismatches={$.event_details.net_amount=[BodyMismatch(expected=-8000, actual=-8000, mismatch=Expected -8000 (JsonPrimitive) to be an integer, path=$.event_details.net_amount, diff=null)]}, diff=[{, - "event_type": "DISPUTE_LOST",, - "service_id": "service-id",, - "resource_type": "dispute",, + "resource_external_id": "resource-external-id",, "event_details": {, - "amount": 6500,, "gateway_account_id": "a-gateway-account-id",, - "fee": 1500,, - "net_amount": -8000, + "net_amount": -8000,, + "amount": 6500,, + "fee": 1500, },, - "live": true,, "timestamp": "2022-01-19T07:59:20.000000Z",, - "resource_external_id": "payment-external-id",, - "parent_resource_external_id": "external-id", + "parent_resource_external_id": "external-id",, + "service_id": "service-id",, + "live": true,, + "resource_type": "dispute",, + "event_type": "DISPUTE_LOST", }])
Sandor Arpa
06/24/2022, 10:24 AMnet_amount
Matt (pactflow.io / pact-js / pact-go)
Matt (pactflow.io / pact-js / pact-go)
Matt (pactflow.io / pact-js / pact-go)
Matt (pactflow.io / pact-js / pact-go)
Sandor Arpa
06/24/2022, 10:28 AMSandor Arpa
06/24/2022, 10:29 AMMatt (pactflow.io / pact-js / pact-go)
Matt (pactflow.io / pact-js / pact-go)
Matt (pactflow.io / pact-js / pact-go)
Sandor Arpa
06/24/2022, 10:38 AM{
"consumer": {
"name": "ledger"
},
"provider": {
"name": "connector"
},
"messages": [
{
"_id": "c3d524ebb49c46e1e8b100a94d9c880b6a0cc43b",
"description": "a dispute lost event",
"metaData": {
"contentType": "application/json"
},
"contents": {
"event_type": "DISPUTE_LOST",
"service_id": "service-id",
"resource_type": "dispute",
"event_details": {
"amount": 6500,
"gateway_account_id": "a-gateway-account-id",
"fee": 1500,
"net_amount": -8000
},
"live": true,
"timestamp": "2022-01-19T07:59:20.000000Z",
"resource_external_id": "payment-external-id",
"parent_resource_external_id": "external-id"
},
"matchingRules": {
"body": {
"$.event_type": {
"matchers": [
{
"match": "type"
}
],
"combine": "AND"
},
"$.timestamp": {
"matchers": [
{
"match": "type"
}
],
"combine": "AND"
},
"$.resource_external_id": {
"matchers": [
{
"match": "type"
}
],
"combine": "AND"
},
"$.live": {
"matchers": [
{
"match": "type"
},
{
"match": "type"
}
],
"combine": "AND"
},
"$.resource_type": {
"matchers": [
{
"match": "type"
}
],
"combine": "AND"
},
"$.parent_resource_external_id": {
"matchers": [
{
"match": "type"
}
],
"combine": "AND"
},
"$.service_id": {
"matchers": [
{
"match": "type"
}
],
"combine": "AND"
},
"$.event_details.net_amount": {
"matchers": [
{
"match": "integer"
}
],
"combine": "AND"
},
"$.event_details.amount": {
"matchers": [
{
"match": "integer"
}
],
"combine": "AND"
},
"$.event_details.gateway_account_id": {
"matchers": [
{
"match": "type"
}
],
"combine": "AND"
},
"$.event_details.fee": {
"matchers": [
{
"match": "integer"
}
],
"combine": "AND"
}
}
}
}
],
"metadata": {
"pactSpecification": {
"version": "3.0.0"
},
"pact-jvm": {
"version": "3.6.15"
}
}
Sandor Arpa
06/24/2022, 10:38 AMSandor Arpa
06/24/2022, 11:03 AM{
"resource_external_id": "resource-external-id",
"event_details": {
"gateway_account_id": "a-gateway-account-id",
"net_amount": -8000,
"amount": 6500,
"fee": 1500
},
"timestamp": "2022-01-19T07:59:20.000000Z",
"parent_resource_external_id": "external-id",
"service_id": "service-id",
"live": true,
"resource_type": "dispute",
"event_type": "DISPUTE_LOST"
}
Sandor Arpa
06/24/2022, 11:33 AMmatchingRules
- it passes
• with matchingRules
but net_amount
type set to number
- it passes
• with matchingRules
and net_amount
type is integer
- failsSandor Arpa
06/24/2022, 11:39 AMSandor Arpa
06/24/2022, 11:42 AMMatt (pactflow.io / pact-js / pact-go)
Matt (pactflow.io / pact-js / pact-go)
Matt (pactflow.io / pact-js / pact-go)
Matt (pactflow.io / pact-js / pact-go)
Matt (pactflow.io / pact-js / pact-go)
Sandor Arpa
06/24/2022, 1:25 PMat au.com.dius.pact.provider.junit.target.BaseTarget.getAssertionError(BaseTarget.kt:73)
at au.com.dius.pact.provider.junit.target.AmqpTarget.testInteraction(AmqpTarget.kt:50)
at au.com.dius.pact.provider.junit.InteractionRunner$interactionBlock$statement$1.evaluate(InteractionRunner.kt:204)
at au.com.dius.pact.provider.junit.InteractionRunner.run(InteractionRunner.kt:145)
at au.com.dius.pact.provider.junit.PactRunner.runChild(PactRunner.kt:147)
at au.com.dius.pact.provider.junit.PactRunner.runChild(PactRunner.kt:52)
uglyog
Sandor Arpa
06/27/2022, 8:12 AMuglyog
Sandor Arpa
06/27/2022, 9:43 AM