diff --git a/VCL/src/test/java/io/velocitycareerlabs/infrastructure/resources/valid/CredentialManifestMocks.kt b/VCL/src/test/java/io/velocitycareerlabs/infrastructure/resources/valid/CredentialManifestMocks.kt index f87d231..0cb4a8b 100644 --- a/VCL/src/test/java/io/velocitycareerlabs/infrastructure/resources/valid/CredentialManifestMocks.kt +++ b/VCL/src/test/java/io/velocitycareerlabs/infrastructure/resources/valid/CredentialManifestMocks.kt @@ -40,5 +40,11 @@ class CredentialManifestMocks { const val JwtCredentialManifestFromNotaryIssuer = "eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NksiLCJraWQiOiJkaWQ6aW9uOkVpQ1ZEVERRV25YTTcxekJvazdTTWozZ0I5SkozdXRXTkJlY2pXcEQycDdPU0EjZXhjaGFuZ2Uta2V5LTEifQ.eyJleGNoYW5nZV9pZCI6IjY0YWYxNDVmYWQ3NDBhMGI2ODVhMmE1NiIsIm1ldGFkYXRhIjp7ImNsaWVudF9uYW1lIjoiTm90YXJ5IElzc3VlciIsImxvZ29fdXJpIjoiaHR0cHM6Ly9kb2NzLnZlbG9jaXR5Y2FyZWVybGFicy5pby9Mb2dvcy9DQS1ib2FyZC5wbmciLCJ0b3NfdXJpIjoiaHR0cHM6Ly93d3cudmVsb2NpdHlleHBlcmllbmNlY2VudGVyLmNvbS90ZXJtcy1hbmQtY29uZGl0aW9ucy12bmYiLCJtYXhfcmV0ZW50aW9uX3BlcmlvZCI6IjZtIiwicHJvZ3Jlc3NfdXJpIjoiaHR0cHM6Ly9kZXZhZ2VudC52ZWxvY2l0eWNhcmVlcmxhYnMuaW8vYXBpL2hvbGRlci92MC42L29yZy9kaWQ6aW9uOkVpQ1ZEVERRV25YTTcxekJvazdTTWozZ0I5SkozdXRXTkJlY2pXcEQycDdPU0EvZ2V0LWV4Y2hhbmdlLXByb2dyZXNzIiwic3VibWl0X3ByZXNlbnRhdGlvbl91cmkiOiJodHRwczovL2RldmFnZW50LnZlbG9jaXR5Y2FyZWVybGFicy5pby9hcGkvaG9sZGVyL3YwLjYvb3JnL2RpZDppb246RWlDVkRURFFXblhNNzF6Qm9rN1NNajNnQjlKSjN1dFdOQmVjaldwRDJwN09TQS9pc3N1ZS9zdWJtaXQtaWRlbnRpZmljYXRpb24iLCJjaGVja19vZmZlcnNfdXJpIjoiaHR0cHM6Ly9kZXZhZ2VudC52ZWxvY2l0eWNhcmVlcmxhYnMuaW8vYXBpL2hvbGRlci92MC42L29yZy9kaWQ6aW9uOkVpQ1ZEVERRV25YTTcxekJvazdTTWozZ0I5SkozdXRXTkJlY2pXcEQycDdPU0EvaXNzdWUvY3JlZGVudGlhbC1vZmZlcnMiLCJmaW5hbGl6ZV9vZmZlcnNfdXJpIjoiaHR0cHM6Ly9kZXZhZ2VudC52ZWxvY2l0eWNhcmVlcmxhYnMuaW8vYXBpL2hvbGRlci92MC42L29yZy9kaWQ6aW9uOkVpQ1ZEVERRV25YTTcxekJvazdTTWozZ0I5SkozdXRXTkJlY2pXcEQycDdPU0EvaXNzdWUvZmluYWxpemUtb2ZmZXJzIn0sInByZXNlbnRhdGlvbl9kZWZpbml0aW9uIjp7ImlkIjoiNjRhZjE0NWZhZDc0MGEwYjY4NWEyYTU2LjY0NWNjOGM3MGY3NmFlOGM2ZTI3OTlkNyIsInB1cnBvc2UiOiJJc3N1aW5nIHRlc3QiLCJuYW1lIjoiRGlzbG9zdXJlLCB0aGF0IHJlcXVlc3RzIGFsbCBjcmVkZW50aWFscyB0eXBlcywgZm9yIHRlc3RpbmcgY29tbW9uIEluc3BlY3Rpb24gZmxvdyIsImZvcm1hdCI6eyJqd3RfdnAiOnsiYWxnIjpbInNlY3AyNTZrMSJdfX0sImlucHV0X2Rlc2NyaXB0b3JzIjpbeyJpZCI6IkVtYWlsVjEuMCIsIm5hbWUiOiJFbWFpbCIsInNjaGVtYSI6W3sidXJpIjoiaHR0cHM6Ly9kZXZyZWdpc3RyYXIudmVsb2NpdHluZXR3b3JrLmZvdW5kYXRpb24vc2NoZW1hcy9lbWFpbC12MS4wLnNjaGVtYS5qc29uIn1dLCJncm91cCI6WyJBIl19XSwic3VibWlzc2lvbl9yZXF1aXJlbWVudHMiOlt7InJ1bGUiOiJhbGwiLCJmcm9tIjoiQSIsIm1pbiI6MX1dfSwib3V0cHV0X2Rlc2NyaXB0b3JzIjpbeyJpZCI6IkVtcGxveW1lbnRQYXN0VjEuMSIsIm5hbWUiOiJQYXN0IGVtcGxveW1lbnQgcG9zaXRpb24iLCJzY2hlbWEiOlt7InVyaSI6Imh0dHBzOi8vZGV2cmVnaXN0cmFyLnZlbG9jaXR5bmV0d29yay5mb3VuZGF0aW9uL3NjaGVtYXMvZW1wbG95bWVudC1wYXN0LXYxLjEuc2NoZW1hLmpzb24ifV0sImRpc3BsYXkiOnsidGl0bGUiOnsicGF0aCI6WyIkLmxlZ2FsRW1wbG95ZXIubmFtZSJdLCJzY2hlbWEiOnsidHlwZSI6InN0cmluZyJ9LCJmYWxsYmFjayI6Ii0ifSwic3VidGl0bGUiOnsicGF0aCI6WyIkLnJvbGUiXSwic2NoZW1hIjp7InR5cGUiOiJzdHJpbmcifSwiZmFsbGJhY2siOiItIn0sInN1bW1hcnlfZGV0YWlsIjp7InBhdGgiOlsiJC5lbmREYXRlIl0sInNjaGVtYSI6eyJ0eXBlIjoic3RyaW5nIiwiZm9ybWF0IjoiZGF0ZSJ9LCJmYWxsYmFjayI6Ii0ifSwiZGVzY3JpcHRpb24iOnsidGV4dCI6IlBhc3QgZW1wbG95bWVudCBwb3NpdGlvbiJ9LCJsb2dvIjp7InBhdGgiOlsiJC5sZWdhbEVtcGxveWVyLmltYWdlIl0sInNjaGVtYSI6eyJ0eXBlIjoic3RyaW5nIiwiZm9ybWF0IjoidXJpIn19LCJwcm9wZXJ0aWVzIjpbeyJsYWJlbCI6IlJvbGUgZGVzY3JpcHRpb24iLCJwYXRoIjpbIiQuZGVzY3JpcHRpb24iXSwic2NoZW1hIjp7InR5cGUiOiJzdHJpbmcifX0seyJsYWJlbCI6IlN0YXJ0IERhdGUiLCJwYXRoIjpbIiQuc3RhcnREYXRlIl0sInNjaGVtYSI6eyJ0eXBlIjoic3RyaW5nIiwiZm9ybWF0IjoiZGF0ZSJ9fSx7ImxhYmVsIjoiRW5kIGRhdGUiLCJwYXRoIjpbIiQuZW5kRGF0ZSJdLCJzY2hlbWEiOnsidHlwZSI6InN0cmluZyIsImZvcm1hdCI6ImRhdGUifX0seyJsYWJlbCI6IlBsYWNlIG9mIHdvcmsiLCJwYXRoIjpbIiQucGxhY2UuYWRkcmVzc0xvY2FsaXR5Il0sInNjaGVtYSI6eyJ0eXBlIjoic3RyaW5nIn19LHsibGFiZWwiOiJTdGF0ZSBvciByZWdpb24gb2Ygd29yayIsInBhdGgiOlsiJC5wbGFjZS5hZGRyZXNzUmVnaW9uIl0sInNjaGVtYSI6eyJ0eXBlIjoic3RyaW5nIn19LHsibGFiZWwiOiJDb3VudHJ5IG9mIHdvcmsiLCJwYXRoIjpbIiQucGxhY2UuYWRkcmVzc0NvdW50cnkiXSwic2NoZW1hIjp7InR5cGUiOiJzdHJpbmcifX0seyJsYWJlbCI6IkVtcGxveW1lbnQgdHlwZSIsInBhdGgiOlsiJC5lbXBsb3ltZW50VHlwZVsqXSJdLCJzY2hlbWEiOnsidHlwZSI6InN0cmluZyJ9fSx7ImxhYmVsIjoiUmVjaXBpZW50IGdpdmVuIG5hbWUiLCJwYXRoIjpbIiQucmVjaXBpZW50LmdpdmVuTmFtZSJdLCJzY2hlbWEiOnsidHlwZSI6InN0cmluZyJ9fSx7ImxhYmVsIjoiUmVjaXBpZW50IG1pZGRsZSBuYW1lIiwicGF0aCI6WyIkLnJlY2lwaWVudC5taWRkbGVOYW1lIl0sInNjaGVtYSI6eyJ0eXBlIjoic3RyaW5nIn19LHsibGFiZWwiOiJSZWNpcGllbnQgZmFtaWx5IG5hbWUiLCJwYXRoIjpbIiQucmVjaXBpZW50LmZhbWlseU5hbWUiXSwic2NoZW1hIjp7InR5cGUiOiJzdHJpbmcifX0seyJsYWJlbCI6IlJlY2lwaWVudCBuYW1lIHByZWZpeCIsInBhdGgiOlsiJC5yZWNpcGllbnQubmFtZVByZWZpeCJdLCJzY2hlbWEiOnsidHlwZSI6InN0cmluZyJ9fSx7ImxhYmVsIjoiUmVjaXBpZW50IG5hbWUgc3VmZml4IiwicGF0aCI6WyIkLnJlY2lwaWVudC5uYW1lU3VmZml4Il0sInNjaGVtYSI6eyJ0eXBlIjoic3RyaW5nIn19LHsibGFiZWwiOiJBbGlnbm1lbnQiLCJwYXRoIjpbIiQuYWxpZ25tZW50WzBdLnRhcmdldE5hbWUiXSwic2NoZW1hIjp7InR5cGUiOiJzdHJpbmcifX0seyJsYWJlbCI6IkFsaWdubWVudCBVUkwiLCJwYXRoIjpbIiQuYWxpZ25tZW50WzBdLnRhcmdldFVybCJdLCJzY2hlbWEiOnsidHlwZSI6InN0cmluZyIsImZvcm1hdCI6InVyaSJ9fSx7ImxhYmVsIjoiQWxpZ25tZW50IGZyYW1ld29yayIsInBhdGgiOlsiJC5hbGlnbm1lbnRbMF0udGFyZ2V0RnJhbWV3b3JrIl0sInNjaGVtYSI6eyJ0eXBlIjoic3RyaW5nIn19XX19LHsiaWQiOiJFZHVjYXRpb25EZWdyZWVSZWdpc3RyYXRpb25WMS4xIiwibmFtZSI6IkVkdWNhdGlvbiBkZWdyZWUgcmVnaXN0cmF0aW9uIiwic2NoZW1hIjpbeyJ1cmkiOiJodHRwczovL2RldnJlZ2lzdHJhci52ZWxvY2l0eW5ldHdvcmsuZm91bmRhdGlvbi9zY2hlbWFzL2VkdWNhdGlvbi1kZWdyZWUtcmVnaXN0cmF0aW9uLXYxLjEuc2NoZW1hLmpzb24ifV0sImRpc3BsYXkiOnsidGl0bGUiOnsicGF0aCI6WyIkLmluc3RpdHV0aW9uLm5hbWUiXSwic2NoZW1hIjp7InR5cGUiOiJzdHJpbmcifSwiZmFsbGJhY2siOiItIn0sInN1YnRpdGxlIjp7InBhdGgiOlsiJC5kZWdyZWVOYW1lIl0sInNjaGVtYSI6eyJ0eXBlIjoic3RyaW5nIn0sImZhbGxiYWNrIjoiLSJ9LCJzdW1tYXJ5X2RldGFpbCI6eyJwYXRoIjpbIiQucmVnaXN0cmF0aW9uRGF0ZSJdLCJzY2hlbWEiOnsidHlwZSI6InN0cmluZyIsImZvcm1hdCI6ImRhdGUifSwiZmFsbGJhY2siOiItIn0sImRlc2NyaXB0aW9uIjp7InRleHQiOiJEZWdyZWUgcmVnaXN0cmF0aW9uIn0sImxvZ28iOnsicGF0aCI6WyIkLmluc3RpdHV0aW9uLmltYWdlIl0sInNjaGVtYSI6eyJ0eXBlIjoic3RyaW5nIiwiZm9ybWF0IjoidXJpIn19LCJwcm9wZXJ0aWVzIjpbeyJsYWJlbCI6IlNjaG9vbCBvciBkZXBhcnRtZW50IiwicGF0aCI6WyIkLnNjaG9vbC5uYW1lIl0sInNjaGVtYSI6eyJ0eXBlIjoic3RyaW5nIn19LHsibGFiZWwiOiJEZXNjcmlwdGlvbiIsInBhdGgiOlsiJC5kZXNjcmlwdGlvbiJdLCJzY2hlbWEiOnsidHlwZSI6InN0cmluZyJ9fSx7ImxhYmVsIjoiUmVnaXN0cmF0aW9uIERhdGUiLCJwYXRoIjpbIiQucmVnaXN0cmF0aW9uRGF0ZSJdLCJzY2hlbWEiOnsidHlwZSI6InN0cmluZyIsImZvcm1hdCI6ImRhdGUifX0seyJsYWJlbCI6IlN0YXJ0IERhdGUiLCJwYXRoIjpbIiQuc3RhcnREYXRlIl0sInNjaGVtYSI6eyJ0eXBlIjoic3RyaW5nIiwiZm9ybWF0IjoiZGF0ZSJ9fSx7ImxhYmVsIjoiTWFqb3IiLCJwYXRoIjpbIiQuZGVncmVlTWFqb3JbKl0iXSwic2NoZW1hIjp7InR5cGUiOiJzdHJpbmcifX0seyJsYWJlbCI6Ik1pbm9yIiwicGF0aCI6WyIkLmRlZ3JlZU1pbm9yWypdIl0sInNjaGVtYSI6eyJ0eXBlIjoic3RyaW5nIn19LHsibGFiZWwiOiJQcm9ncmFtIiwicGF0aCI6WyIkLnByb2dyYW1OYW1lIl0sInNjaGVtYSI6eyJ0eXBlIjoic3RyaW5nIn19LHsibGFiZWwiOiJQcm9ncmFtIHR5cGUiLCJwYXRoIjpbIiQucHJvZ3JhbVR5cGUiXSwic2NoZW1hIjp7InR5cGUiOiJzdHJpbmcifX0seyJsYWJlbCI6IlByb2dyYW0gbW9kZSIsInBhdGgiOlsiJC5wcm9ncmFtTW9kZSJdLCJzY2hlbWEiOnsidHlwZSI6InN0cmluZyJ9fSx7ImxhYmVsIjoiUmVjaXBpZW50IGdpdmVuIG5hbWUiLCJwYXRoIjpbIiQucmVjaXBpZW50LmdpdmVuTmFtZSJdLCJzY2hlbWEiOnsidHlwZSI6InN0cmluZyJ9fSx7ImxhYmVsIjoiUmVjaXBpZW50IG1pZGRsZSBuYW1lIiwicGF0aCI6WyIkLnJlY2lwaWVudC5taWRkbGVOYW1lIl0sInNjaGVtYSI6eyJ0eXBlIjoic3RyaW5nIn19LHsibGFiZWwiOiJSZWNpcGllbnQgZmFtaWx5IG5hbWUiLCJwYXRoIjpbIiQucmVjaXBpZW50LmZhbWlseU5hbWUiXSwic2NoZW1hIjp7InR5cGUiOiJzdHJpbmcifX0seyJsYWJlbCI6IlJlY2lwaWVudCBuYW1lIHByZWZpeCIsInBhdGgiOlsiJC5yZWNpcGllbnQubmFtZVByZWZpeCJdLCJzY2hlbWEiOnsidHlwZSI6InN0cmluZyJ9fSx7ImxhYmVsIjoiUmVjaXBpZW50IG5hbWUgc3VmZml4IiwicGF0aCI6WyIkLnJlY2lwaWVudC5uYW1lU3VmZml4Il0sInNjaGVtYSI6eyJ0eXBlIjoic3RyaW5nIn19LHsibGFiZWwiOiJBbGlnbm1lbnQiLCJwYXRoIjpbIiQuYWxpZ25tZW50WzBdLnRhcmdldE5hbWUiXSwic2NoZW1hIjp7InR5cGUiOiJzdHJpbmcifX0seyJsYWJlbCI6IkFsaWdubWVudCBVUkwiLCJwYXRoIjpbIiQuYWxpZ25tZW50WzBdLnRhcmdldFVybCJdLCJzY2hlbWEiOnsidHlwZSI6InN0cmluZyIsImZvcm1hdCI6InVyaSJ9fSx7ImxhYmVsIjoiQWxpZ25tZW50IGZyYW1ld29yayIsInBhdGgiOlsiJC5hbGlnbm1lbnRbMF0udGFyZ2V0RnJhbWV3b3JrIl0sInNjaGVtYSI6eyJ0eXBlIjoic3RyaW5nIn19XX19XSwiaXNzdWVyIjp7ImlkIjoiZGlkOmlvbjpFaUNWRFREUVduWE03MXpCb2s3U01qM2dCOUpKM3V0V05CZWNqV3BEMnA3T1NBIn0sIm5iZiI6MTY4OTE5NTczMywiaXNzIjoiZGlkOmlvbjpFaUNWRFREUVduWE03MXpCb2s3U01qM2dCOUpKM3V0V05CZWNqV3BEMnA3T1NBIiwiZXhwIjoxNjg5ODAwNTMzLCJpYXQiOjE2ODkxOTU3MzN9.ZZsMAICah6vy5n4CVjuEry80SeRA-tS4_3EhHTfHzOAcp0-KRMTNCyWgEN6475CgwZLP_85y84Sv2qGs6qRZug" + + const val JwtCredentialManifestForValidCredentialMicrsoftQa = + "eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NksiLCJraWQiOiJkaWQ6aW9uOkVpRDFxcjBaSmZUdURqZHJWZ0FRVHhsWVVHemwzeWltbEYxWVAtY29yNnpkc2cjZXhjaGFuZ2Uta2V5LTEifQ.eyJleGNoYW5nZV9pZCI6IjY1ZDVmNzc1ZjBkNmUxMzg4ODJlZWJjZSIsIm1ldGFkYXRhIjp7ImNsaWVudF9uYW1lIjoiTWljcm9zb2Z0IENvcnBvcmF0aW9uIiwibG9nb191cmkiOiJodHRwczovL2Fnc29sLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAxOC8wOS9uZXctbWljcm9zb2Z0LWxvZ28tU0laRUQtU1FVQVJFLmpwZyIsInRvc191cmkiOiJodHRwczovL3d3dy52ZWxvY2l0eWV4cGVyaWVuY2VjZW50ZXIuY29tL3Rlcm1zLWFuZC1jb25kaXRpb25zLXZuZiIsIm1heF9yZXRlbnRpb25fcGVyaW9kIjoiNm0iLCJwcm9ncmVzc191cmkiOiJodHRwczovL3FhYWdlbnQudmVsb2NpdHljYXJlZXJsYWJzLmlvL2FwaS9ob2xkZXIvdjAuNi9vcmcvZGlkOmlvbjpFaUQxcXIwWkpmVHVEamRyVmdBUVR4bFlVR3psM3lpbWxGMVlQLWNvcjZ6ZHNnL2dldC1leGNoYW5nZS1wcm9ncmVzcyIsInN1Ym1pdF9wcmVzZW50YXRpb25fdXJpIjoiaHR0cHM6Ly9xYWFnZW50LnZlbG9jaXR5Y2FyZWVybGFicy5pby9hcGkvaG9sZGVyL3YwLjYvb3JnL2RpZDppb246RWlEMXFyMFpKZlR1RGpkclZnQVFUeGxZVUd6bDN5aW1sRjFZUC1jb3I2emRzZy9pc3N1ZS9zdWJtaXQtaWRlbnRpZmljYXRpb24iLCJjaGVja19vZmZlcnNfdXJpIjoiaHR0cHM6Ly9xYWFnZW50LnZlbG9jaXR5Y2FyZWVybGFicy5pby9hcGkvaG9sZGVyL3YwLjYvb3JnL2RpZDppb246RWlEMXFyMFpKZlR1RGpkclZnQVFUeGxZVUd6bDN5aW1sRjFZUC1jb3I2emRzZy9pc3N1ZS9jcmVkZW50aWFsLW9mZmVycyIsImZpbmFsaXplX29mZmVyc191cmkiOiJodHRwczovL3FhYWdlbnQudmVsb2NpdHljYXJlZXJsYWJzLmlvL2FwaS9ob2xkZXIvdjAuNi9vcmcvZGlkOmlvbjpFaUQxcXIwWkpmVHVEamRyVmdBUVR4bFlVR3psM3lpbWxGMVlQLWNvcjZ6ZHNnL2lzc3VlL2ZpbmFsaXplLW9mZmVycyJ9LCJwcmVzZW50YXRpb25fZGVmaW5pdGlvbiI6eyJpZCI6IjY1ZDVmNzc1ZjBkNmUxMzg4ODJlZWJjZS42NDI1NTI2N2RiMmFjYmIwNjMyZWQzYmQiLCJwdXJwb3NlIjoiU2ltcGxlIElzc3VpbmciLCJuYW1lIjoiU2hhcmUgeW91ciBJZCwgRW1haWwgYW5kIFBob25lIE51bWJlciB0byBmYWNpbGl0YXRlIHRoZSBzZWFyY2ggZm9yIHlvdXIgY2FyZWVyIGNyZWRlbnRpYWxzIiwiZm9ybWF0Ijp7Imp3dF92cCI6eyJhbGciOlsic2VjcDI1NmsxIl19fSwiaW5wdXRfZGVzY3JpcHRvcnMiOlt7ImlkIjoiRW1haWxWMS4wIiwibmFtZSI6IkVtYWlsIiwic2NoZW1hIjpbeyJ1cmkiOiJodHRwczovL3FhbGliLnZlbG9jaXR5bmV0d29yay5mb3VuZGF0aW9uL3NjaGVtYXMvZW1haWwtdjEuMC5zY2hlbWEuanNvbiJ9XSwiZ3JvdXAiOlsiQSJdfSx7ImlkIjoiUGhvbmVWMS4wIiwibmFtZSI6IlBob25lIiwic2NoZW1hIjpbeyJ1cmkiOiJodHRwczovL3FhbGliLnZlbG9jaXR5bmV0d29yay5mb3VuZGF0aW9uL3NjaGVtYXMvcGhvbmUtdjEuMC5zY2hlbWEuanNvbiJ9XSwiZ3JvdXAiOlsiQSJdfV0sInN1Ym1pc3Npb25fcmVxdWlyZW1lbnRzIjpbeyJydWxlIjoiYWxsIiwiZnJvbSI6IkEiLCJtaW4iOjJ9XX0sIm91dHB1dF9kZXNjcmlwdG9ycyI6W10sImlzc3VlciI6eyJpZCI6ImRpZDppb246RWlEMXFyMFpKZlR1RGpkclZnQVFUeGxZVUd6bDN5aW1sRjFZUC1jb3I2emRzZyJ9LCJuYmYiOjE3MDg1MjEzMzMsImlzcyI6ImRpZDppb246RWlEMXFyMFpKZlR1RGpkclZnQVFUeGxZVUd6bDN5aW1sRjFZUC1jb3I2emRzZyIsImV4cCI6MTcwOTEyNjEzMywiaWF0IjoxNzA4NTIxMzMzfQ.hddTeY6yvc654HwREHBCDmmQ0KoQSkEB065_mzhmk0C7l9YYZVu-nPWECIoJX07hYOoKf0fXa5bZYA7c_QDOUQ" + + const val JwtCredentialManifestForInvalidCredentialMicrsoftQa = + "eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NksiLCJraWQiOiJkaWQ6aW9uOkVpRDFxcjBaSmZUdURqZHJWZ0FRVHhsWVVHemwzeWltbEYxWVAtY29yNnpkc2cjZXhjaGFuZ2Uta2V5LTEifQ.eyJleGNoYW5nZV9pZCI6IjY1ZDVmNmI2YWVhZmJlNjVjOTliNzczZCIsIm1ldGFkYXRhIjp7ImNsaWVudF9uYW1lIjoiTWljcm9zb2Z0IENvcnBvcmF0aW9uIiwibG9nb191cmkiOiJodHRwczovL2Fnc29sLmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAxOC8wOS9uZXctbWljcm9zb2Z0LWxvZ28tU0laRUQtU1FVQVJFLmpwZyIsInRvc191cmkiOiJodHRwczovL3d3dy52ZWxvY2l0eWV4cGVyaWVuY2VjZW50ZXIuY29tL3Rlcm1zLWFuZC1jb25kaXRpb25zLXZuZiIsIm1heF9yZXRlbnRpb25fcGVyaW9kIjoiNm0iLCJwcm9ncmVzc191cmkiOiJodHRwczovL3FhYWdlbnQudmVsb2NpdHljYXJlZXJsYWJzLmlvL2FwaS9ob2xkZXIvdjAuNi9vcmcvZGlkOmlvbjpFaUQxcXIwWkpmVHVEamRyVmdBUVR4bFlVR3psM3lpbWxGMVlQLWNvcjZ6ZHNnL2dldC1leGNoYW5nZS1wcm9ncmVzcyIsInN1Ym1pdF9wcmVzZW50YXRpb25fdXJpIjoiaHR0cHM6Ly9xYWFnZW50LnZlbG9jaXR5Y2FyZWVybGFicy5pby9hcGkvaG9sZGVyL3YwLjYvb3JnL2RpZDppb246RWlEMXFyMFpKZlR1RGpkclZnQVFUeGxZVUd6bDN5aW1sRjFZUC1jb3I2emRzZy9pc3N1ZS9zdWJtaXQtaWRlbnRpZmljYXRpb24iLCJjaGVja19vZmZlcnNfdXJpIjoiaHR0cHM6Ly9xYWFnZW50LnZlbG9jaXR5Y2FyZWVybGFicy5pby9hcGkvaG9sZGVyL3YwLjYvb3JnL2RpZDppb246RWlEMXFyMFpKZlR1RGpkclZnQVFUeGxZVUd6bDN5aW1sRjFZUC1jb3I2emRzZy9pc3N1ZS9jcmVkZW50aWFsLW9mZmVycyIsImZpbmFsaXplX29mZmVyc191cmkiOiJodHRwczovL3FhYWdlbnQudmVsb2NpdHljYXJlZXJsYWJzLmlvL2FwaS9ob2xkZXIvdjAuNi9vcmcvZGlkOmlvbjpFaUQxcXIwWkpmVHVEamRyVmdBUVR4bFlVR3psM3lpbWxGMVlQLWNvcjZ6ZHNnL2lzc3VlL2ZpbmFsaXplLW9mZmVycyJ9LCJwcmVzZW50YXRpb25fZGVmaW5pdGlvbiI6eyJpZCI6IjY1ZDVmNmI2YWVhZmJlNjVjOTliNzczZC42NDI1NTI2N2RiMmFjYmIwNjMyZWQzYmQiLCJwdXJwb3NlIjoiU2ltcGxlIElzc3VpbmciLCJuYW1lIjoiU2hhcmUgeW91ciBJZCwgRW1haWwgYW5kIFBob25lIE51bWJlciB0byBmYWNpbGl0YXRlIHRoZSBzZWFyY2ggZm9yIHlvdXIgY2FyZWVyIGNyZWRlbnRpYWxzIiwiZm9ybWF0Ijp7Imp3dF92cCI6eyJhbGciOlsic2VjcDI1NmsxIl19fSwiaW5wdXRfZGVzY3JpcHRvcnMiOlt7ImlkIjoiRW1haWxWMS4wIiwibmFtZSI6IkVtYWlsIiwic2NoZW1hIjpbeyJ1cmkiOiJodHRwczovL3FhbGliLnZlbG9jaXR5bmV0d29yay5mb3VuZGF0aW9uL3NjaGVtYXMvZW1haWwtdjEuMC5zY2hlbWEuanNvbiJ9XSwiZ3JvdXAiOlsiQSJdfSx7ImlkIjoiUGhvbmVWMS4wIiwibmFtZSI6IlBob25lIiwic2NoZW1hIjpbeyJ1cmkiOiJodHRwczovL3FhbGliLnZlbG9jaXR5bmV0d29yay5mb3VuZGF0aW9uL3NjaGVtYXMvcGhvbmUtdjEuMC5zY2hlbWEuanNvbiJ9XSwiZ3JvdXAiOlsiQSJdfV0sInN1Ym1pc3Npb25fcmVxdWlyZW1lbnRzIjpbeyJydWxlIjoiYWxsIiwiZnJvbSI6IkEiLCJtaW4iOjJ9XX0sIm91dHB1dF9kZXNjcmlwdG9ycyI6W10sImlzc3VlciI6eyJpZCI6ImRpZDppb246RWlEMXFyMFpKZlR1RGpkclZnQVFUeGxZVUd6bDN5aW1sRjFZUC1jb3I2emRzZyJ9LCJuYmYiOjE3MDg1MjExNDMsImlzcyI6ImRpZDppb246RWlEMXFyMFpKZlR1RGpkclZnQVFUeGxZVUd6bDN5aW1sRjFZUC1jb3I2emRzZyIsImV4cCI6MTcwOTEyNTk0MywiaWF0IjoxNzA4NTIxMTQzfQ.zJ_Yd-tXYFm6DzhjJKHZJvv8ATo8ErCQqRLEWz7FG2rpPWpWYL1N73fotF1sgGnYKP3_8n7PxU2WQbzNswsElg" } } diff --git a/VCL/src/test/java/io/velocitycareerlabs/infrastructure/resources/valid/CredentialMocks.kt b/VCL/src/test/java/io/velocitycareerlabs/infrastructure/resources/valid/CredentialMocks.kt index 2a9322c..bacbd00 100644 --- a/VCL/src/test/java/io/velocitycareerlabs/infrastructure/resources/valid/CredentialMocks.kt +++ b/VCL/src/test/java/io/velocitycareerlabs/infrastructure/resources/valid/CredentialMocks.kt @@ -42,6 +42,12 @@ class CredentialMocks { const val JwtCredentialOpenBadgeInvalid = "eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NksiLCJraWQiOiJkaWQ6dmVsb2NpdHk6djI6MHg1NzU3MmNlYTU2ZmI0MDNkYzEzYzYwY2JiYzYzNzE1MDBlMTE0NjU2OjIzNDU3Nzk0MDIzNjM2MDo3NzU2I2tleS0xIn0.eyJ2YyI6eyJ0eXBlIjpbIk9wZW5CYWRnZVYyLjAiLCJWZXJpZmlhYmxlQ3JlZGVudGlhbCJdLCJpZCI6ImRpZDp2ZWxvY2l0eTp2MjoweDU3NTcyY2VhNTZmYjQwM2RjMTNjNjBjYmJjNjM3MTUwMGUxMTQ2NTY6MjM0NTc3OTQwMjM2MzYwOjc3NTYiLCJjcmVkZW50aWFsU3RhdHVzIjp7InR5cGUiOiJWZWxvY2l0eVJldm9jYXRpb25MaXN0SmFuMjAyMSIsImlkIjoiZXRoZXJldW06MHgxNDk5Yzg4ODQwOUQ2MmI4ZUM1MDE2RjRFMmI2YmI0YmVFMUVERjQ0L2dldFJldm9rZWRTdGF0dXM_YWRkcmVzcz0weDU3NTcyY0VBNTZGQjQwM0RjMTNjNjBDYmJDNjM3MTUwMGUxMTQ2NTYmbGlzdElkPTEyNjYxODc1MDI5MzAyNiZpbmRleD0xMCIsInN0YXR1c0xpc3RJbmRleCI6MTAsInN0YXR1c0xpc3RDcmVkZW50aWFsIjoiZXRoZXJldW06MHgxNDk5Yzg4ODQwOUQ2MmI4ZUM1MDE2RjRFMmI2YmI0YmVFMUVERjQ0L2dldFJldm9rZWRTdGF0dXM_YWRkcmVzcz0weDU3NTcyY0VBNTZGQjQwM0RjMTNjNjBDYmJDNjM3MTUwMGUxMTQ2NTYmbGlzdElkPTEyNjYxODc1MDI5MzAyNiJ9LCJsaW5rQ29kZUNvbW1pdG1lbnQiOnsidHlwZSI6IlZlbG9jaXR5Q3JlZGVudGlhbExpbmtDb2RlQ29tbWl0bWVudDIwMjIiLCJ2YWx1ZSI6IkVpQkFZRklBeUthNjFwNUhKeWR0SldHaGlTSXZvbHVTd3JzZ1h6dUtYRXJycFE9PSJ9LCJpc3N1ZXIiOnsiaWQiOiJkaWQ6aW9uOkVpRFVJMGRhS3J0b0tIWHk0emFFeTZPM0k2Z01xeV95TXRJbDBPZTNtejk4VlEifSwiY29udGVudEhhc2giOnsidHlwZSI6IlZlbG9jaXR5Q29udGVudEhhc2gyMDIwIiwidmFsdWUiOiJjMWI3YjUzMWQ5MGU1ZmU1NjU0OTY4M2NhNmI0YjJiMWZlMDdjYjU3N2E5NjQ0ODkyYTZjM2E5YmNhMDZiY2FmIn0sImNyZWRlbnRpYWxTY2hlbWEiOnsiaWQiOiJodHRwczovL3FhbGliLnZlbG9jaXR5bmV0d29yay5mb3VuZGF0aW9uL3NjaGVtYXMvb3Blbi1iYWRnZS12Mi4wLnNjaGVtYS5qc29uIiwidHlwZSI6Ikpzb25TY2hlbWFWYWxpZGF0b3IyMDE4In0sInZuZlByb3RvY29sVmVyc2lvbiI6MSwiQGNvbnRleHQiOlsiaHR0cHM6Ly93d3cudzMub3JnLzIwMTgvY3JlZGVudGlhbHMvdjEiLCJodHRwczovL3FhbGliLnZlbG9jaXR5bmV0d29yay5mb3VuZGF0aW9uL2NvbnRleHRzL2NyZWRlbnRpYWwtZXh0ZW5zaW9ucy0yMDIyLmpzb25sZC5qc29uIl0sImNyZWRlbnRpYWxTdWJqZWN0Ijp7Imhhc0NyZWRlbnRpYWwiOnsibmFtZSI6Imlzc3Vlci5pZCAhPSBpZGVudGlmaWVyIE9CVjIuMCIsImltYWdlIjoiaHR0cHM6Ly93d3cuaW1zZ2xvYmFsLm9yZy9zaXRlcy9kZWZhdWx0L2ZpbGVzL0JhZGdlcy9PQnYycDBGaW5hbC9pbWFnZXMvaW1zZ2xvYmFsLWxvZ28ucG5nIiwidHlwZSI6IkJhZGdlQ2xhc3MiLCJkZXNjcmlwdGlvbiI6ImNyZWRlbnRpYWxTdWJqZWN0Lmhhc0NyZWRlbnRpYWwuaXNzdWVyLmlkICE9IGlzc3Vlci5pZCDihpIgVFJVU1RFRF9JU1NVRVI6IEZBSUwiLCJpc3N1ZXIiOnsibmFtZSI6IlVuaXZlcnNhbCBJc3N1ZXIiLCJ0eXBlIjoiUHJvZmlsZSIsImlkIjoiVGVzdCJ9LCJjcml0ZXJpYSI6Imh0dHBzOi8vd3d3LmFldHNvZnQubmV0IiwidGFncyI6WyJzYW1wbGUtdGFnIl19LCJ0eXBlIjoiQmFkZ2UiLCJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSIsImh0dHBzOi8vcWFsaWIudmVsb2NpdHluZXR3b3JrLmZvdW5kYXRpb24vY29udGV4dHMvbGF5ZXIxLXYxLjEuanNvbmxkLmpzb24iXX19LCJuYmYiOjE3MDMxNDQyMjEsImp0aSI6ImRpZDp2ZWxvY2l0eTp2MjoweDU3NTcyY2VhNTZmYjQwM2RjMTNjNjBjYmJjNjM3MTUwMGUxMTQ2NTY6MjM0NTc3OTQwMjM2MzYwOjc3NTYiLCJpc3MiOiJkaWQ6aW9uOkVpRFVJMGRhS3J0b0tIWHk0emFFeTZPM0k2Z01xeV95TXRJbDBPZTNtejk4VlEiLCJpYXQiOjE3MDMxNDQyMjF9.cExeY-Qu9WaYV9U5mWKDirdIMilVoPmixDgSkZsmOZCBt99vgfHtlPfyAW-Ez3HlcCwK0v5E8xjhV-IixR36NQ" + const val JwtValidEmploymentCredentialFromMicrosoftQa = + "eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NksiLCJraWQiOiJkaWQ6dmVsb2NpdHk6djI6MHgzMTNlMzNhZWExYmRmOWRhMWZmMmMxYjAzYjVhNzJmZTcwOTVmOTIyOjIxMTU3MDE4MjUwNDk3MToxNjExI2tleS0xIn0.eyJ2YyI6eyJ0eXBlIjpbIkVtcGxveW1lbnRQYXN0VjEuMSIsIlZlcmlmaWFibGVDcmVkZW50aWFsIl0sImlkIjoiZGlkOnZlbG9jaXR5OnYyOjB4MzEzZTMzYWVhMWJkZjlkYTFmZjJjMWIwM2I1YTcyZmU3MDk1ZjkyMjoyMTE1NzAxODI1MDQ5NzE6MTYxMSIsImNyZWRlbnRpYWxTdGF0dXMiOnsidHlwZSI6IlZlbG9jaXR5UmV2b2NhdGlvbkxpc3RKYW4yMDIxIiwiaWQiOiJldGhlcmV1bToweDE0OTljODg4NDA5RDYyYjhlQzUwMTZGNEUyYjZiYjRiZUUxRURGNDQvZ2V0UmV2b2tlZFN0YXR1cz9hZGRyZXNzPTB4MzEzRTMzYUVhMUJERjlEQTFGRjJjMWIwM2I1QTcyZmU3MDk1RjkyMiZsaXN0SWQ9NDMzNzM0MjYxNjE5NzAmaW5kZXg9NzI3OSIsInN0YXR1c0xpc3RJbmRleCI6NzI3OSwic3RhdHVzTGlzdENyZWRlbnRpYWwiOiJldGhlcmV1bToweDE0OTljODg4NDA5RDYyYjhlQzUwMTZGNEUyYjZiYjRiZUUxRURGNDQvZ2V0UmV2b2tlZFN0YXR1cz9hZGRyZXNzPTB4MzEzRTMzYUVhMUJERjlEQTFGRjJjMWIwM2I1QTcyZmU3MDk1RjkyMiZsaXN0SWQ9NDMzNzM0MjYxNjE5NzAifSwibGlua0NvZGVDb21taXRtZW50Ijp7InR5cGUiOiJWZWxvY2l0eUNyZWRlbnRpYWxMaW5rQ29kZUNvbW1pdG1lbnQyMDIyIiwidmFsdWUiOiJFaUJOTXkwbVFndktkV2pFc2d0SldwYmgzWStBdjgwbHlXQ0xZZjNocFc0Uy93PT0ifSwiaXNzdWVyIjp7ImlkIjoiZGlkOmlvbjpFaUQxcXIwWkpmVHVEamRyVmdBUVR4bFlVR3psM3lpbWxGMVlQLWNvcjZ6ZHNnIn0sImNvbnRlbnRIYXNoIjp7InR5cGUiOiJWZWxvY2l0eUNvbnRlbnRIYXNoMjAyMCIsInZhbHVlIjoiZGNiNTY3ODI5ZTIyMTc4OWI5YjQ0Y2M0NDVjNzg1NGQyZWEyNDRhY2ZkZjRmODc0YjljN2QyZGQ4MTBlN2ZlNiJ9LCJjcmVkZW50aWFsU2NoZW1hIjp7ImlkIjoiaHR0cHM6Ly9xYWxpYi52ZWxvY2l0eW5ldHdvcmsuZm91bmRhdGlvbi9zY2hlbWFzL2VtcGxveW1lbnQtcGFzdC12MS4xLnNjaGVtYS5qc29uIiwidHlwZSI6Ikpzb25TY2hlbWFWYWxpZGF0b3IyMDE4In0sInZuZlByb3RvY29sVmVyc2lvbiI6MiwiQGNvbnRleHQiOlsiaHR0cHM6Ly93d3cudzMub3JnLzIwMTgvY3JlZGVudGlhbHMvdjEiLCJodHRwczovL3FhbGliLnZlbG9jaXR5bmV0d29yay5mb3VuZGF0aW9uL2NvbnRleHRzL2NyZWRlbnRpYWwtZXh0ZW5zaW9ucy0yMDIyLmpzb25sZC5qc29uIl0sImNyZWRlbnRpYWxTdWJqZWN0Ijp7ImxlZ2FsRW1wbG95ZXIiOnsibmFtZSI6Ik1pY3Jvc29mdCBDb3Jwb3JhdGlvbiIsImlkZW50aWZpZXIiOiJkaWQ6aW9uOkVpRDFxcjBaSmZUdURqZHJWZ0FRVHhsWVVHemwzeWltbEYxWVAtY29yNnpkc2ciLCJwbGFjZSI6eyJhZGRyZXNzTG9jYWxpdHkiOiJCZWxsZXZ1ZSIsImFkZHJlc3NSZWdpb24iOiJVUy1XQSIsImFkZHJlc3NDb3VudHJ5IjoiVVMiLCJ0eXBlIjoiUGxhY2UifSwidHlwZSI6Ik9yZ2FuaXphdGlvbiJ9LCJyb2xlIjoiUHJvamVjdCBNYW5hZ2VyIChwYXN0KSIsImRlc2NyaXB0aW9uIjoiQmFja2VuZCBkZXZlbG9wbWVudCBwcm9qZWN0IG1hbmFnZW1lbnQiLCJlbXBsb3ltZW50VHlwZSI6WyJwYXJ0LXRpbWUiLCJwZXJtYW5lbnQiXSwicGxhY2UiOnsibmFtZSI6Ik1lZGlhIExhYiIsImFkZHJlc3NMb2NhbGl0eSI6IkJ1ZmZhbG8iLCJhZGRyZXNzUmVnaW9uIjoiVVMtTlkiLCJhZGRyZXNzQ291bnRyeSI6IlVTIiwidHlwZSI6IlBsYWNlIn0sInN0YXJ0RGF0ZSI6IjIwMTMtMTAtMDEiLCJlbmREYXRlIjoiMjAxNy0wMS0wMSIsInJlY2lwaWVudCI6eyJnaXZlbk5hbWUiOiJPbGl2aWEiLCJmYW1pbHlOYW1lIjoiSGFmZXoiLCJtaWRkbGVOYW1lIjoiTWVsYW5pZSIsIm5hbWVQcmVmaXgiOiJEci4iLCJuYW1lU3VmZml4IjoiTXJzLiIsInR5cGUiOiJQZXJzb25OYW1lIn0sImFsaWdubWVudCI6W3sidGFyZ2V0TmFtZSI6IlRlc3QgTmFtZSIsInRhcmdldFVybCI6Imh0dHBzOi8vY3JlZGVudGlhbGZpbmRlci5vcmcvY3JlZGVudGlhbC81NzY5L0JhY2hlbG9yX29mX1NjaWVuY2VfaW5fTnVyc2luZ19STl90b19CU04iLCJ0YXJnZXRGcmFtZXdvcmsiOiJUZXN0IEZyYW1ld29yayIsInR5cGUiOiJBbGlnbm1lbnRPYmplY3QifV0sInR5cGUiOiJFbXBsb3ltZW50IiwiaWQiOiJtT2k0SEpqVFhPX1FtX0sxZTkwZTNXTWI2RXNqRUFxamg1blNYcjBCdi1vIiwiQGNvbnRleHQiOlsiaHR0cHM6Ly93d3cudzMub3JnLzIwMTgvY3JlZGVudGlhbHMvdjEiLCJodHRwczovL3FhbGliLnZlbG9jaXR5bmV0d29yay5mb3VuZGF0aW9uL2NvbnRleHRzL2xheWVyMS12MS4xLmpzb25sZC5qc29uIiwiaHR0cHM6Ly92ZWxvY2l0eW5ldHdvcmsuZm91bmRhdGlvbi9jb250ZXh0cy9lbXBsb3ltZW50Il19fSwibmJmIjoxNzA4NTIxMzQ3LCJqdGkiOiJkaWQ6dmVsb2NpdHk6djI6MHgzMTNlMzNhZWExYmRmOWRhMWZmMmMxYjAzYjVhNzJmZTcwOTVmOTIyOjIxMTU3MDE4MjUwNDk3MToxNjExIiwiaXNzIjoiZGlkOmlvbjpFaUQxcXIwWkpmVHVEamRyVmdBUVR4bFlVR3psM3lpbWxGMVlQLWNvcjZ6ZHNnIiwic3ViIjoibU9pNEhKalRYT19RbV9LMWU5MGUzV01iNkVzakVBcWpoNW5TWHIwQnYtbyIsImlhdCI6MTcwODUyMTM0N30.rRSkzJLEsdtPosCwYwN89UqrJILF_AD6C3HirYMp4euEK72r9lOVV9hM0TorPw_D4yXWhbWWAAPL5VyvXimYVw" + + const val JwtInvalidEmploymentCredentialFromMicrosoftQa = + "eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NksiLCJraWQiOiJkaWQ6dmVsb2NpdHk6djI6MHgzMTNlMzNhZWExYmRmOWRhMWZmMmMxYjAzYjVhNzJmZTcwOTVmOTIyOjIxMTU3MDE4MjUwNDk3MTo1OTYja2V5LTEifQ.eyJ2YyI6eyJ0eXBlIjpbIkVtcGxveW1lbnRQYXN0VjEuMSIsIlZlcmlmaWFibGVDcmVkZW50aWFsIl0sImlkIjoiZGlkOnZlbG9jaXR5OnYyOjB4MzEzZTMzYWVhMWJkZjlkYTFmZjJjMWIwM2I1YTcyZmU3MDk1ZjkyMjoyMTE1NzAxODI1MDQ5NzE6NTk2IiwiY3JlZGVudGlhbFN0YXR1cyI6eyJ0eXBlIjoiVmVsb2NpdHlSZXZvY2F0aW9uTGlzdEphbjIwMjEiLCJpZCI6ImV0aGVyZXVtOjB4MTQ5OWM4ODg0MDlENjJiOGVDNTAxNkY0RTJiNmJiNGJlRTFFREY0NC9nZXRSZXZva2VkU3RhdHVzP2FkZHJlc3M9MHgzMTNFMzNhRWExQkRGOURBMUZGMmMxYjAzYjVBNzJmZTcwOTVGOTIyJmxpc3RJZD00MzM3MzQyNjE2MTk3MCZpbmRleD00Njg2Iiwic3RhdHVzTGlzdEluZGV4Ijo0Njg2LCJzdGF0dXNMaXN0Q3JlZGVudGlhbCI6ImV0aGVyZXVtOjB4MTQ5OWM4ODg0MDlENjJiOGVDNTAxNkY0RTJiNmJiNGJlRTFFREY0NC9nZXRSZXZva2VkU3RhdHVzP2FkZHJlc3M9MHgzMTNFMzNhRWExQkRGOURBMUZGMmMxYjAzYjVBNzJmZTcwOTVGOTIyJmxpc3RJZD00MzM3MzQyNjE2MTk3MCJ9LCJsaW5rQ29kZUNvbW1pdG1lbnQiOnsidHlwZSI6IlZlbG9jaXR5Q3JlZGVudGlhbExpbmtDb2RlQ29tbWl0bWVudDIwMjIiLCJ2YWx1ZSI6IkVpREJyT2p4ZEV4UldLRjUxU1JFTWhPUjAzb3BwWXByeHJDTEQ4YXZXck9zSEE9PSJ9LCJpc3N1ZXIiOnsiaWQiOiJkaWQ6aW9uOkVpRDFxcjBaSmZUdURqZHJWZ0FRVHhsWVVHemwzeWltbEYxWVAtY29yNnpkc2cifSwiY29udGVudEhhc2giOnsidHlwZSI6IlZlbG9jaXR5Q29udGVudEhhc2gyMDIwIiwidmFsdWUiOiI4OGFlMDQ2MzU5YzY3MTVlMmQ1MTJiNWFkODkwMjkzZjM3NmQyOTRmZmM0NzU2YzgyMDg0ZDVmNTAzM2Q4YjQ3In0sImNyZWRlbnRpYWxTY2hlbWEiOnsiaWQiOiJodHRwczovL3FhbGliLnZlbG9jaXR5bmV0d29yay5mb3VuZGF0aW9uL3NjaGVtYXMvZW1wbG95bWVudC1wYXN0LXYxLjEuc2NoZW1hLmpzb24iLCJ0eXBlIjoiSnNvblNjaGVtYVZhbGlkYXRvcjIwMTgifSwidm5mUHJvdG9jb2xWZXJzaW9uIjoyLCJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSIsImh0dHBzOi8vcWFsaWIudmVsb2NpdHluZXR3b3JrLmZvdW5kYXRpb24vY29udGV4dHMvY3JlZGVudGlhbC1leHRlbnNpb25zLTIwMjIuanNvbmxkLmpzb24iXSwiY3JlZGVudGlhbFN1YmplY3QiOnsibGVnYWxFbXBsb3llciI6eyJuYW1lIjoiNzAxNSBpZGVudGlmaWVyICE9IiwiaWRlbnRpZmllciI6IjEyMyIsInBsYWNlIjp7ImFkZHJlc3NDb3VudHJ5IjoiVVMiLCJ0eXBlIjoiUGxhY2UifSwidHlwZSI6Ik9yZ2FuaXphdGlvbiJ9LCJyb2xlIjoiNzAxNSB0ZXN0IChwYXN0KSIsImRlc2NyaXB0aW9uIjoiVGhlIG9mZmVyIGNyZWF0ZWQgb24gTW9ja1ZlbmRvciBEZXYgZm9yIHRlc3RpbmcgQ29tcGF0YWdlbnQiLCJwbGFjZSI6eyJhZGRyZXNzQ291bnRyeSI6IlVTIiwidHlwZSI6IlBsYWNlIn0sInN0YXJ0RGF0ZSI6IjIwMTMtMTAtMDEiLCJlbmREYXRlIjoiMjAxNy0wMS0wMSIsInJlY2lwaWVudCI6eyJnaXZlbk5hbWUiOiJPbGl2aWEiLCJmYW1pbHlOYW1lIjoiSGFmZXoiLCJ0eXBlIjoiUGVyc29uTmFtZSJ9LCJ0eXBlIjoiRW1wbG95bWVudCIsImlkIjoibU9pNEhKalRYT19RbV9LMWU5MGUzV01iNkVzakVBcWpoNW5TWHIwQnYtbyIsIkBjb250ZXh0IjpbImh0dHBzOi8vd3d3LnczLm9yZy8yMDE4L2NyZWRlbnRpYWxzL3YxIiwiaHR0cHM6Ly9xYWxpYi52ZWxvY2l0eW5ldHdvcmsuZm91bmRhdGlvbi9jb250ZXh0cy9sYXllcjEtdjEuMS5qc29ubGQuanNvbiIsImh0dHBzOi8vdmVsb2NpdHluZXR3b3JrLmZvdW5kYXRpb24vY29udGV4dHMvZW1wbG95bWVudCJdfX0sIm5iZiI6MTcwODUyMTE4MSwianRpIjoiZGlkOnZlbG9jaXR5OnYyOjB4MzEzZTMzYWVhMWJkZjlkYTFmZjJjMWIwM2I1YTcyZmU3MDk1ZjkyMjoyMTE1NzAxODI1MDQ5NzE6NTk2IiwiaXNzIjoiZGlkOmlvbjpFaUQxcXIwWkpmVHVEamRyVmdBUVR4bFlVR3psM3lpbWxGMVlQLWNvcjZ6ZHNnIiwic3ViIjoibU9pNEhKalRYT19RbV9LMWU5MGUzV01iNkVzakVBcWpoNW5TWHIwQnYtbyIsImlhdCI6MTcwODUyMTE4MX0.SBsiJufhPh3iY7cyLxf4EvnXuMqc-AP-IupeOH-fp1o3SMuq3450u71MwT4630_8glXogFMcQRwZu-3D5pSaVQ" + const val JwtCredentialsFromRegularIssuer = "[\"$JwtCredentialEducationDegreeRegistrationFromRegularIssuer\", \"$JwtCredentialEmploymentPastFromRegularIssuer\"]" @@ -54,9 +60,12 @@ class CredentialMocks { const val JwtCredentialsWithoutSubject = "[\"$JwtCredEmailWithoutSubjectJwt\", \"$JwtCredPhoneWithoutSubjectJwt\"]" - const val JwtCredentialsOpenBadgeValid = "[$JwtCredentialOpenBadgeValid]" + const val JwtCredentialsOpenBadgeValid = "[\"$JwtCredentialOpenBadgeValid\"]" + + const val JwtCredentialsOpenBadgeInvalid = "[\"$JwtCredentialOpenBadgeInvalid\"]" - const val JwtCredentialsOpenBadgeInvalid = "[$JwtCredentialOpenBadgeInvalid]" + const val JwtValidEmploymentCredentialsFromMicrosoftQa = "[\"$JwtValidEmploymentCredentialFromMicrosoftQa\"]" + const val JwtInvalidEmploymentCredentialsFromMicrosoftQa = "[\"$JwtInvalidEmploymentCredentialFromMicrosoftQa\"]" const val JwtEmptyCredentials = "[]" } diff --git a/VCL/src/test/java/io/velocitycareerlabs/infrastructure/resources/valid/JsonLdMocks.kt b/VCL/src/test/java/io/velocitycareerlabs/infrastructure/resources/valid/JsonLdMocks.kt index 3bedc14..79365d9 100644 --- a/VCL/src/test/java/io/velocitycareerlabs/infrastructure/resources/valid/JsonLdMocks.kt +++ b/VCL/src/test/java/io/velocitycareerlabs/infrastructure/resources/valid/JsonLdMocks.kt @@ -15,5 +15,8 @@ class JsonLdMocks { val Layer1v10Jsonld = "{ \"@context\": { \"id\": \"@id\", \"type\": \"@type\", \"schema\": \"http://schema.org/\", \"xsd\": \"https://www.w3.org/2001/XMLSchema#\", \"ob\": \"https://purl.imsglobal.org/spec/vc/ob/vocab.html#\", \"ceterms\": \"https://credreg.net/ctdl/terms/\", \"Address\": { \"@id\": \"https://velocitynetwork.foundation/contexts#Address\", \"@context\": { \"streetAddress\": \"schema:streetAddress\", \"addressLocality\": \"schema:addressLocality\", \"addressRegion\": \"schema:addressRegion\", \"postCode\": \"schema:postalCode\", \"addressCountry\": \"schema:addressCountry\" } }, \"Place\": { \"@id\": \"https://velocitynetwork.foundation/contexts#Place\", \"@context\": { \"name\": \"schema:name\", \"addressLocality\": \"schema:addressLocality\", \"addressRegion\": \"schema:addressRegion\", \"addressCountry\": \"schema:addressCountry\" } }, \"Validity\": { \"@id\": \"https://velocitynetwork.foundation/contexts#Validity\", \"@context\": { \"firstValidFrom\": { \"@id\": \"https://velocitynetwork.foundation/contexts#firstValidFrom\", \"@type\": \"schema:Date\" }, \"validFrom\": \"schema:validFrom\", \"validUntil\": \"schema:validUntil\", \"validIn\": { \"@id\": \"https://velocitynetwork.foundation/contexts#place\" } } }, \"Person\": { \"@id\": \"https://velocitynetwork.foundation/contexts#Person\", \"@context\": { \"givenName\": \"schema:givenName\", \"familyName\": \"schema:familyName\", \"middleName\": \"schema:additionalName\", \"namePrefix\": \"schema:honorificPrefix\", \"nameSuffix\": \"schema:honorificSuffix\", \"birthDate\": \"schema:birthDate\", \"birthPlace\": { \"@id\": \"https://velocitynetwork.foundation/contexts#place\" }, \"gender\": \"schema:gender\" } }, \"Organization\": { \"@id\": \"https://velocitynetwork.foundation/contexts#Organization\", \"@context\": { \"name\": \"schema:name\", \"identifier\": { \"@id\": \"schema:identifier\", \"@type\": \"@id\" }, \"place\": { \"@id\": \"https://velocitynetwork.foundation/contexts#place\" } } }, \"PrimaryOrganization\": \"Organization\", \"AlignmentObject\": { \"@id\": \"https://velocitynetwork.foundation/contexts#AlignmentObject\", \"@context\": { \"targetCode\": { \"@id\": \"ob:targetCode\", \"@type\": \"xsd:string\" }, \"targetDescription\": \"schema:targetDescription\", \"targetFramework\": \"schema:targetFramework\", \"targetName\": \"schema:targetName\", \"targetType\": { \"@id\": \"ob:targetType\", \"@type\": \"xsd:string\" }, \"targetUrl\": { \"@id\": \"schema:targetUrl\", \"@type\": \"xsd:anyURI\" } } }, \"Score\": { \"@id\": \"https://velocitynetwork.foundation/contexts#Score\", \"@context\": { \"scoreMethod\": { \"@id\": \"https://velocitynetwork.foundation/contexts#scoreMethod\" }, \"scoreValue\": { \"@id\": \"https://velocitynetwork.foundation/contexts#scoreValue\", \"@type\": \"xsd:string\" }, \"result\": { \"@id\": \"https://velocitynetwork.foundation/contexts#result\", \"@type\": \"xsd:string\" }, \"passFail\": { \"@id\": \"https://velocitynetwork.foundation/contexts#passFail\", \"@type\": \"xsd:string\" } } }, \"ScoreMethod\": { \"@id\": \"https://velocitynetwork.foundation/contexts#ScoreMethod\", \"@context\": { \"scoreMethodType\": \"ceterms:scoringMethodType\", \"scoreMethodDescription\": \"ceterms:scoringMethodDescription\", \"alignment\": { \"@id\": \"https://velocitynetwork.foundation/contexts#alignment\", \"@container\": \"@set\" }, \"passingScore\": \"ceterms:requires\" } }, \"Email\": { \"@id\": \"https://velocitynetwork.foundation/contexts#Email\", \"@context\": { \"email\": \"schema:email\" } }, \"Phone\": { \"@id\": \"https://velocitynetwork.foundation/contexts#Phone\", \"@context\": { \"phone\": \"schema:telephone\" } }, \"IdDocument\": { \"@id\": \"https://velocitynetwork.foundation/contexts#IdDocument\", \"@context\": { \"documentType\": \"schema:additionalType\", \"postalAddress\": { \"@id\": \"https://velocitynetwork.foundation/contexts#address\" }, \"authority\": { \"@id\": \"https://velocitynetwork.foundation/contexts#primaryOrganization\" }, \"validity\": { \"@id\": \"https://velocitynetwork.foundation/contexts#validity\" }, \"person\": { \"@id\": \"https://velocitynetwork.foundation/contexts#person\" }, \"identifier\": { \"@id\": \"schema:identifier\", \"@type\": \"@id\" }, \"nationality\": \"schema:addressCountry\" } }, \"Passport\": { \"@id\": \"https://velocitynetwork.foundation/contexts#Passport\", \"@context\": { \"documentCode\": \"schema:additionalType\", \"authority\": { \"@id\": \"https://velocitynetwork.foundation/contexts#primaryOrganization\" }, \"validity\": { \"@id\": \"https://velocitynetwork.foundation/contexts#validity\" }, \"person\": { \"@id\": \"https://velocitynetwork.foundation/contexts#person\" }, \"identifier\": { \"@id\": \"schema:identifier\", \"@type\": \"@id\" }, \"nationality\": \"schema:addressCountry\" } }, \"DriversLicense\": { \"@id\": \"https://velocitynetwork.foundation/contexts#DriversLicense\", \"@context\": { \"authority\": { \"@id\": \"https://velocitynetwork.foundation/contexts#primaryOrganization\" }, \"validity\": { \"@id\": \"https://velocitynetwork.foundation/contexts#validity\" }, \"person\": { \"@id\": \"https://velocitynetwork.foundation/contexts#person\" }, \"identifier\": { \"@id\": \"schema:identifier\", \"@type\": \"@id\" }, \"nationality\": \"schema:addressCountry\", \"address\": { \"@id\": \"https://velocitynetwork.foundation/contexts#address\" }, \"description\": \"schema:description\", \"endorsementCode\": { \"@id\": \"xsd:string\", \"@container\": \"@set\" }, \"restrictionCode\": { \"@id\": \"xsd:string\", \"@container\": \"@set\" }, \"alignment\": { \"@id\": \"https://velocitynetwork.foundation/contexts#alignment\", \"@container\": \"@set\" } } }, \"Employment\": { \"@id\": \"https://velocitynetwork.foundation/contexts#Employment\", \"@context\": { \"legalEmployer\": { \"@id\": \"https://velocitynetwork.foundation/contexts#primaryOrganization\" }, \"role\": \"schema:roleName\", \"description\": \"schema:description\", \"employmentType\": \"schema:employmentType\", \"startDate\": { \"@id\": \"https://velocitynetwork.foundation/contexts#startDate\", \"@type\": \"schema:Date\" }, \"endDate\": { \"@id\": \"https://velocitynetwork.foundation/contexts#endDate\", \"@type\": \"schema:Date\" }, \"place\": \"https://velocitynetwork.foundation/contexts#place\", \"alignment\": { \"@id\": \"https://velocitynetwork.foundation/contexts#alignment\", \"@container\": \"@set\" } } }, \"EducationDegree\": { \"@id\": \"https://velocitynetwork.foundation/contexts#EducationDegree\", \"@context\": { \"institution\": { \"@id\": \"https://velocitynetwork.foundation/contexts#primaryOrganization\" }, \"school\": { \"@id\": \"https://velocitynetwork.foundation/contexts#organization\" }, \"programName\": \"schema:name\", \"programType\": \"schema:programType\", \"programMode\": \"schema:educationalProgramMode\", \"degreeName\": \"schema:educationalCredentialAwarded\", \"degreeMajor\": \"ceterms:degreeMajor\", \"degreeMinor\": \"ceterms:degreeMinor\", \"description\": \"schema:description\", \"alignment\": { \"@id\": \"https://velocitynetwork.foundation/contexts#alignment\", \"@container\": \"@set\" }, \"registrationDate\": { \"@id\": \"https://velocitynetwork.foundation/contexts#registrationDate\", \"@type\": \"schema:Date\" }, \"conferredDate\": { \"@id\": \"https://velocitynetwork.foundation/contexts#conferredDate\", \"@type\": \"schema:Date\" }, \"startDate\": { \"@id\": \"https://velocitynetwork.foundation/contexts#startDate\", \"@type\": \"schema:Date\" }, \"endDate\": { \"@id\": \"https://velocitynetwork.foundation/contexts#endDate\", \"@type\": \"schema:Date\" }, \"honors\": \"xsd:string\", \"grade\": { \"@id\": \"https://velocitynetwork.foundation/contexts#score\" } } }, \"Course\": { \"@id\": \"https://velocitynetwork.foundation/contexts#Course\", \"@context\": { \"provider\": { \"@id\": \"https://velocitynetwork.foundation/contexts#primaryOrganization\" }, \"contentProvider\": { \"@id\": \"https://velocitynetwork.foundation/contexts#organization\" }, \"courseName\": \"schema:educationalCredentialAwarded\", \"courseCode\": \"schema:courseCode\", \"courseType\": \"schema:programType\", \"courseMode\": \"schema:educationalProgramMode\", \"courseLevel\": \"schema:educationalLevel\", \"courseDuration\": \"schema:timeToComplete\", \"description\": \"schema:description\", \"alignment\": { \"@id\": \"https://velocitynetwork.foundation/contexts#alignment\", \"@container\": \"@set\" }, \"grade\": { \"@id\": \"https://velocitynetwork.foundation/contexts#score\" }, \"registrationDate\": { \"@id\": \"https://velocitynetwork.foundation/contexts#registrationDate\", \"@type\": \"schema:Date\" }, \"startDate\": { \"@id\": \"https://velocitynetwork.foundation/contexts#startDate\", \"@type\": \"schema:Date\" }, \"completionDate\": { \"@id\": \"https://velocitynetwork.foundation/contexts#completionDate\", \"@type\": \"schema:Date\" } } }, \"AssessmentDimension\": { \"@id\": \"https://velocitynetwork.foundation/contexts#AssessmentDimension\", \"@context\": { \"name\": \"schema:name\", \"assesses\": \"schema:assesses\", \"description\": \"schema:description\", \"assessmentLevel\": \"schema:educationalLevel\", \"assessmentMethod\": \"ceterms:assessmentMethodDescription\", \"alignment\": { \"@id\": \"https://velocitynetwork.foundation/contexts#alignment\", \"@container\": \"@set\" }, \"score\": { \"@id\": \"https://velocitynetwork.foundation/contexts#score\" }, \"assessmentDate\": { \"@id\": \"https://velocitynetwork.foundation/contexts#assessmentDate\", \"@type\": \"schema:Date\" } } }, \"Assessment\": { \"@id\": \"https://velocitynetwork.foundation/contexts#Assessment\", \"@context\": { \"name\": \"schema:name\", \"assesses\": \"schema:assesses\", \"description\": \"schema:description\", \"assessmentLevel\": \"schema:educationalLevel\", \"assessmentMethod\": \"ceterms:assessmentMethodDescription\", \"alignment\": { \"@id\": \"https://velocitynetwork.foundation/contexts#alignment\", \"@container\": \"@set\" }, \"score\": { \"@id\": \"https://velocitynetwork.foundation/contexts#score\" }, \"assessmentDate\": { \"@id\": \"https://velocitynetwork.foundation/contexts#assessmentDate\", \"@type\": \"schema:Date\" }, \"authority\": { \"@id\": \"https://velocitynetwork.foundation/contexts#primaryOrganization\" }, \"assessmentDimensions\": { \"@id\": \"https://velocitynetwork.foundation/contexts#assessmentDimension\", \"@container\": \"@list\" } } }, \"Certification\": { \"@id\": \"https://velocitynetwork.foundation/contexts#Certification\", \"@context\": { \"name\": \"schema:name\", \"authority\": { \"@id\": \"https://velocitynetwork.foundation/contexts#primaryOrganization\" }, \"description\": \"schema:description\", \"identifier\": { \"@id\": \"schema:identifier\", \"@type\": \"@id\" }, \"validity\": { \"@id\": \"https://velocitynetwork.foundation/contexts#validity\" }, \"alignment\": { \"@id\": \"https://velocitynetwork.foundation/contexts#alignment\", \"@container\": \"@set\" } } }, \"License\": { \"@id\": \"https://velocitynetwork.foundation/contexts#License\", \"@context\": { \"name\": \"schema:name\", \"authority\": { \"@id\": \"https://velocitynetwork.foundation/contexts#primaryOrganization\" }, \"description\": \"schema:description\", \"identifier\": { \"@id\": \"schema:identifier\", \"@type\": \"@id\" }, \"validity\": { \"@id\": \"https://velocitynetwork.foundation/contexts#validity\" }, \"alignment\": { \"@id\": \"https://velocitynetwork.foundation/contexts#alignment\", \"@container\": \"@set\" }, \"endorsementCode\": { \"@id\": \"xsd:string\", \"@container\": \"@set\" }, \"restrictionCode\": { \"@id\": \"xsd:string\", \"@container\": \"@set\" } } }, \"Badge\": { \"@id\": \"https://velocitynetwork.foundation/contexts#License\", \"@context\": { \"hasCredential\": { \"@id\": \"https://velocitynetwork.foundation/contexts#hasCredential\" } } } } }" + + val Layer1v10JsonldQa = + "{ \"@context\": { \"id\": \"@id\", \"type\": \"@type\", \"schema\": \"http://schema.org/\", \"xsd\": \"https://www.w3.org/2001/XMLSchema#\", \"ob\": \"https://purl.imsglobal.org/spec/vc/ob/vocab.html#\", \"ceterms\": \"https://credreg.net/ctdl/terms/\", \"Address\": { \"@id\": \"https://velocitynetwork.foundation/contexts#Address\", \"@context\": { \"streetAddress\": \"schema:streetAddress\", \"addressLocality\": \"schema:addressLocality\", \"addressRegion\": \"schema:addressRegion\", \"postCode\": \"schema:postalCode\", \"addressCountry\": \"schema:addressCountry\" } }, \"Place\": { \"@id\": \"https://velocitynetwork.foundation/contexts#Place\", \"@context\": { \"name\": \"schema:name\", \"addressLocality\": \"schema:addressLocality\", \"addressRegion\": \"schema:addressRegion\", \"addressCountry\": \"schema:addressCountry\" } }, \"Validity\": { \"@id\": \"https://velocitynetwork.foundation/contexts#Validity\", \"@context\": { \"firstValidFrom\": { \"@id\": \"https://velocitynetwork.foundation/contexts#firstValidFrom\", \"@type\": \"schema:Date\" }, \"validFrom\": \"schema:validFrom\", \"validUntil\": \"schema:validUntil\", \"validIn\": { \"@id\": \"https://velocitynetwork.foundation/contexts#place\" } } }, \"Person\": { \"@id\": \"https://velocitynetwork.foundation/contexts#Person\", \"@context\": { \"givenName\": \"schema:givenName\", \"familyName\": \"schema:familyName\", \"middleName\": \"schema:additionalName\", \"namePrefix\": \"schema:honorificPrefix\", \"nameSuffix\": \"schema:honorificSuffix\", \"birthDate\": \"schema:birthDate\", \"birthPlace\": { \"@id\": \"https://velocitynetwork.foundation/contexts#place\" }, \"gender\": \"schema:gender\" } }, \"PersonName\": { \"@id\": \"https://velocitynetwork.foundation/contexts#PersonName\", \"@context\": { \"givenName\": \"schema:givenName\", \"familyName\": \"schema:familyName\", \"middleName\": \"schema:additionalName\", \"namePrefix\": \"schema:honorificPrefix\", \"nameSuffix\": \"schema:honorificSuffix\" } }, \"Organization\": { \"@id\": \"https://velocitynetwork.foundation/contexts#Organization\", \"@context\": { \"name\": \"schema:name\", \"identifier\": { \"@id\": \"schema:identifier\", \"@type\": \"@id\" }, \"place\": { \"@id\": \"https://velocitynetwork.foundation/contexts#place\" } } }, \"PrimaryOrganization\": \"Organization\", \"ObiProfile\": { \"@id\": \"https://velocitynetwork.foundation/contexts#ObiProfile\", \"@context\": { \"id\": \"@id\", \"type\": \"@type\" } }, \"PrimarySourceProfile\": \"ObiProfile\", \"AlignmentObject\": { \"@id\": \"https://velocitynetwork.foundation/contexts#AlignmentObject\", \"@context\": { \"targetCode\": { \"@id\": \"ob:targetCode\", \"@type\": \"xsd:string\" }, \"targetDescription\": \"schema:targetDescription\", \"targetFramework\": \"schema:targetFramework\", \"targetName\": \"schema:targetName\", \"targetType\": { \"@id\": \"ob:targetType\", \"@type\": \"xsd:string\" }, \"targetUrl\": { \"@id\": \"schema:targetUrl\", \"@type\": \"xsd:anyURI\" } } }, \"Score\": { \"@id\": \"https://velocitynetwork.foundation/contexts#Score\", \"@context\": { \"scoreMethod\": { \"@id\": \"https://velocitynetwork.foundation/contexts#scoreMethod\" }, \"scoreValue\": { \"@id\": \"https://velocitynetwork.foundation/contexts#scoreValue\", \"@type\": \"xsd:string\" }, \"result\": { \"@id\": \"https://velocitynetwork.foundation/contexts#result\", \"@type\": \"xsd:string\" }, \"passFail\": { \"@id\": \"https://velocitynetwork.foundation/contexts#passFail\", \"@type\": \"xsd:string\" } } }, \"ScoreMethod\": { \"@id\": \"https://velocitynetwork.foundation/contexts#ScoreMethod\", \"@context\": { \"scoreMethodType\": \"ceterms:scoringMethodType\", \"scoreMethodDescription\": \"ceterms:scoringMethodDescription\", \"alignment\": { \"@id\": \"https://velocitynetwork.foundation/contexts#alignment\", \"@container\": \"@set\" }, \"passingScore\": \"ceterms:requires\" } }, \"Email\": { \"@id\": \"https://velocitynetwork.foundation/contexts#Email\", \"@context\": { \"email\": \"schema:email\" } }, \"Phone\": { \"@id\": \"https://velocitynetwork.foundation/contexts#Phone\", \"@context\": { \"phone\": \"schema:telephone\" } }, \"IdDocument\": { \"@id\": \"https://velocitynetwork.foundation/contexts#IdDocument\", \"@context\": { \"documentType\": \"schema:additionalType\", \"postalAddress\": { \"@id\": \"https://velocitynetwork.foundation/contexts#address\" }, \"authority\": { \"@id\": \"https://velocitynetwork.foundation/contexts#primaryOrganization\" }, \"validity\": { \"@id\": \"https://velocitynetwork.foundation/contexts#validity\" }, \"person\": { \"@id\": \"https://velocitynetwork.foundation/contexts#person\" }, \"identifier\": { \"@id\": \"schema:identifier\", \"@type\": \"@id\" }, \"nationality\": \"schema:addressCountry\" } }, \"Passport\": { \"@id\": \"https://velocitynetwork.foundation/contexts#Passport\", \"@context\": { \"documentCode\": \"schema:additionalType\", \"authority\": { \"@id\": \"https://velocitynetwork.foundation/contexts#primaryOrganization\" }, \"validity\": { \"@id\": \"https://velocitynetwork.foundation/contexts#validity\" }, \"person\": { \"@id\": \"https://velocitynetwork.foundation/contexts#person\" }, \"identifier\": { \"@id\": \"schema:identifier\", \"@type\": \"@id\" }, \"nationality\": \"schema:addressCountry\" } }, \"DriversLicense\": { \"@id\": \"https://velocitynetwork.foundation/contexts#DriversLicense\", \"@context\": { \"authority\": { \"@id\": \"https://velocitynetwork.foundation/contexts#primaryOrganization\" }, \"validity\": { \"@id\": \"https://velocitynetwork.foundation/contexts#validity\" }, \"person\": { \"@id\": \"https://velocitynetwork.foundation/contexts#person\" }, \"identifier\": { \"@id\": \"schema:identifier\", \"@type\": \"@id\" }, \"nationality\": \"schema:addressCountry\", \"address\": { \"@id\": \"https://velocitynetwork.foundation/contexts#address\" }, \"description\": \"schema:description\", \"endorsementCode\": { \"@id\": \"xsd:string\", \"@container\": \"@set\" }, \"restrictionCode\": { \"@id\": \"xsd:string\", \"@container\": \"@set\" }, \"alignment\": { \"@id\": \"https://velocitynetwork.foundation/contexts#alignment\", \"@container\": \"@set\" } } }, \"Employment\": { \"@id\": \"https://velocitynetwork.foundation/contexts#Employment\", \"@context\": { \"legalEmployer\": { \"@id\": \"https://velocitynetwork.foundation/contexts#primaryOrganization\" }, \"role\": \"schema:roleName\", \"description\": \"schema:description\", \"employmentType\": \"schema:employmentType\", \"startDate\": { \"@id\": \"https://velocitynetwork.foundation/contexts#startDate\", \"@type\": \"schema:Date\" }, \"endDate\": { \"@id\": \"https://velocitynetwork.foundation/contexts#endDate\", \"@type\": \"schema:Date\" }, \"place\": \"https://velocitynetwork.foundation/contexts#place\", \"alignment\": { \"@id\": \"https://velocitynetwork.foundation/contexts#alignment\", \"@container\": \"@set\" }, \"recipient\": { \"@id\": \"https://velocitynetwork.foundation/contexts#personName\" } } }, \"EducationDegree\": { \"@id\": \"https://velocitynetwork.foundation/contexts#EducationDegree\", \"@context\": { \"institution\": { \"@id\": \"https://velocitynetwork.foundation/contexts#primaryOrganization\" }, \"school\": { \"@id\": \"https://velocitynetwork.foundation/contexts#organization\" }, \"programName\": \"schema:name\", \"programType\": \"schema:programType\", \"programMode\": \"schema:educationalProgramMode\", \"degreeName\": \"schema:educationalCredentialAwarded\", \"degreeMajor\": \"ceterms:degreeMajor\", \"degreeMinor\": \"ceterms:degreeMinor\", \"description\": \"schema:description\", \"alignment\": { \"@id\": \"https://velocitynetwork.foundation/contexts#alignment\", \"@container\": \"@set\" }, \"registrationDate\": { \"@id\": \"https://velocitynetwork.foundation/contexts#registrationDate\", \"@type\": \"schema:Date\" }, \"conferredDate\": { \"@id\": \"https://velocitynetwork.foundation/contexts#conferredDate\", \"@type\": \"schema:Date\" }, \"startDate\": { \"@id\": \"https://velocitynetwork.foundation/contexts#startDate\", \"@type\": \"schema:Date\" }, \"endDate\": { \"@id\": \"https://velocitynetwork.foundation/contexts#endDate\", \"@type\": \"schema:Date\" }, \"honors\": \"xsd:string\", \"grade\": { \"@id\": \"https://velocitynetwork.foundation/contexts#score\" }, \"recipient\": { \"@id\": \"https://velocitynetwork.foundation/contexts#personName\" } } }, \"Course\": { \"@id\": \"https://velocitynetwork.foundation/contexts#Course\", \"@context\": { \"provider\": { \"@id\": \"https://velocitynetwork.foundation/contexts#primaryOrganization\" }, \"contentProvider\": { \"@id\": \"https://velocitynetwork.foundation/contexts#organization\" }, \"courseName\": \"schema:educationalCredentialAwarded\", \"courseCode\": \"schema:courseCode\", \"courseType\": \"schema:programType\", \"courseMode\": \"schema:educationalProgramMode\", \"courseLevel\": \"schema:educationalLevel\", \"courseDuration\": \"schema:timeToComplete\", \"description\": \"schema:description\", \"alignment\": { \"@id\": \"https://velocitynetwork.foundation/contexts#alignment\", \"@container\": \"@set\" }, \"grade\": { \"@id\": \"https://velocitynetwork.foundation/contexts#score\" }, \"registrationDate\": { \"@id\": \"https://velocitynetwork.foundation/contexts#registrationDate\", \"@type\": \"schema:Date\" }, \"startDate\": { \"@id\": \"https://velocitynetwork.foundation/contexts#startDate\", \"@type\": \"schema:Date\" }, \"completionDate\": { \"@id\": \"https://velocitynetwork.foundation/contexts#completionDate\", \"@type\": \"schema:Date\" }, \"recipient\": { \"@id\": \"https://velocitynetwork.foundation/contexts#personName\" } } }, \"AssessmentDimension\": { \"@id\": \"https://velocitynetwork.foundation/contexts#AssessmentDimension\", \"@context\": { \"name\": \"schema:name\", \"assesses\": \"schema:assesses\", \"description\": \"schema:description\", \"assessmentLevel\": \"schema:educationalLevel\", \"assessmentMethod\": \"ceterms:assessmentMethodDescription\", \"alignment\": { \"@id\": \"https://velocitynetwork.foundation/contexts#alignment\", \"@container\": \"@set\" }, \"score\": { \"@id\": \"https://velocitynetwork.foundation/contexts#score\" }, \"assessmentDate\": { \"@id\": \"https://velocitynetwork.foundation/contexts#assessmentDate\", \"@type\": \"schema:Date\" } } }, \"Assessment\": { \"@id\": \"https://velocitynetwork.foundation/contexts#Assessment\", \"@context\": { \"name\": \"schema:name\", \"assesses\": \"schema:assesses\", \"description\": \"schema:description\", \"assessmentLevel\": \"schema:educationalLevel\", \"assessmentMethod\": \"ceterms:assessmentMethodDescription\", \"alignment\": { \"@id\": \"https://velocitynetwork.foundation/contexts#alignment\", \"@container\": \"@set\" }, \"score\": { \"@id\": \"https://velocitynetwork.foundation/contexts#score\" }, \"assessmentDate\": { \"@id\": \"https://velocitynetwork.foundation/contexts#assessmentDate\", \"@type\": \"schema:Date\" }, \"authority\": { \"@id\": \"https://velocitynetwork.foundation/contexts#primaryOrganization\" }, \"assessmentDimensions\": { \"@id\": \"https://velocitynetwork.foundation/contexts#assessmentDimension\", \"@container\": \"@list\" }, \"recipient\": { \"@id\": \"https://velocitynetwork.foundation/contexts#personName\" } } }, \"CertificationLicense\": { \"@id\": \"https://velocitynetwork.foundation/contexts#CertificationLicense\", \"@context\": { \"name\": \"schema:name\", \"authority\": { \"@id\": \"https://velocitynetwork.foundation/contexts#primaryOrganization\" }, \"description\": \"schema:description\", \"identifier\": { \"@id\": \"schema:identifier\", \"@type\": \"@id\" }, \"validity\": { \"@id\": \"https://velocitynetwork.foundation/contexts#validity\" }, \"alignment\": { \"@id\": \"https://velocitynetwork.foundation/contexts#alignment\", \"@container\": \"@set\" }, \"endorsementCode\": { \"@id\": \"xsd:string\", \"@container\": \"@set\" }, \"restrictionCode\": { \"@id\": \"xsd:string\", \"@container\": \"@set\" }, \"recipient\": { \"@id\": \"https://velocitynetwork.foundation/contexts#personName\" } } }, \"Badge\": { \"@id\": \"https://velocitynetwork.foundation/contexts#Badge\", \"@context\": { \"issuer\": { \"@id\": \"https://velocitynetwork.foundation/contexts#primarySourceProfile\" }, \"hasCredential\": { \"@id\": \"https://velocitynetwork.foundation/contexts#hasCredential\" }, \"recipient\": { \"@id\": \"https://velocitynetwork.foundation/contexts#personName\" } } }, \"AchievementSubject\": { \"@id\": \"https://velocitynetwork.foundation/contexts#Badge\", \"@context\": { \"source\": { \"@id\": \"https://velocitynetwork.foundation/contexts#primarySourceProfile\", \"@type\": \"@id\" } } } } }" } } \ No newline at end of file diff --git a/VCL/src/test/java/io/velocitycareerlabs/infrastructure/resources/valid/VerifiedProfileMocks.kt b/VCL/src/test/java/io/velocitycareerlabs/infrastructure/resources/valid/VerifiedProfileMocks.kt index 70d2918..4202a43 100644 --- a/VCL/src/test/java/io/velocitycareerlabs/infrastructure/resources/valid/VerifiedProfileMocks.kt +++ b/VCL/src/test/java/io/velocitycareerlabs/infrastructure/resources/valid/VerifiedProfileMocks.kt @@ -45,5 +45,8 @@ class VerifiedProfileMocks { const val VerifiedProfileWithoutServices = "{\"id\":\"ea3e1eac-a9f2-44f4-acbc-258f6f71dc34\",\"type\":[\"OrganizationBasicProfile-v1.0\",\"VerifiableCredential\"],\"issuer\":{\"id\":\"did:velocity:0x7c98a6cea317ec176ba865a42d3eae639dfe9fb1\"},\"credentialSubject\":{\"name\":\"Precheck (Identity Issuer)\",\"location\":{\"countryCode\":\"US\",\"regionCode\":\"NY\"},\"logo\":\"https:\\/\\/docs.velocitycareerlabs.io\\/Logos\\/precheck.png\",\"website\":\"https:\\/\\/www.velocitynetwork.foundation\",\"contactEmail\":\"example@mail.com\",\"technicalEmail\":\"technical@mail.com\",\"description\":\"Identity Issuer org\",\"founded\":\"1960\",\"type\":\"company\",\"id\":\"did:ion:EiDxTq5ZHLjy8K-U9vN8Z3r8kFvguZZHMM48IWenDe81aQ\",\"permittedVelocityServiceCategory\":[],\"createdAt\":\"2023-04-13T07:57:55.126Z\",\"updatedAt\":\"2023-07-13T05:48:47.503Z\",\"supportsSecureMessages\":false},\"issued\":\"2023-07-13T05:48:47.000Z\",\"credentialChecks\":{\"checked\":\"2023-07-13T10:16:22.412Z\",\"TRUSTED_ISSUER\":\"PASS\",\"UNREVOKED\":\"NOT_CHECKED\",\"UNEXPIRED\":\"NOT_APPLICABLE\",\"UNTAMPERED\":\"PASS\"}}" + + const val VerifiedProfileIssuerInspectorMicrosoftQa = + "{\"id\":\"9ee256a7-808c-4258-b2ee-d52d9fc3c3ef\",\"type\":[\"OrganizationBasicProfile-v1.0\",\"VerifiableCredential\"],\"issuer\":{\"id\":\"did:velocity:0x7c98a6cea317ec176ba865a42d3eae639dfe9fb1\"},\"credentialSubject\":{\"name\":\"Microsoft Corporation\",\"location\":{\"countryCode\":\"US\",\"regionCode\":\"WA\"},\"logo\":\"https:\\/\\/agsol.com\\/wp-content\\/uploads\\/2018\\/09\\/new-microsoft-logo-SIZED-SQUARE.jpg\",\"website\":\"https:\\/\\/www.velocitycareerlabs.com\\/\",\"contactEmail\":\"support@velocitynetwork.foundation\",\"technicalEmail\":\"support@velocitynetwork.foundation\",\"description\":\"Microsoft test org\",\"founded\":\"1976-01-01\",\"type\":\"company\",\"physicalAddress\":{\"line1\":\"xxxx\",\"line2\":\"xxxx\",\"line3\":\"xxxx\",\"regionCode\":\"XX-XX\",\"countryCode\":\"XX\",\"postcode\":\"xxxx\"},\"linkedInProfile\":\"https:\\/\\/xxxx.xxx\",\"id\":\"did:ion:EiD1qr0ZJfTuDjdrVgAQTxlYUGzl3yimlF1YP-cor6zdsg\",\"permittedVelocityServiceCategory\":[\"Issuer\",\"Inspector\"],\"createdAt\":\"2023-03-30T09:06:26.167Z\",\"updatedAt\":\"2023-06-16T08:49:02.372Z\",\"supportsSecureMessages\":false},\"issued\":\"2023-10-04T23:15:06.000Z\",\"credentialChecks\":{\"checked\":\"2024-02-21T13:14:18.482Z\",\"TRUSTED_ISSUER\":\"PASS\",\"UNREVOKED\":\"NOT_CHECKED\",\"UNEXPIRED\":\"NOT_APPLICABLE\",\"UNTAMPERED\":\"PASS\"}}" } } \ No newline at end of file diff --git a/VCL/src/test/java/io/velocitycareerlabs/verifiers/CredentialIssuerVerifierTest.kt b/VCL/src/test/java/io/velocitycareerlabs/verifiers/CredentialIssuerVerifierTest.kt index 13e0c82..a4db9b3 100644 --- a/VCL/src/test/java/io/velocitycareerlabs/verifiers/CredentialIssuerVerifierTest.kt +++ b/VCL/src/test/java/io/velocitycareerlabs/verifiers/CredentialIssuerVerifierTest.kt @@ -47,6 +47,7 @@ internal class CredentialIssuerVerifierTest { private lateinit var subject11: CredentialIssuerVerifier private lateinit var subject12: CredentialIssuerVerifier private lateinit var subject13: CredentialIssuerVerifier + private lateinit var subjectQa: CredentialIssuerVerifier private val OffersMock = VCLOffers(JSONObject(), listOf(), 1, VCLToken(""), "") @@ -62,6 +63,10 @@ internal class CredentialIssuerVerifierTest { private lateinit var finalizeOffersDescriptorOfIdentityIssuer: VCLFinalizeOffersDescriptor private lateinit var credentialManifestFromIdentityIssuer: VCLCredentialManifest + private lateinit var finalizeOffersDescriptorOfMicrosoftQa: VCLFinalizeOffersDescriptor + private lateinit var CredentialManifestForValidCredentialMicrsoftQa: VCLCredentialManifest + private lateinit var CredentialManifestForInvalidCredentialMicrsoftQa: VCLCredentialManifest + @Before fun setUp() { setUpSubjectProperties() @@ -116,6 +121,23 @@ internal class CredentialIssuerVerifierTest { approvedOfferIds = listOf(), rejectedOfferIds = listOf() ) + + CredentialManifestForValidCredentialMicrsoftQa = VCLCredentialManifest( + jwt = VCLJwt(CredentialManifestMocks.JwtCredentialManifestForValidCredentialMicrsoftQa), + verifiedProfile = VCLVerifiedProfile(VerifiedProfileMocks.VerifiedProfileIssuerInspectorMicrosoftQa.toJsonObject()!!), + didJwk = DidJwkMocks.DidJwk + ) + CredentialManifestForInvalidCredentialMicrsoftQa = VCLCredentialManifest( + jwt = VCLJwt(CredentialManifestMocks.JwtCredentialManifestForInvalidCredentialMicrsoftQa), + verifiedProfile = VCLVerifiedProfile(VerifiedProfileMocks.VerifiedProfileIssuerInspectorMicrosoftQa.toJsonObject()!!), + didJwk = DidJwkMocks.DidJwk + ) + finalizeOffersDescriptorOfMicrosoftQa = VCLFinalizeOffersDescriptor( + credentialManifest = CredentialManifestForValidCredentialMicrsoftQa, + offers = OffersMock, + approvedOfferIds = listOf(), + rejectedOfferIds = listOf() + ) } private fun setUpSubjects() { @@ -197,6 +219,46 @@ internal class CredentialIssuerVerifierTest { ), NetworkServiceSuccess(validResponse = JsonLdMocks.Layer1v10JsonldWithoutPrimaryOrganization), ) + subjectQa = CredentialIssuerVerifierImpl( + CredentialTypesModelMock( + issuerCategory = CredentialTypesModelMock.issuerCategoryRegularIssuer + ), + NetworkServiceSuccess(validResponse = JsonLdMocks.Layer1v10JsonldQa) + ) + } + + @Test + fun testVerifyMicrosoftValidCredentialQa() { + subjectQa.verifyCredentials( + jwtCredentials = CredentialMocks.JwtValidEmploymentCredentialsFromMicrosoftQa.toJwtList()!!, + finalizeOffersDescriptor = finalizeOffersDescriptorOfMicrosoftQa + ) { verificationResult -> + verificationResult.handleResult( + successHandler = { + assert(it) + }, + errorHandler = { error -> + assert(false) { "${error.toJsonObject()}" } + } + ) + } + } + + @Test + fun testVerifyMicrosoftInvalidCredentialQa() { + subjectQa.verifyCredentials( + jwtCredentials = CredentialMocks.JwtInvalidEmploymentCredentialsFromMicrosoftQa.toJwtList()!!, + finalizeOffersDescriptor = finalizeOffersDescriptorOfMicrosoftQa + ) { verificationResult -> + verificationResult.handleResult( + successHandler = { + assert(false) { "${VCLErrorCode.IssuerRequiresNotaryPermission.value} error code is expected" } + }, + errorHandler = { error -> + assert(error.errorCode == VCLErrorCode.IssuerRequiresNotaryPermission.value) + } + ) + } } // @Test