Skip to content

Unable to discern reason for junit provider test failure #370

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
cah-andrew-fitzgerald opened this issue Jan 19, 2017 · 5 comments
Closed

Comments

@cah-andrew-fitzgerald
Copy link

pact-jvm = 3.3.1
pact-spec-version = 3.0.0
initial SO post

unable to debug as failures only happen on jenkins

Test logs:

Error Message

0 - $.body.2 -> Expected name='FXUHHqWrZZcodhHBmeLf' but was missing
Stacktrace

java.lang.AssertionError: 
0 - $.body.2 -> Expected name='FXUHHqWrZZcodhHBmeLf' but was missing
	at au.com.dius.pact.provider.junit.target.HttpTarget.getAssertionError(HttpTarget.java:224)
	at au.com.dius.pact.provider.junit.target.HttpTarget.testInteraction(HttpTarget.java:132)
	at au.com.dius.pact.provider.junit.InteractionRunner$2.evaluate(InteractionRunner.java:180)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
	at au.com.dius.pact.provider.junit.InteractionRunner.run(InteractionRunner.java:140)
	at au.com.dius.pact.provider.junit.PactRunner.runChild(PactRunner.java:102)
	at au.com.dius.pact.provider.junit.PactRunner.runChild(PactRunner.java:52)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:283)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:173)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:128)
	at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
Standard Output

Verifying a pact between idm-client and idm
  Given the 'zero' client exists
  a request to get all clients
Client Id:5139950a-ecc8-40e3-aa31-cf79fe1bb72a
Client Secret:secret
https-jsse-nio-8099-exec-4 18 Jan 2017 15:25:16  INFO c.c.m.c.s.l.MobiusRequestResponseLoggingFilter - POST request start:uri=/mobius/v1/sso/oauth/token
https-jsse-nio-8099-exec-4 18 Jan 2017 15:25:16  INFO c.c.m.c.s.l.MobiusRequestResponseLoggingFilter - Request body: grant_type=client_credentials
https-jsse-nio-8099-exec-4 18 Jan 2017 15:25:16  INFO c.c.m.c.s.l.MobiusRequestResponseLoggingFilter - POST request end:uri=/mobius/v1/sso/oauth/token (200)
https-jsse-nio-8099-exec-10 18 Jan 2017 15:25:16  INFO c.c.m.c.s.l.MobiusRequestResponseLoggingFilter - GET request start:uri=/mobius/v1/idm/client
https-jsse-nio-8099-exec-10 18 Jan 2017 15:25:16  INFO c.c.m.c.s.l.MobiusRequestResponseLoggingFilter - GET request end:uri=/mobius/v1/idm/client (200)
Metadata-reload 18 Jan 2017 15:25:17  INFO c.c.m.i.d.p.CassandraMetadataProvider - fetching metadata for entityId zero
Metadata-reload 18 Jan 2017 15:25:17  INFO o.o.s.m.p.AbstractReloadingMetadataProvider - New metadata succesfully loaded for 'zero'
Metadata-reload 18 Jan 2017 15:25:17  INFO o.o.s.m.p.AbstractReloadingMetadataProvider - Next refresh cycle for metadata provider 'zero' will occur on '2017-01-18T18:25:17.292Z' ('2017-01-18T18:25:17.292Z' local time)
Metadata-reload 18 Jan 2017 15:25:17  INFO c.c.m.i.d.p.CassandraMetadataProvider - fetching metadata for entityId SJRfGeRvgsSKAlC
Metadata-reload 18 Jan 2017 15:25:17  INFO o.o.s.m.p.AbstractReloadingMetadataProvider - New metadata succesfully loaded for 'SJRfGeRvgsSKAlC'
Metadata-reload 18 Jan 2017 15:25:17  INFO o.o.s.m.p.AbstractReloadingMetadataProvider - Next refresh cycle for metadata provider 'SJRfGeRvgsSKAlC' will occur on '2017-01-18T18:25:17.296Z' ('2017-01-18T18:25:17.296Z' local time)
    returns a response which
      has status code 200 (OK)
      includes headers
        "Content-Type" with value "application/json; charset=UTF-8" (OK)
      has a matching body (FAILED)

