Skip to content

Commit d1bae3a

Browse files
committed
tests: added tests from patch DefaultCredentialsHandlerTest.patch
1 parent 263aec9 commit d1bae3a

File tree

1 file changed

+59
-0
lines changed

1 file changed

+59
-0
lines changed

backends/credhub/src/test/java/org/cloudfoundry/credhub/handlers/DefaultCredentialsHandlerTest.java

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@
5656
import static java.util.Collections.EMPTY_SET;
5757
import static java.util.Collections.emptyList;
5858
import static org.assertj.core.api.Assertions .fail;
59+
import static org.cloudfoundry.credhub.requests.CertificateGenerationRequestParameters.CRL_SIGN;
60+
import static org.cloudfoundry.credhub.requests.CertificateGenerationRequestParameters.KEY_CERT_SIGN;
5961
import static org.hamcrest.MatcherAssert.assertThat;
6062
import static org.hamcrest.Matchers.hasSize;
6163
import static org.hamcrest.Matchers.samePropertyValuesAs;
@@ -81,6 +83,7 @@ public class DefaultCredentialsHandlerTest {
8183
private DefaultCredentialsHandler subjectWithAcls;
8284
private DefaultCredentialsHandler subjectWithoutAcls;
8385
private DefaultCredentialsHandler subjectWithAclsAndConcatenate;
86+
private DefaultCredentialsHandler subjectWithDefaultCAKeyUsages;
8487
private DefaultCredentialService credentialService;
8588
private CEFAuditRecord auditRecord;
8689
private PermissionCheckingService permissionCheckingService;
@@ -139,6 +142,17 @@ public void beforeEach() {
139142
true,
140143
false);
141144

145+
subjectWithDefaultCAKeyUsages = new DefaultCredentialsHandler(
146+
credentialService,
147+
auditRecord,
148+
permissionCheckingService,
149+
userContextHolder,
150+
certificateAuthorityService,
151+
universalCredentialGenerator,
152+
true,
153+
false,
154+
true);
155+
142156
generationParameters = new StringGenerationParameters();
143157
UserContext userContext = mock(UserContext.class);
144158
when(userContext.getActor()).thenReturn(USER);
@@ -1023,4 +1037,49 @@ public void findContainingName_withAclsDisabled_returnsUnfilteredCredentials() {
10231037
verify(permissionCheckingService, times(0)).findAllPathsByActor(any());
10241038
}
10251039

1040+
@Test
1041+
public void generateCredential_whenCertificateWithIsCaAndNoKeyUsagesAndDefaultCAKeyUsagesEnabled_setsDefaultKeyUsages() {
1042+
CertificateGenerationRequestParameters requestParameters = new CertificateGenerationRequestParameters();
1043+
requestParameters.setCa(true);
1044+
requestParameters.setKeyUsage(null);
1045+
1046+
CertificateGenerateRequest generateRequest = new CertificateGenerateRequest();
1047+
generateRequest.setRequestGenerationParameters(requestParameters);
1048+
generateRequest.setName(CREDENTIAL_NAME);
1049+
generateRequest.setType(CredentialType.CERTIFICATE.toString());
1050+
1051+
when(permissionCheckingService.hasPermission(USER, CREDENTIAL_NAME, PermissionOperation.WRITE))
1052+
.thenReturn(true);
1053+
when(credentialService.findActiveByName(CREDENTIAL_NAME))
1054+
.thenReturn(emptyList());
1055+
1056+
final CertificateCredentialValue generatedValue = new CertificateCredentialValue(
1057+
null,
1058+
TestConstants.TEST_CA,
1059+
TestConstants.TEST_PRIVATE_KEY,
1060+
null,
1061+
true,
1062+
false,
1063+
false,
1064+
false
1065+
);
1066+
final CertificateCredentialVersion credentialVersion = new CertificateCredentialVersion(CREDENTIAL_NAME);
1067+
credentialVersion.setCa(generatedValue.getCa());
1068+
credentialVersion.setEncryptor(encryptor);
1069+
credentialVersion.setCertificate(generatedValue.getCertificate());
1070+
credentialVersion.setPrivateKey(generatedValue.getPrivateKey());
1071+
credentialVersion.setUuid(UUID.randomUUID());
1072+
credentialVersion.getCredential().setUuid(UUID.randomUUID());
1073+
credentialVersion.setVersionCreatedAt(VERSION1_CREATED_AT);
1074+
1075+
when(universalCredentialGenerator.generate(any())).thenReturn(generatedValue);
1076+
when(credentialService.save(any(), any(), any())).thenReturn(credentialVersion);
1077+
1078+
subjectWithDefaultCAKeyUsages.generateCredential(generateRequest);
1079+
1080+
ArgumentCaptor<CertificateGenerateRequest> requestCaptor = ArgumentCaptor.forClass(CertificateGenerateRequest.class);
1081+
verify(universalCredentialGenerator).generate(requestCaptor.capture());
1082+
CertificateGenerationRequestParameters capturedParams = requestCaptor.getValue().getGenerationRequestParameters();
1083+
assertThat(capturedParams.getKeyUsage(), equalTo(new String[]{KEY_CERT_SIGN, CRL_SIGN}));
1084+
}
10261085
}

0 commit comments

Comments
 (0)