-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
PYIC-7961: pass only dcmaw VC to DL cri (#2913)
- Loading branch information
Showing
4 changed files
with
112 additions
and
12 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -47,6 +47,8 @@ class SharedClaimsHelperTest { | |
SHARED_CLAIM_ATTR_SOCIAL_SECURITY_RECORD, | ||
SHARED_CLAIM_ATTR_DRIVING_PERMIT); | ||
|
||
private static final Cri TEST_CRI = Cri.DCMAW; | ||
|
||
private static final String TEST_EMAIL = "[email protected]"; | ||
private static final Name TEST_NAME = createName("Test", "User"); | ||
private static final BirthDate TEST_DOB = createBirthDate("1970-01-01"); | ||
|
@@ -76,7 +78,7 @@ void generatesSharedClaimsForAllSupportedAttributes() { | |
.drivingPermit(List.of(TEST_DRIVING_PERMIT)) | ||
.build())); | ||
|
||
var sharedClaims = generateSharedClaims(TEST_EMAIL, vcs, ALL_ATTRIBUTES); | ||
var sharedClaims = generateSharedClaims(TEST_EMAIL, vcs, ALL_ATTRIBUTES, TEST_CRI); | ||
|
||
assertEquals(TEST_EMAIL, sharedClaims.getEmailAddress()); | ||
assertEquals(Set.of(TEST_NAME), sharedClaims.getName()); | ||
|
@@ -86,9 +88,85 @@ void generatesSharedClaimsForAllSupportedAttributes() { | |
assertEquals(Set.of(TEST_DRIVING_PERMIT), sharedClaims.getDrivingPermit()); | ||
} | ||
|
||
@Test | ||
void | ||
generatesSharedClaimsShouldNotReturnDrivingPermitSharedClaimFromDrivingLicenceIfTargetCriIsDrivingLicence() { | ||
var dlCredentialSubjectBuilder = | ||
TestVc.TestCredentialSubject.builder() | ||
.name(List.of(Map.of(VC_NAME_PARTS, TEST_NAME.getNameParts()))) | ||
.birthDate(List.of(TEST_DOB)) | ||
.socialSecurityRecord(List.of(TEST_NINO)); | ||
|
||
var updatedTestDrivingPermit = | ||
createDrivingPermitDetails("another-number", "2062-02-02", "ISSUER", "2005-02-02"); | ||
|
||
var anotherDrivingPermit = | ||
createDrivingPermitDetails("another-number1", "2062-02-02", "ISSUER", "2005-02-02"); | ||
var vcs = | ||
List.of( | ||
generateIdentityVc( | ||
dlCredentialSubjectBuilder | ||
.drivingPermit(List.of(TEST_DRIVING_PERMIT)) | ||
.build(), | ||
Cri.DRIVING_LICENCE), | ||
generateIdentityVc( | ||
dlCredentialSubjectBuilder | ||
.drivingPermit(List.of(updatedTestDrivingPermit)) | ||
.build(), | ||
Cri.DCMAW), | ||
generateIdentityVc( | ||
dlCredentialSubjectBuilder | ||
.drivingPermit(List.of(anotherDrivingPermit)) | ||
.build(), | ||
Cri.DRIVING_LICENCE)); | ||
|
||
var sharedClaims = | ||
generateSharedClaims( | ||
TEST_EMAIL, | ||
vcs, | ||
List.of(SHARED_CLAIM_ATTR_DRIVING_PERMIT), | ||
Cri.DRIVING_LICENCE); | ||
|
||
assertEquals(1, sharedClaims.getDrivingPermit().size()); | ||
assertEquals(Set.of(updatedTestDrivingPermit), sharedClaims.getDrivingPermit()); | ||
} | ||
|
||
@Test | ||
void | ||
generatesSharedClaimsShouldReturnDrivingPermitFromDrivingLicenceCriIfTargetCriIsNotDrivingLicence() { | ||
var dlCredentialSubjectBuilder = | ||
TestVc.TestCredentialSubject.builder() | ||
.name(List.of(Map.of(VC_NAME_PARTS, TEST_NAME.getNameParts()))) | ||
.birthDate(List.of(TEST_DOB)) | ||
.socialSecurityRecord(List.of(TEST_NINO)); | ||
|
||
var updatedTestDrivingPermit = | ||
createDrivingPermitDetails("another-number", "2062-02-02", "ISSUER", "2005-02-02"); | ||
var vcs = | ||
List.of( | ||
generateIdentityVc( | ||
dlCredentialSubjectBuilder | ||
.drivingPermit(List.of(TEST_DRIVING_PERMIT)) | ||
.build(), | ||
Cri.DRIVING_LICENCE), | ||
generateIdentityVc( | ||
dlCredentialSubjectBuilder | ||
.drivingPermit(List.of(updatedTestDrivingPermit)) | ||
.build(), | ||
Cri.DRIVING_LICENCE)); | ||
|
||
var sharedClaims = | ||
generateSharedClaims( | ||
TEST_EMAIL, vcs, List.of(SHARED_CLAIM_ATTR_DRIVING_PERMIT), TEST_CRI); | ||
|
||
assertEquals( | ||
Set.of(TEST_DRIVING_PERMIT, updatedTestDrivingPermit), | ||
sharedClaims.getDrivingPermit()); | ||
} | ||
|
||
@Test | ||
void generatesEmptySetsIfNoAttributePresent() { | ||
var sharedClaims = generateSharedClaims(TEST_EMAIL, List.of(), ALL_ATTRIBUTES); | ||
var sharedClaims = generateSharedClaims(TEST_EMAIL, List.of(), ALL_ATTRIBUTES, TEST_CRI); | ||
|
||
assertTrue(sharedClaims.getName().isEmpty()); | ||
assertTrue(sharedClaims.getBirthDate().isEmpty()); | ||
|
@@ -117,7 +195,7 @@ void doesNotIncludeClaimsIfNoneAllowed() { | |
.drivingPermit(List.of(TEST_DRIVING_PERMIT)) | ||
.build())); | ||
|
||
var sharedClaims = generateSharedClaims(TEST_EMAIL, vcs, List.of()); | ||
var sharedClaims = generateSharedClaims(TEST_EMAIL, vcs, List.of(), TEST_CRI); | ||
|
||
assertNull(sharedClaims.getEmailAddress()); | ||
assertNull(sharedClaims.getName()); | ||
|
@@ -136,7 +214,7 @@ void doesNotIncludeAddressFromNonAddressVc() { | |
.address(List.of(TEST_ADDRESS)) | ||
.build())); | ||
|
||
var sharedClaims = generateSharedClaims(TEST_EMAIL, vcs, ALL_ATTRIBUTES); | ||
var sharedClaims = generateSharedClaims(TEST_EMAIL, vcs, ALL_ATTRIBUTES, TEST_CRI); | ||
|
||
assertTrue(sharedClaims.getAddress().isEmpty()); | ||
} | ||
|
@@ -165,7 +243,7 @@ void doesNotIncludeFailedVcAttributes() { | |
.evidence(DCMAW_FAILED_EVIDENCE) | ||
.build())); | ||
|
||
var sharedClaims = generateSharedClaims(TEST_EMAIL, vcs, ALL_ATTRIBUTES); | ||
var sharedClaims = generateSharedClaims(TEST_EMAIL, vcs, ALL_ATTRIBUTES, TEST_CRI); | ||
|
||
assertTrue(sharedClaims.getName().isEmpty()); | ||
assertTrue(sharedClaims.getBirthDate().isEmpty()); | ||
|
@@ -216,7 +294,7 @@ void includesMultipleAttributes() { | |
.drivingPermit(List.of(otherDrivingPermit)) | ||
.build())); | ||
|
||
var sharedClaims = generateSharedClaims(TEST_EMAIL, vcs, ALL_ATTRIBUTES); | ||
var sharedClaims = generateSharedClaims(TEST_EMAIL, vcs, ALL_ATTRIBUTES, TEST_CRI); | ||
|
||
assertEquals(Set.of(TEST_NAME, otherName), sharedClaims.getName()); | ||
assertEquals(Set.of(TEST_DOB, otherDob), sharedClaims.getBirthDate()); | ||
|
@@ -261,7 +339,7 @@ void deduplicatesAttributes() { | |
.drivingPermit(List.of(TEST_DRIVING_PERMIT)) | ||
.build())); | ||
|
||
var sharedClaims = generateSharedClaims(TEST_EMAIL, vcs, ALL_ATTRIBUTES); | ||
var sharedClaims = generateSharedClaims(TEST_EMAIL, vcs, ALL_ATTRIBUTES, TEST_CRI); | ||
|
||
assertEquals(Set.of(TEST_NAME), sharedClaims.getName()); | ||
assertEquals(Set.of(TEST_DOB), sharedClaims.getBirthDate()); | ||
|
@@ -271,9 +349,13 @@ void deduplicatesAttributes() { | |
} | ||
|
||
private VerifiableCredential generateIdentityVc(TestVc.TestCredentialSubject subject) { | ||
return generateIdentityVc(subject, Cri.DCMAW); | ||
} | ||
|
||
private VerifiableCredential generateIdentityVc(TestVc.TestCredentialSubject subject, Cri cri) { | ||
return generateVerifiableCredential( | ||
TEST_SUBJECT, | ||
Cri.DCMAW, | ||
cri, | ||
TestVc.builder() | ||
.credentialSubject(subject) | ||
.evidence(DCMAW_EVIDENCE_VRI_CHECK) | ||
|