Xdebug: [Step Debug] Could not connect to debugging client. Tried: 127.0.0.1:9003 (through xdebug.client_host/xdebug.client_port). PHPUnit 9.6.10 by Sebastian Bergmann and contributors. Testing App\Tests\Contract\PactVerifyTest 2023-07-28T14:53:25.765281Z DEBUG ThreadId(01) pact_ffi::verifier: pact_ffi::verifier::pactffi_verifier_add_file_source FFI function invoked 2023-07-28T14:53:25.765338Z DEBUG ThreadId(01) pact_ffi::verifier: pact_ffi::verifier::pactffi_verifier_execute FFI function invoked 2023-07-28T14:53:25.765343Z DEBUG ThreadId(01) pact_ffi::verifier::handle: Pact source to verify = File(/home/tien/Projects/my-family-tree/relationship/tests/Contract/../../../admin/tests/pacts/admin-relationship.json) 2023-07-28T14:53:25.766506Z DEBUG ThreadId(01) pact_plugin_driver::catalogue_manager: Updated catalogue entries: core/content-generator/binary core/content-generator/json core/content-matcher/json core/content-matcher/multipart-form-data core/content-matcher/text core/content-matcher/xml 2023-07-28T14:53:25.766559Z DEBUG ThreadId(01) pact_plugin_driver::catalogue_manager: Updated catalogue entries: core/matcher/v1-equality core/matcher/v2-max-type core/matcher/v2-min-type core/matcher/v2-minmax-type core/matcher/v2-regex core/matcher/v2-type core/matcher/v3-content-type core/matcher/v3-date core/matcher/v3-datetime core/matcher/v3-decimal-type core/matcher/v3-includes core/matcher/v3-integer-type core/matcher/v3-null core/matcher/v3-number-type core/matcher/v3-time core/matcher/v4-array-contains core/matcher/v4-equals-ignore-order core/matcher/v4-max-equals-ignore-order core/matcher/v4-min-equals-ignore-order core/matcher/v4-minmax-equals-ignore-order core/matcher/v4-not-empty core/matcher/v4-semver 2023-07-28T14:53:25.767523Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_verifier: Executing provider states 2023-07-28T14:53:25.767534Z INFO ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_verifier: Running setup provider state change handler 'Users with full information' for 'get list users with full information' 2023-07-28T14:53:25.767970Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_verifier::provider_client: Sending HTTP Request ( method: POST, path: /, query: None, headers: Some({"Content-Type": ["application/json"]}), body: Present(68 bytes, application/json) ) to state change handler 2023-07-28T14:53:25.768112Z DEBUG tokio-runtime-worker hyper::client::connect::dns: resolving host="localhost" 2023-07-28T14:53:25.768216Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: hyper::client::connect::http: connecting to 127.0.0.1:8002 2023-07-28T14:53:25.768311Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: hyper::client::connect::http: connected to 127.0.0.1:8002 2023-07-28T14:53:25.768407Z DEBUG tokio-runtime-worker hyper::proto::h1::io: flushed 223 bytes 2023-07-28T14:53:25.805937Z DEBUG tokio-runtime-worker hyper::proto::h1::io: parsed 2 headers 2023-07-28T14:53:25.805949Z DEBUG tokio-runtime-worker hyper::proto::h1::conn: incoming body is empty 2023-07-28T14:53:25.805974Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: hyper::client::pool: pooling idle connection for ("http", localhost:8002) 2023-07-28T14:53:25.805996Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_verifier::provider_client: State change request: Response { url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(8002), path: "/pact-change-state", query: None, fragment: None }, status: 204, headers: {"cache-control": "no-cache, private", "date": "Fri, 28 Jul 2023 14:53:25 GMT"} } 2023-07-28T14:53:25.806039Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_verifier: State Change: "ProviderState { name: "Users with full information", params: {} }" -> Ok({}) 2023-07-28T14:53:25.806054Z INFO ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_verifier: Running provider verification for 'get list users with full information' 2023-07-28T14:53:25.806068Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_verifier: Verifying a HTTP interaction 2023-07-28T14:53:25.806083Z INFO ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_verifier::provider_client: Sending request to provider at http://localhost:8002/ 2023-07-28T14:53:25.806086Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_verifier::provider_client: Provider details = ProviderInfo { name: "relationship", protocol: "http", host: "localhost", port: Some(8002), path: "/", transports: [ProviderTransport { transport: "http", port: Some(8002), path: Some("/"), scheme: None }] } 2023-07-28T14:53:25.806092Z INFO ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_verifier::provider_client: Sending request HTTP Request ( method: GET, path: /tree, query: None, headers: Some({"Accept": ["*/*"]}), body: Missing ) 2023-07-28T14:53:25.806096Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_verifier::provider_client: body: 2023-07-28T14:53:25.806116Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: hyper::client::pool: reuse idle connection for ("http", localhost:8002) 2023-07-28T14:53:25.806157Z DEBUG tokio-runtime-worker hyper::proto::h1::io: flushed 89 bytes 2023-07-28T14:53:25.849926Z DEBUG tokio-runtime-worker hyper::proto::h1::io: parsed 4 headers 2023-07-28T14:53:25.849934Z DEBUG tokio-runtime-worker hyper::proto::h1::conn: incoming body is content-length (1082 bytes) 2023-07-28T14:53:25.849943Z DEBUG tokio-runtime-worker hyper::proto::h1::conn: incoming body completed 2023-07-28T14:53:25.849955Z DEBUG tokio-runtime-worker hyper::client::pool: pooling idle connection for ("http", localhost:8002) 2023-07-28T14:53:25.849961Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_verifier::provider_client: Received native response: Response { url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(8002), path: "/tree", query: None, fragment: None }, status: 200, headers: {"cache-control": "no-cache, private", "content-type": "application/json", "date": "Fri, 28 Jul 2023 14:53:25 GMT", "content-length": "1082"} } 2023-07-28T14:53:25.849992Z INFO ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_verifier::provider_client: Received response: HTTP Response ( status: 200, headers: Some({"content-type": ["application/json"], "cache-control": ["no-cache", "private"], "content-length": ["1082"], "date": ["Fri, 28 Jul 2023 14:53:25 GMT"]}), body: Present(1082 bytes, application/json) ) 2023-07-28T14:53:25.850000Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_verifier::provider_client: body: [{"data":{"avatar":"https:\/\/via.placeholder.com\/640x480.png\/00bb00?text=enim","birthday":"1993-06-10T19:55:09+00:00","first name":"Abbigail","gender":"F","last name":"Keebler"},"id":"757951c3-e495-3a93-bd59-6bc4aca972d5","rels":{"children":[],"father":"8a6e1274-0ffd-3f53-b0f9-4c5c303f8c4c","mother":"9683fdd6-a1bf-3bea-9d28-774e8ca443db","spouses":[]}},{"data":{"avatar":"https:\/\/via.placeholder.com\/640x480.png\/00bbcc?text=explicabo","birthday":"1971-02-01T21:54:08+00:00","first name":"Harrison","gender":"F","last name":"Kuhn"},"id":"9683fdd6-a1bf-3bea-9d28-774e8ca443db","rels":{"children":["757951c3-e495-3a93-bd59-6bc4aca972d5"],"father":null,"mother":null,"spouses":["8a6e1274-0ffd-3f53-b0f9-4c5c303f8c4c"]}},{"data":{"avatar":"https:\/\/via.placeholder.com\/640x480.png\/007722?text=est","birthday":"1998-01-19T16:07:23+00:00","first name":"Alex","gender":"M","last name":"Yost"},"id":"8a6e1274-0ffd-3f53-b0f9-4c5c303f8c4c","rels":{"children":["757951c3-e495-3a93-bd59-6bc4aca972d5"],"father":null,"mother":null,"spouses":["9683fdd6-a1bf-3bea-9d28-774e8ca443db"]}}] 2023-07-28T14:53:25.850012Z INFO ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching: comparing to expected response: HTTP Response ( status: 200, headers: Some({"Content-Type": ["application/json"]}), body: Present(108 bytes, application/json) ) 2023-07-28T14:53:25.850030Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching: expected content type = 'application/json', actual content type = 'application/json' 2023-07-28T14:53:25.850101Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching: content type header matcher = 'RuleList { rules: [], rule_logic: And, cascaded: false }' 2023-07-28T14:53:25.850109Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_plugin_driver::catalogue_manager: Looking for a content matcher for application/json 2023-07-28T14:53:25.850225Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching: No content matcher defined for content type 'application/json', using core matcher implementation 2023-07-28T14:53:25.850231Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching: Using body matcher for content type 'application/json' 2023-07-28T14:53:25.850245Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::json: compare: Comparing path $ 2023-07-28T14:53:25.850251Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::json: compare_lists: matcher defined for path '$' 2023-07-28T14:53:25.850254Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::matchingrules: slice -> slice: comparing [serde_json::value::Value] to [serde_json::value::Value] using MinType(1) 2023-07-28T14:53:25.850257Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::matchingrules: Comparing '[Object {"id": String("45e6cec9-f5ea-4d2e-b563-001a04b188e3"), "rels": Object {"children": Array [String("11d5e38c-705c-40ba-9839-e276c9958a81")]}}]' to '[Object {"data": Object {"avatar": String("https://via.placeholder.com/640x480.png/00bb00?text=enim"), "birthday": String("1993-06-10T19:55:09+00:00"), "first name": String("Abbigail"), "gender": String("F"), "last name": String("Keebler")}, "id": String("757951c3-e495-3a93-bd59-6bc4aca972d5"), "rels": Object {"children": Array [], "father": String("8a6e1274-0ffd-3f53-b0f9-4c5c303f8c4c"), "mother": String("9683fdd6-a1bf-3bea-9d28-774e8ca443db"), "spouses": Array []}}, Object {"data": Object {"avatar": String("https://via.placeholder.com/640x480.png/00bbcc?text=explicabo"), "birthday": String("1971-02-01T21:54:08+00:00"), "first name": String("Harrison"), "gender": String("F"), "last name": String("Kuhn")}, "id": String("9683fdd6-a1bf-3bea-9d28-774e8ca443db"), "rels": Object {"children": Array [String("757951c3-e495-3a93-bd59-6bc4aca972d5")], "father": Null, "mother": Null, "spouses": Array [String("8a6e1274-0ffd-3f53-b0f9-4c5c303f8c4c")]}}, Object {"data": Object {"avatar": String("https://via.placeholder.com/640x480.png/007722?text=est"), "birthday": String("1998-01-19T16:07:23+00:00"), "first name": String("Alex"), "gender": String("M"), "last name": String("Yost")}, "id": String("8a6e1274-0ffd-3f53-b0f9-4c5c303f8c4c"), "rels": Object {"children": Array [String("757951c3-e495-3a93-bd59-6bc4aca972d5")], "father": Null, "mother": Null, "spouses": Array [String("9683fdd6-a1bf-3bea-9d28-774e8ca443db")]}}]' using MinType(1) -> Ok(()) 2023-07-28T14:53:25.850274Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::matchingrules: Comparing list item 0 with value 'Some(Object {"data": Object {"avatar": String("https://via.placeholder.com/640x480.png/00bb00?text=enim"), "birthday": String("1993-06-10T19:55:09+00:00"), "first name": String("Abbigail"), "gender": String("F"), "last name": String("Keebler")}, "id": String("757951c3-e495-3a93-bd59-6bc4aca972d5"), "rels": Object {"children": Array [], "father": String("8a6e1274-0ffd-3f53-b0f9-4c5c303f8c4c"), "mother": String("9683fdd6-a1bf-3bea-9d28-774e8ca443db"), "spouses": Array []}})' to 'Object {"id": String("45e6cec9-f5ea-4d2e-b563-001a04b188e3"), "rels": Object {"children": Array [String("11d5e38c-705c-40ba-9839-e276c9958a81")]}}' 2023-07-28T14:53:25.850282Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::json: compare: Comparing path $[0] 2023-07-28T14:53:25.850284Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::json: compare_maps: Comparing maps at $[0]: {"id": String("45e6cec9-f5ea-4d2e-b563-001a04b188e3"), "rels": Object {"children": Array [String("11d5e38c-705c-40ba-9839-e276c9958a81")]}} -> {"data": Object {"avatar": String("https://via.placeholder.com/640x480.png/00bb00?text=enim"), "birthday": String("1993-06-10T19:55:09+00:00"), "first name": String("Abbigail"), "gender": String("F"), "last name": String("Keebler")}, "id": String("757951c3-e495-3a93-bd59-6bc4aca972d5"), "rels": Object {"children": Array [], "father": String("8a6e1274-0ffd-3f53-b0f9-4c5c303f8c4c"), "mother": String("9683fdd6-a1bf-3bea-9d28-774e8ca443db"), "spouses": Array []}} 2023-07-28T14:53:25.850297Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::json: compare_maps: Matcher is defined for path $[0] 2023-07-28T14:53:25.850307Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::json: compare: Comparing path $[0].id 2023-07-28T14:53:25.850310Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::json: compare_values: Calling match_values for path $[0].id 2023-07-28T14:53:25.850338Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::json: JSON -> JSON: Comparing '"45e6cec9-f5ea-4d2e-b563-001a04b188e3"' to '"757951c3-e495-3a93-bd59-6bc4aca972d5"' using Regex("[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}") -> Ok(()) 2023-07-28T14:53:25.850342Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::json: compare_values: Comparing 'String("45e6cec9-f5ea-4d2e-b563-001a04b188e3")' to 'String("757951c3-e495-3a93-bd59-6bc4aca972d5")' at path '$[0].id' -> Ok(()) 2023-07-28T14:53:25.850345Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::json: compare: Comparing path $[0].rels 2023-07-28T14:53:25.850347Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::json: compare_maps: Comparing maps at $[0].rels: {"children": Array [String("11d5e38c-705c-40ba-9839-e276c9958a81")]} -> {"children": Array [], "father": String("8a6e1274-0ffd-3f53-b0f9-4c5c303f8c4c"), "mother": String("9683fdd6-a1bf-3bea-9d28-774e8ca443db"), "spouses": Array []} 2023-07-28T14:53:25.850353Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::json: compare_maps: Matcher is defined for path $[0].rels 2023-07-28T14:53:25.850357Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::json: compare: Comparing path $[0].rels.children 2023-07-28T14:53:25.850360Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::json: compare_lists: matcher defined for path '$[0].rels.children' 2023-07-28T14:53:25.850362Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::matchingrules: slice -> slice: comparing [serde_json::value::Value] to [serde_json::value::Value] using MinType(0) 2023-07-28T14:53:25.850364Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::matchingrules: Comparing '[String("11d5e38c-705c-40ba-9839-e276c9958a81")]' to '[]' using MinType(0) -> Ok(()) 2023-07-28T14:53:25.850367Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::matchingrules: Comparing list item 0 with value 'None' to 'String("11d5e38c-705c-40ba-9839-e276c9958a81")' 2023-07-28T14:53:25.850373Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::matchingrules: Comparing list item 1 with value 'Some(Object {"data": Object {"avatar": String("https://via.placeholder.com/640x480.png/00bbcc?text=explicabo"), "birthday": String("1971-02-01T21:54:08+00:00"), "first name": String("Harrison"), "gender": String("F"), "last name": String("Kuhn")}, "id": String("9683fdd6-a1bf-3bea-9d28-774e8ca443db"), "rels": Object {"children": Array [String("757951c3-e495-3a93-bd59-6bc4aca972d5")], "father": Null, "mother": Null, "spouses": Array [String("8a6e1274-0ffd-3f53-b0f9-4c5c303f8c4c")]}})' to 'Object {"id": String("45e6cec9-f5ea-4d2e-b563-001a04b188e3"), "rels": Object {"children": Array [String("11d5e38c-705c-40ba-9839-e276c9958a81")]}}' 2023-07-28T14:53:25.850381Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::json: compare: Comparing path $[1] 2023-07-28T14:53:25.850383Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::json: compare_maps: Comparing maps at $[1]: {"id": String("45e6cec9-f5ea-4d2e-b563-001a04b188e3"), "rels": Object {"children": Array [String("11d5e38c-705c-40ba-9839-e276c9958a81")]}} -> {"data": Object {"avatar": String("https://via.placeholder.com/640x480.png/00bbcc?text=explicabo"), "birthday": String("1971-02-01T21:54:08+00:00"), "first name": String("Harrison"), "gender": String("F"), "last name": String("Kuhn")}, "id": String("9683fdd6-a1bf-3bea-9d28-774e8ca443db"), "rels": Object {"children": Array [String("757951c3-e495-3a93-bd59-6bc4aca972d5")], "father": Null, "mother": Null, "spouses": Array [String("8a6e1274-0ffd-3f53-b0f9-4c5c303f8c4c")]}} 2023-07-28T14:53:25.850391Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::json: compare_maps: Matcher is defined for path $[1] 2023-07-28T14:53:25.850395Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::json: compare: Comparing path $[1].id 2023-07-28T14:53:25.850398Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::json: compare_values: Calling match_values for path $[1].id 2023-07-28T14:53:25.850406Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::json: JSON -> JSON: Comparing '"45e6cec9-f5ea-4d2e-b563-001a04b188e3"' to '"9683fdd6-a1bf-3bea-9d28-774e8ca443db"' using Regex("[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}") -> Ok(()) 2023-07-28T14:53:25.850410Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::json: compare_values: Comparing 'String("45e6cec9-f5ea-4d2e-b563-001a04b188e3")' to 'String("9683fdd6-a1bf-3bea-9d28-774e8ca443db")' at path '$[1].id' -> Ok(()) 2023-07-28T14:53:25.850413Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::json: compare: Comparing path $[1].rels 2023-07-28T14:53:25.850415Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::json: compare_maps: Comparing maps at $[1].rels: {"children": Array [String("11d5e38c-705c-40ba-9839-e276c9958a81")]} -> {"children": Array [String("757951c3-e495-3a93-bd59-6bc4aca972d5")], "father": Null, "mother": Null, "spouses": Array [String("8a6e1274-0ffd-3f53-b0f9-4c5c303f8c4c")]} 2023-07-28T14:53:25.850420Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::json: compare_maps: Matcher is defined for path $[1].rels 2023-07-28T14:53:25.850424Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::json: compare: Comparing path $[1].rels.children 2023-07-28T14:53:25.850427Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::json: compare_lists: matcher defined for path '$[1].rels.children' 2023-07-28T14:53:25.850429Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::matchingrules: slice -> slice: comparing [serde_json::value::Value] to [serde_json::value::Value] using MinType(0) 2023-07-28T14:53:25.850431Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::matchingrules: Comparing '[String("11d5e38c-705c-40ba-9839-e276c9958a81")]' to '[String("757951c3-e495-3a93-bd59-6bc4aca972d5")]' using MinType(0) -> Ok(()) 2023-07-28T14:53:25.850434Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::matchingrules: Comparing list item 0 with value 'Some(String("757951c3-e495-3a93-bd59-6bc4aca972d5"))' to 'String("11d5e38c-705c-40ba-9839-e276c9958a81")' 2023-07-28T14:53:25.850437Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::json: compare: Comparing path $[1].rels.children[0] 2023-07-28T14:53:25.850440Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::json: compare_values: Calling match_values for path $[1].rels.children[0] 2023-07-28T14:53:25.850448Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::json: JSON -> JSON: Comparing '"11d5e38c-705c-40ba-9839-e276c9958a81"' to '"757951c3-e495-3a93-bd59-6bc4aca972d5"' using Regex("[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}") -> Ok(()) 2023-07-28T14:53:25.850451Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::json: compare_values: Comparing 'String("11d5e38c-705c-40ba-9839-e276c9958a81")' to 'String("757951c3-e495-3a93-bd59-6bc4aca972d5")' at path '$[1].rels.children[0]' -> Ok(()) 2023-07-28T14:53:25.850455Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::matchingrules: Comparing list item 2 with value 'Some(Object {"data": Object {"avatar": String("https://via.placeholder.com/640x480.png/007722?text=est"), "birthday": String("1998-01-19T16:07:23+00:00"), "first name": String("Alex"), "gender": String("M"), "last name": String("Yost")}, "id": String("8a6e1274-0ffd-3f53-b0f9-4c5c303f8c4c"), "rels": Object {"children": Array [String("757951c3-e495-3a93-bd59-6bc4aca972d5")], "father": Null, "mother": Null, "spouses": Array [String("9683fdd6-a1bf-3bea-9d28-774e8ca443db")]}})' to 'Object {"id": String("45e6cec9-f5ea-4d2e-b563-001a04b188e3"), "rels": Object {"children": Array [String("11d5e38c-705c-40ba-9839-e276c9958a81")]}}' 2023-07-28T14:53:25.850462Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::json: compare: Comparing path $[2] 2023-07-28T14:53:25.850464Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::json: compare_maps: Comparing maps at $[2]: {"id": String("45e6cec9-f5ea-4d2e-b563-001a04b188e3"), "rels": Object {"children": Array [String("11d5e38c-705c-40ba-9839-e276c9958a81")]}} -> {"data": Object {"avatar": String("https://via.placeholder.com/640x480.png/007722?text=est"), "birthday": String("1998-01-19T16:07:23+00:00"), "first name": String("Alex"), "gender": String("M"), "last name": String("Yost")}, "id": String("8a6e1274-0ffd-3f53-b0f9-4c5c303f8c4c"), "rels": Object {"children": Array [String("757951c3-e495-3a93-bd59-6bc4aca972d5")], "father": Null, "mother": Null, "spouses": Array [String("9683fdd6-a1bf-3bea-9d28-774e8ca443db")]}} 2023-07-28T14:53:25.850471Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::json: compare_maps: Matcher is defined for path $[2] 2023-07-28T14:53:25.850475Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::json: compare: Comparing path $[2].id 2023-07-28T14:53:25.850477Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::json: compare_values: Calling match_values for path $[2].id 2023-07-28T14:53:25.850484Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::json: JSON -> JSON: Comparing '"45e6cec9-f5ea-4d2e-b563-001a04b188e3"' to '"8a6e1274-0ffd-3f53-b0f9-4c5c303f8c4c"' using Regex("[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}") -> Ok(()) 2023-07-28T14:53:25.850487Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::json: compare_values: Comparing 'String("45e6cec9-f5ea-4d2e-b563-001a04b188e3")' to 'String("8a6e1274-0ffd-3f53-b0f9-4c5c303f8c4c")' at path '$[2].id' -> Ok(()) 2023-07-28T14:53:25.850491Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::json: compare: Comparing path $[2].rels 2023-07-28T14:53:25.850493Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::json: compare_maps: Comparing maps at $[2].rels: {"children": Array [String("11d5e38c-705c-40ba-9839-e276c9958a81")]} -> {"children": Array [String("757951c3-e495-3a93-bd59-6bc4aca972d5")], "father": Null, "mother": Null, "spouses": Array [String("9683fdd6-a1bf-3bea-9d28-774e8ca443db")]} 2023-07-28T14:53:25.850497Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::json: compare_maps: Matcher is defined for path $[2].rels 2023-07-28T14:53:25.850502Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::json: compare: Comparing path $[2].rels.children 2023-07-28T14:53:25.850504Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::json: compare_lists: matcher defined for path '$[2].rels.children' 2023-07-28T14:53:25.850506Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::matchingrules: slice -> slice: comparing [serde_json::value::Value] to [serde_json::value::Value] using MinType(0) 2023-07-28T14:53:25.850508Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::matchingrules: Comparing '[String("11d5e38c-705c-40ba-9839-e276c9958a81")]' to '[String("757951c3-e495-3a93-bd59-6bc4aca972d5")]' using MinType(0) -> Ok(()) 2023-07-28T14:53:25.850511Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::matchingrules: Comparing list item 0 with value 'Some(String("757951c3-e495-3a93-bd59-6bc4aca972d5"))' to 'String("11d5e38c-705c-40ba-9839-e276c9958a81")' 2023-07-28T14:53:25.850514Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::json: compare: Comparing path $[2].rels.children[0] 2023-07-28T14:53:25.850517Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::json: compare_values: Calling match_values for path $[2].rels.children[0] 2023-07-28T14:53:25.850524Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::json: JSON -> JSON: Comparing '"11d5e38c-705c-40ba-9839-e276c9958a81"' to '"757951c3-e495-3a93-bd59-6bc4aca972d5"' using Regex("[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}") -> Ok(()) 2023-07-28T14:53:25.850527Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_matching::json: compare_values: Comparing 'String("11d5e38c-705c-40ba-9839-e276c9958a81")' to 'String("757951c3-e495-3a93-bd59-6bc4aca972d5")' at path '$[2].rels.children[0]' -> Ok(()) 2023-07-28T14:53:25.850550Z INFO ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_verifier: Running teardown provider state change handler 'Users with full information' for 'get list users with full information' 2023-07-28T14:53:25.850840Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_verifier::provider_client: Sending HTTP Request ( method: POST, path: /, query: None, headers: Some({"Content-Type": ["application/json"]}), body: Present(71 bytes, application/json) ) to state change handler 2023-07-28T14:53:25.850859Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: hyper::client::pool: reuse idle connection for ("http", localhost:8002) 2023-07-28T14:53:25.850885Z DEBUG tokio-runtime-worker hyper::proto::h1::io: flushed 226 bytes 2023-07-28T14:53:25.857043Z DEBUG tokio-runtime-worker hyper::proto::h1::io: parsed 2 headers 2023-07-28T14:53:25.857049Z DEBUG tokio-runtime-worker hyper::proto::h1::conn: incoming body is empty 2023-07-28T14:53:25.857066Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: hyper::client::pool: pooling idle connection for ("http", localhost:8002) 2023-07-28T14:53:25.857078Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_verifier::provider_client: State change request: Response { url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(8002), path: "/pact-change-state", query: None, fragment: None }, status: 204, headers: {"cache-control": "no-cache, private", "date": "Fri, 28 Jul 2023 14:53:25 GMT"} } 2023-07-28T14:53:25.857107Z DEBUG ThreadId(01) verify_interaction{interaction="get list users with full information"}: pact_verifier: State Change: "ProviderState { name: "Users with full information", params: {} }" -> Ok({}) 2023-07-28T14:53:25.857186Z INFO ThreadId(01) pact_verifier: Not publishing results as publishing for pact source File("/home/tien/Projects/my-family-tree/relationship/tests/Contract/../../../admin/tests/pacts/admin-relationship.json") is not possible or not yet implemented 2023-07-28T14:53:25.857195Z WARN ThreadId(01) pact_matching::metrics: Please note: We are tracking events anonymously to gather important usage statistics like Pact version and operating system. To disable tracking, set the 'PACT_DO_NOT_TRACK' environment variable to 'true'. 2023-07-28T14:53:25.857713Z DEBUG ThreadId(01) pact_matching::metrics: Sending event to GA - {"ds": "client", "ec": "ProviderTest", "aip": "true", "av": "unknown", "cd3": "linux-x86_64", "t": "event", "cd7": "1.0.9", "el": "Pacts verified", "ea": "Completed", "ev": "1", "cid": "39b91284c0df2be71b2b38526e9ed9bb", "tid": "UA-117778936-1", "cd2": "unknown", "aid": "unknown", "an": "unknown", "v": "1", "cd6": "pact_ffi"} 2023-07-28T14:53:25.858003Z DEBUG tokio-runtime-worker hyper::client::connect::dns: resolving host="www.google-analytics.com" 2023-07-28T14:53:25.870138Z DEBUG ThreadId(01) hyper::client::connect::http: connecting to [2404:6800:4005:80e::200e]:443 2023-07-28T14:53:25.930267Z DEBUG ThreadId(01) hyper::client::connect::http: connected to [2404:6800:4005:80e::200e]:443 2023-07-28T14:53:26.001504Z DEBUG ThreadId(01) h2::client: binding client connection 2023-07-28T14:53:26.001517Z DEBUG ThreadId(01) h2::client: client connection bound 2023-07-28T14:53:26.001527Z DEBUG ThreadId(01) h2::codec::framed_write: send frame=Settings { flags: (0x0), enable_push: 0, initial_window_size: 2097152, max_frame_size: 16384 } 2023-07-28T14:53:26.001576Z DEBUG tokio-runtime-worker Connection{peer=Client}: h2::codec::framed_write: send frame=WindowUpdate { stream_id: StreamId(0), size_increment: 5177345 } 2023-07-28T14:53:26.001610Z DEBUG ThreadId(01) hyper::client::pool: pooling idle connection for ("https", www.google-analytics.com) 2023-07-28T14:53:26.001669Z DEBUG tokio-runtime-worker Connection{peer=Client}: h2::codec::framed_write: send frame=Headers { stream_id: StreamId(1), flags: (0x4: END_HEADERS) } 2023-07-28T14:53:26.001693Z DEBUG tokio-runtime-worker Connection{peer=Client}: h2::codec::framed_write: send frame=Data { stream_id: StreamId(1), flags: (0x1: END_STREAM) } 2023-07-28T14:53:26.127943Z DEBUG tokio-runtime-worker Connection{peer=Client}: h2::codec::framed_read: received frame=Settings { flags: (0x0), max_concurrent_streams: 100, initial_window_size: 1048576, max_header_list_size: 65536 } 2023-07-28T14:53:26.127964Z DEBUG tokio-runtime-worker Connection{peer=Client}: h2::codec::framed_write: send frame=Settings { flags: (0x1: ACK) } 2023-07-28T14:53:26.127972Z DEBUG tokio-runtime-worker Connection{peer=Client}: h2::codec::framed_read: received frame=WindowUpdate { stream_id: StreamId(0), size_increment: 983041 } 2023-07-28T14:53:26.129148Z DEBUG tokio-runtime-worker Connection{peer=Client}: h2::codec::framed_read: received frame=Settings { flags: (0x1: ACK) } 2023-07-28T14:53:26.129160Z DEBUG tokio-runtime-worker Connection{peer=Client}: h2::proto::settings: received settings ACK; applying Settings { flags: (0x0), enable_push: 0, initial_window_size: 2097152, max_frame_size: 16384 } 2023-07-28T14:53:26.144017Z DEBUG tokio-runtime-worker Connection{peer=Client}: h2::codec::framed_read: received frame=Headers { stream_id: StreamId(1), flags: (0x4: END_HEADERS) } 2023-07-28T14:53:26.144031Z DEBUG tokio-runtime-worker Connection{peer=Client}: h2::codec::framed_read: received frame=Data { stream_id: StreamId(1) } 2023-07-28T14:53:26.144037Z DEBUG tokio-runtime-worker Connection{peer=Client}: h2::codec::framed_read: received frame=Data { stream_id: StreamId(1), flags: (0x1: END_STREAM) } 2023-07-28T14:53:26.144042Z DEBUG tokio-runtime-worker Connection{peer=Client}: h2::codec::framed_read: received frame=Ping { ack: false, payload: [0, 0, 0, 0, 0, 0, 0, 0] } 2023-07-28T14:53:26.144046Z DEBUG tokio-runtime-worker Connection{peer=Client}: h2::codec::framed_write: send frame=Ping { ack: true, payload: [0, 0, 0, 0, 0, 0, 0, 0] } Verifying a pact between admin and relationship get list users with full information (0s loading, 90ms verification) Given Users with full information returns a response which has status code 200 (OK) includes headers "Content-Type" with value "application/json" (OK) has a matching body (OK) 2023-07-28T14:53:26.144150Z DEBUG tokio-runtime-worker Connection{peer=Client}: h2::codec::framed_write: send frame=GoAway { error_code: NO_ERROR, last_stream_id: StreamId(0) } 2023-07-28T14:53:26.144160Z DEBUG ThreadId(01) pact_plugin_driver::plugin_manager: Shutting down all plugins 2023-07-28T14:53:26.144161Z DEBUG tokio-runtime-worker Connection{peer=Client}: h2::proto::connection: Connection::poll; connection error error=GoAway(b"", NO_ERROR, Library) 2023-07-28T14:53:26.144199Z DEBUG ThreadId(01) pact_ffi::verifier: pact_ffi::verifier::pactffi_verifier_shutdown FFI function invoked . 1 / 1 (100%) Time: 00:02.506, Memory: 10.00 MB OK (1 test, 1 assertion)