Failures:

0) a request to get all clients returns a response which has a matching body
      $.body.2 -> Expected name='FXUHHqWrZZcodhHBmeLf' but was missing

      Diff:

      @2
          {
      -        "accessTokenValiditySeconds": 42721462,
      +        "accessTokenValiditySeconds": 2047531805,
              "allowedScopes": [
      
      @4
              "allowedScopes": [
      -            "JnTfAlnHKVSDzoWnUqZv"
      +            "CbQKtUHZKpbXgYM",
      +            "HWQEabGJImGSEkp",
      +            "LaIhYNueeqcDQfm",
      +            "SCxIXIFATJEIvit",
      +            "SSqGVJiwXycnHZO",
      +            "iPpENLhFTbXGpTt",
      +            "qmKXLMsEdaXdyvn",
      +            "uJuBiZBGiToWRYK",
      +            "xEtffZzKEQdXNBv",
      +            "ySWoarvfBHBAOmA"
              ],
      
      @7
              "autoApprove": true,
      +        "clientSecret": "$2a$10$6W5venYTPJvN56SoCVISzOAS9NRgnvkQLWI6XKUTgpHD6Q75d9BRu",
      +        "contactEmail": "jsFDnxjMmKedPsM",
      +        "contactFirstName": "CnubJIiONQshfju",
      +        "contactLastName": "dSzktEWSSSCprRV",
      +        "description": "DDnerbtCJcXJdSJ",
              "grantTypes": [
      
      @8
              "grantTypes": [
      -            "VfWudsTQINERQCnVKvoK"
      +            "AZyZGSnloQEkXrZ",
      +            "BNgxGvVgawObCVA",
      +            "BjCRlTHkIrknhYY",
      +            "LHMMMDnYcvuLBBr",
      +            "OIrutyPdvoSFBEK",
      +            "QvCZUUeKLSXfSwP",
      +            "WtQmSJdnWutzEFu",
      +            "tzKRkWouoUtnZYH",
      +            "vYhaZOcFlrIscRU",
      +            "wktIDvVUQJUehFR"
              ],
      
      @10
              ],
      -        "id": "c53927c3-0d1c-48a8-8f0a-7560be89daa5",
      -        "name": "FXUHHqWrZZcodhHBmeLf",
      +        "id": "9daaad0a-8a2d-4e73-a963-fa1625cec110",
      +        "name": "name",
      +        "privileges": [
      +            "CHECK_TOKEN",
      +            "MANAGE_CLIENT",
      +            "MANAGE_IDP",
      +            "MANAGE_USER"
      +        ],
              "redirectUris": [
      
      @13
              "redirectUris": [
      -            "vWxSTjgJQvwUtwphDGcn"
      +            "JSdQvUdokPTlodl",
      +            "JpEMvpcIWescPZR",
      +            "VeqlKVXnbCPyjZK",
      +            "ZgVqKaCOgYZtlZj",
      +            "hMFJKfVwkgapsNe",
      +            "hQxZXAecosoXsif",
      +            "kFGJHlrcwnWORzL",
      +            "nQdyNhxIKLmpZHk",
      +            "oHUgeTNOYNQdkGo",
      +            "wnrIZYwfVHPoLcU"
              ],
      
      @15
              ],
      -        "refreshTokenValiditySeconds": 12393550,
      +        "refreshTokenValiditySeconds": 165274901,
              "secretRequired": true
      
      @17
              "secretRequired": true
      +    },
      +    {
      +        "accessTokenValiditySeconds": 1725247274,
      +        "allowedScopes": [
      +            "DniUNWUNDSoDBmh",
      +            "PCKoRyrTHZkdjjQ",
      +            "TDGLJwfbUeziRgS",
      +            "WLaCWUpQQjadDze",
      +            "bIKJzzITpzkTKKe",
      +            "kBnuzmYirIFSDHb",
      +            "kllRvIwJInmGGDo",
      +            "sAGFquVxtUfsHkv",
      +            "vwHipQUTSpvwihE",
      +            "wtOOOSLDvdPUbpe"
      +        ],
      +        "autoApprove": false,
      +        "clientSecret": "$2a$10$JwbbZXMdlUcA1MLFuuVhIuGoNuWonOmBsS/rwU5MsehYhuYNATYlK",
      +        "contactEmail": "LwjNwwogIBxMbSj",
      +        "contactFirstName": "oZxnuPyIDpWMlif",
      +        "contactLastName": "SeJEOGhoEjVaEuk",
      +        "description": "neeqtcvQabZRfXP",
      +        "grantTypes": [
      +            "GcpIbfNNisoSNOz",
      +            "JjPlzVVjfDyupEg",
      +            "KWRiUwKAMugbfPu",
      +            "KgcbziOdPPRStin",
      +            "MgDYVCVVAVZjVCv",
      +            "RgVWYlRkucVyeYj",
      +            "WlPOmAIlNKbiLLh",
      +            "ngKPorkQQeZCDCh",
      +            "pXpajHeVaiBgnRy",
      +            "vzEJhYIqrlaVCSQ"
      +        ],
      +        "id": "ec9aa5b3-ac7c-45b1-b953-cedb81e5edc1",
      +        "name": "kttnlBIPLEnuBiZ",
      +        "privileges": [
      +            "CHECK_TOKEN",
      +            "MANAGE_CLIENT",
      +            "MANAGE_IDP",
      +            "MANAGE_USER"
      +        ],
      +        "redirectUris": [
      +            "BaRiVtqyuNMZHPN",
      +            "FwewjwPbonGsHGT",
      +            "NuJLdsXCsPHpohJ",
      +            "aNgUAnBjTypdOSR",
      +            "eBbFcnqrkiOrmFS",
      +            "eDuAcRFfkLHWLDQ",
      +            "gCsvfvXcBMxmweb",
      +            "iWNmdhYHPugfbuK",
      +            "wNIkiYFWKrEAkWx",
      +            "zzSSwkPFznXoTyS"
      +        ],
      +        "refreshTokenValiditySeconds": 1933494902,
      +        "secretRequired": true
      +    },
      +    {
      +        "accessTokenValiditySeconds": 0,
      +        "allowedScopes": [
      +            
      +        ],
      +        "autoApprove": false,
      +        "clientSecret": null,
      +        "grantTypes": [
      +            
      +        ],
      +        "id": "29b16b57-8212-4aeb-a180-b021399c0012",
      +        "privileges": [
      +            
      +        ],
      +        "redirectUris": [
      +            
      +        ],
      +        "refreshTokenValiditySeconds": 0,
      +        "secretRequired": false
      +    },
      +    {
      +        "accessTokenValiditySeconds": 600000,
      +        "allowedScopes": [
      +            "Authentication"
      +        ],
      +        "autoApprove": false,
      +        "clientSecret": "$2a$10$tMneESmkGPUwIQlzN3C4J.wcKrSmIq2uzsy96iKrUSOt42zNUZmNi",
      +        "grantTypes": [
      +            "client_credentials",
      +            "password"
      +        ],
      +        "id": "5139950a-ecc8-40e3-aa31-cf79fe1bb72a",
      +        "name": "Bootstrapped IDM Super Admin Client",
      +        "privileges": [
      +            "CHECK_TOKEN",
      +            "MANAGE_CLIENT",
      +            "MANAGE_IDP",
      +            "MANAGE_USER"
      +        ],
      +        "redirectUris": [
      +            
      +        ],
      +        "refreshTokenValiditySeconds": 0,
      +        "secretRequired": false
      +    },
      +    {
      +        "accessTokenValiditySeconds": 1809947019,
      +        "allowedScopes": [
      +            "HTjyKASlWYCBEUL",
      +            "LuRbWINFCYYfqmn",
      +            "NISLZYXBQfuvomi",
      +            "aYHzRfYrLXanoHS",
      +            "evdIxHlemfODOKz",
      +            "iyDRsGFHXDfFBAV",
      +            "jFEaMGEnlgFXsoa",
      +            "mRAAkSlNbWWTqsG",
      +            "pDaAdfKPCVfbyaw",
      +            "vrdvokfjVROZPan"
      +        ],
      +        "autoApprove": false,
      +        "clientSecret": "$2a$10$b7MNfMwh0BGVubuKYlDbV.5oCqJoeQYG2hSo9C4DihXOeb4CXqrsG",
      +        "contactEmail": "VaMZTtqRqBvOvBl",
      +        "contactFirstName": "ffHtrxjHpzIAihS",
      +        "contactLastName": "VcaCBwtCeZCfsxb",
      +        "description": "KQlCEHKgKGObNhi",
      +        "grantTypes": [
      +            "GKZMjJbGxVvKdTf",
      +            "HTBnDSaTnuDootw",
      +            "IOgFyTrlNyQcYUa",
      +            "SNqWULQeMVLrPjN",
      +            "ZvEUOgyqMOeoSjW",
      +            "bBzeQzHXRvcUBPu",
      +            "bkCouMGlhCaDhgb",
      +            "iwUvuqgFKLfcDVh",
      +            "juyotxqlMIGwiys",
      +            "sgyYQrnkPRVclVJ"
      +        ],
      +        "id": "abe5645a-b303-4dd7-bc4c-5a3599e4ce72",
      +        "name": "uHZUxyJqDAyNptF",
      +        "privileges": [
      +            "CHECK_TOKEN",
      +            "MANAGE_CLIENT",
      +            "MANAGE_IDP",
      +            "MANAGE_USER"
      +        ],
      +        "redirectUris": [
      +            "GoAuyKzABYDTUqg",
      +            "HTwMUvPcQOYPkUT",
      +            "MJHipgdmPTxfUuj",
      +            "NLulSzXmjnCjifO",
      +            "VSlGAUERZQztLyT",
      +            "VwnhszQuaLEkQon",
      +            "bQJsqttVsvaHrtX",
      +            "cjMrHahYtcbTjkG",
      +            "oTZYTlcMuFlAnjY",
      +            "vnlzNRecpUiGAxX"
      +        ],
      +        "refreshTokenValiditySeconds": 1013769012,
      +        "secretRequired": false
      +    },
      +    {
      +        "accessTokenValiditySeconds": 2124378825,
      +        "allowedScopes": [
      +            "IYULWZOlSmyOuQO",
      +            "JmpNgONMIZWZQLp",
      +            "RmIgJyXmUUzIspF",
      +            "bogyoaCJjLeRUtC",
      +            "iPZCIbXkTgsRtes",
      +            "kihJzBSfXirxlxq",
      +            "pZuBJSjRtJYbVPX",
      +            "qNFJwRqvzogwQjb",
      +            "rXSYjJOocszzdTJ",
      +            "sUGVsVEAJADDenq"
      +        ],
      +        "autoApprove": false,
      +        "clientSecret": "$2a$10$b7UeYkUlzJtMQolYT0EfUuFvc0oxkWDIZK47WgIZl5WIs0fHe06jW",
      +        "contactEmail": "zfKuMYNkolWqAPK",
      +        "contactFirstName": "lgNQHrcREakjEDA",
      +        "contactLastName": "DILHlcDnOYXAxVh",
      +        "description": "fXFARwCruCXTNuE",
      +        "grantTypes": [
      +            "IUnJVmlnTYKcaJS",
      +            "SvKDbcqJkhyIhVX",
      +            "WDmeMkrVLQVxoUU",
      +            "apelxyjDDWXuCag",
      +            "dXivSOKqrFpaNAT",
      +            "mSJhWHXtVTkgqZS",
      +            "oQGyIGTwqCuirCf",
      +            "uTFTiJoIkarfpSA",
      +            "wQLNARxYjZmKDvE",
      +            "wuVbAPumkrvOlRv"
      +        ],
      +        "id": "00000000-0000-0000-0000-000000000000",
      +        "name": "EAtjINlTAReePqR",
      +        "privileges": [
      +            "CHECK_TOKEN",
      +            "MANAGE_CLIENT",
      +            "MANAGE_IDP",
      +            "MANAGE_USER"
      +        ],
      +        "redirectUris": [
      +            "BNsvZRCMNyrtJaD",
      +            "FQXBHSNdEUimaNJ",
      +            "GWsniUCqOoNSPhn",
      +            "IbBIvORNmaAFOFT",
      +            "VPLtuVKbdigjZfq",
      +            "VUDiKjFEYBHhiqC",
      +            "aCbOaeXgMEapzyi",
      +            "cOAMxaavBWeBbvd",
      +            "rCRustlayuLmXnf",
      +            "zPtYmXtjrNdJoRw"
      +        ],
      +        "refreshTokenValiditySeconds": 419507870,
      +        "secretRequired": true
      +    },
      +    {
      +        "accessTokenValiditySeconds": 754238008,
      +        "allowedScopes": [
      +            "AGxOUOfBzAibEnX",
      +            "DnXPgPkHcXDJSNx",
      +            "GDebGtpNFedFMPm",
      +            "KjpNccNvtfIRMqx",
      +            "OrnXWhKCFwFDVCf",
      +            "OtVrUtgbUMhnHQd",
      +            "aErDlnPkIolnFvG",
      +            "bwWHWGNsHlSZDrG",
      +            "obStsABdnutCNuT",
      +            "rVZzTsgYuSqsEym"
      +        ],
      +        "autoApprove": true,
      +        "clientSecret": "$2a$10$m7Wy0xvy7Cw2uF28XcWUmOpFMp4iYFZTYQexd5r3FKTX2Vx8RaeGu",
      +        "contactEmail": "WcYFsLhijGBPjQY",
      +        "contactFirstName": "MCeAUJhvcnmEXko",
      +        "contactLastName": "jALQvTAoYrFAvCI",
      +        "description": "JSxfCILtMXellpE",
      +        "grantTypes": [
      +            "AUPLnUKJczywqLT",
      +            "MvgXIcoULCbArnF",
      +            "SUTZcNpCNUryhPk",
      +            "SZzixGZwOOwsdEm",
      +            "TUwlKSJzOQJjFtE",
      +            "UBYbkDYVWUqXtgV",
      +            "UMvtOwECDAtRaKe",
      +            "bvVjUGMHZuOjFvH",
      +            "lRpGIaMPiVPcQaX",
      +            "skvQACLVEhUWetK"
      +        ],
      +        "id": "25eeb46b-0332-4954-923c-6cacfab61e5e",
      +        "name": "cztobBVnSsdhUos",
      +        "privileges": [
      +            "CHECK_TOKEN",
      +            "MANAGE_CLIENT",
      +            "MANAGE_IDP",
      +            "MANAGE_USER"
      +        ],
      +        "redirectUris": [
      +            "CoXWoFdJnvHsgEs",
      +            "LMyTEdLbEJGQjtO",
      +            "WRLrPPjoXxQhrnM",
      +            "fITktVzrQkgdBPx",
      +            "hgoSWAfeVATseYr",
      +            "pOEcevjMzzmFmaD",
      +            "qsCHHuCOZdZhkMh",
      +            "uKlmmfIzLBTmbLl",
      +            "wshXTzgJHAakLno",
      +            "ztSBSqnMvszorzj"
      +        ],
      +        "refreshTokenValiditySeconds": 2122765226,
      +        "secretRequired": false
      +    },
      +    {
      +        "accessTokenValiditySeconds": 112231087,
      +        "allowedScopes": [
      +            "JGMMpPRhdYuWXWM",
      +            "SqgATtdjuWzdIVM",
      +            "WdmJIkwNtFkpvxv",
      +            "cMKgMHLGHuqqebY",
      +            "iivGvqdAzwWBFgG",
      +            "lSYnBbQLOzEWUpj",
      +            "pPYAdhBUCTjGQMH",
      +            "psAmNOXdhwZxnJk",
      +            "sfinhnHbsSGRFOZ",
      +            "uHqjAJxKEWirNKZ"
      +        ],
      +        "autoApprove": false,
      +        "clientSecret": "$2a$10$bVZCH/ltnO2yuJLOIJnxoOJtDIKg/mDPT1ntIfUiD.mD3tS8GD/9.",
      +        "contactEmail": "BTzlOzxviOBjCVj",
      +        "contactFirstName": "weBRrYFUYrqXvEv",
      +        "contactLastName": "BEMvDYebZtccAUc",
      +        "description": "zVRyZGuFIxnBgJx",
      +        "grantTypes": [
      +            "FKkchfLYgGfpchA",
      +            "KAPCTXcUxFXwQOG",
      +            "KecdGwJMtQHpKAo",
      +            "PkyfhJsWTIThsiZ",
      +            "ScNivDlmQzDFXvx",
      +            "SckEYPiRzhuHeUo",
      +            "WCpeXjwnikZYRow",
      +            "ZzFcvrbMYryaIFn",
      +            "tKIHJZtIJYZhgCt",
      +            "thNSNRBUpckNMmn"
      +        ],
      +        "id": "4978ec48-abfb-47aa-854f-0e6410230c82",
      +        "name": "VJUpcLuNAFKgchn",
      +        "privileges": [
      +            "CHECK_TOKEN",
      +            "MANAGE_CLIENT",
      +            "MANAGE_IDP",
      +            "MANAGE_USER"
      +        ],
      +        "redirectUris": [
      +            "DIpcrCYZDvdYePH",
      +            "HkudJidqIdMkftV",
      +            "ZlkEKMJRhgwvYdJ",
      +            "acSmGqIydkSwxsO",
      +            "gPZTJxjtKZsbqjR",
      +            "geUrWuiXpMfamxo",
      +            "rxrFHgktNHVaRsx",
      +            "sKhhRKcdTqhOmiz",
      +            "vVjkirLiAjfqAXj",
      +            "wPvvwMlZjkExsZG"
      +        ],
      +        "refreshTokenValiditySeconds": 52955175,
      +        "secretRequired": true
          }

relevant interaction:

{
        "description": "a request to get all clients",
        "request": {
            "method": "GET",
            "path": "/some/url/client"
        },
        "response": {
            "status": 200,
            "headers": {
                "Content-Type": "application/json; charset=UTF-8"
            },
            "body": [
                {
                    "accessTokenValiditySeconds": 42721462,
                    "allowedScopes": [
                        "JnTfAlnHKVSDzoWnUqZv"
                    ],
                    "autoApprove": true,
                    "grantTypes": [
                        "VfWudsTQINERQCnVKvoK"
                    ],
                    "id": "c53927c3-0d1c-48a8-8f0a-7560be89daa5",
                    "name": "FXUHHqWrZZcodhHBmeLf",
                    "redirectUris": [
                        "vWxSTjgJQvwUtwphDGcn"
                    ],
                    "refreshTokenValiditySeconds": 12393550,
                    "secretRequired": true
                }
            ],
            "matchingRules": {
                "$.body[*].allowedScopes[*]": {
                    "match": "type"
                },
                "$.body[*].redirectUris[*]": {
                    "match": "type"
                },
                "$.body[*].grantTypes[*]": {
                    "match": "type"
                },
                "$.body[*].redirectUris": {
                    "min": 0,
                    "match": "type"
                },
                "$.body[*].autoApprove": {
                    "match": "type"
                },
                "$.body": {
                    "min": 1,
                    "match": "type"
                },
                "$.body[*].id": {
                    "regex": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"
                },
                "$.body[*].accessTokenValiditySeconds": {
                    "match": "integer"
                },
                "$.body[*].secretRequired": {
                    "match": "type"
                },
                "$.body[*].refreshTokenValiditySeconds": {
                    "match": "integer"
                },
                "$.body[*].name": {
                    "match": "type"
                },
                "$.body[*].allowedScopes": {
                    "min": 0,
                    "match": "type"
                },
                "$.body[*].grantTypes": {
                    "min": 0,
                    "match": "type"
                }
            }
        },
        "providerState": "the 'zero' client exists"
    },

generating fragment:

           builder
            .given("the 'zero' client exists")
            .uponReceiving("a request to get all clients")
            .path("/some/url/client")
            .method("GET")
            .willRespondWith()
            .status(200)
            .body(PactDslJsonArray
                    .arrayMinLike(1)
                    .uuid("id")
                    .booleanType("secretRequired")
                    .eachLike("allowedScopes", stringType())
                    .eachLike("grantTypes", stringType())
                    .eachLike("redirectUris", stringType())
                    .integerType("accessTokenValiditySeconds")
                    .integerType("refreshTokenValiditySeconds")
                    .booleanType("autoApprove")
                    .stringType("name")
                    .closeObject())
            .toFragment();
@uglyog
Copy link
Member

uglyog commented Jan 26, 2017

Thanks for all the information, I was able to reproduce it with a local project.

@uglyog uglyog added the bug Indicates an unexpected problem or unintended behavior label Jan 26, 2017
@uglyog
Copy link
Member

uglyog commented Jan 26, 2017

Found the issue. $.body.2 is referring to the third item in the list (it is zero based), which does not have a name field.

{
    "accessTokenValiditySeconds": 0,
    "allowedScopes": [
    ],
    "autoApprove": false,
    "clientSecret": null,
    "grantTypes": [
    ],
    "id": "29b16b57-8212-4aeb-a180-b021399c0012",
    "privileges": [
    ],
    "redirectUris": [
    ],
    "refreshTokenValiditySeconds": 0,
    "secretRequired": false
  }

If the name is optional, you can leave it out of the consumer test.

@uglyog uglyog removed the bug Indicates an unexpected problem or unintended behavior label Jan 26, 2017
@fitzoh
Copy link
Contributor

fitzoh commented Jan 26, 2017

So it sounds like it's an issue in how the error diff is displayed?

@uglyog
Copy link
Member

uglyog commented Jan 26, 2017

Yes, I think the output is really hard to see what was wrong and needs to be improved.

@uglyog
Copy link
Member

uglyog commented Jan 26, 2017

Improved it a bit by showing more localised diffs for missing elements:

  $.body.2 -> Expected name='FXUHHqWrZZcodhHBmeLf' but was missing

    Diff:

        "redirectUris": [
    -        "vWxSTjgJQvwUtwphDGcn"
    +        
        ],
    -    "secretRequired": true,
    -    "name": "FXUHHqWrZZcodhHBmeLf",
    -    "accessTokenValiditySeconds": 42721462,
    -    "id": "c53927c3-0d1c-48a8-8f0a-7560be89daa5",
    +    "secretRequired": false,
    +    "accessTokenValiditySeconds": 0,
    +    "privileges": [
    +        
    +    ],
    +    "id": "29b16b57-8212-4aeb-a180-b021399c0012",
    +    "clientSecret": null,
        "allowedScopes": [
    -        "JnTfAlnHKVSDzoWnUqZv"
    +        
        ],
    -    "autoApprove": true,
    -    "refreshTokenValiditySeconds": 12393550,
    +    "autoApprove": false,
    +    "refreshTokenValiditySeconds": 0,
        "grantTypes": [
    -        "VfWudsTQINERQCnVKvoK"
    +        
        ]

uglyog pushed a commit that referenced this issue Aug 14, 2017
Conflicts:
	pact-jvm-matchers/build.gradle
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants