From 319c9b3432bd42726a7df216aa9eaa8c7558924b Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Fri, 19 Apr 2024 15:18:35 +0200 Subject: [PATCH] OZG-4906 add tests to copy and update es crt --- .../OzgCloudElasticsearchServiceTest.java | 95 ++++++++++++++++++- 1 file changed, 93 insertions(+), 2 deletions(-) diff --git a/ozgcloud-elasticsearch-operator/src/test/java/de/ozgcloud/operator/OzgCloudElasticsearchServiceTest.java b/ozgcloud-elasticsearch-operator/src/test/java/de/ozgcloud/operator/OzgCloudElasticsearchServiceTest.java index 0c5b0ab..0af051e 100644 --- a/ozgcloud-elasticsearch-operator/src/test/java/de/ozgcloud/operator/OzgCloudElasticsearchServiceTest.java +++ b/ozgcloud-elasticsearch-operator/src/test/java/de/ozgcloud/operator/OzgCloudElasticsearchServiceTest.java @@ -441,8 +441,7 @@ class OzgCloudElasticsearchServiceTest { .addToData(SERVER_CERTIFICATE_SECRET_DATA_KEY, SERVER_CERTIFICATE_SECRET_DATA) .build(); private static final Secret CREDENTIAL_SECRET = SecretTestFactory.create(); - @Mock - private OzgCloudElasticsearchServerProperties serverProperties; + @Mock private ResourceAdapter<Secret> resourceAdapter; @@ -480,4 +479,96 @@ class OzgCloudElasticsearchServiceTest { } } } + + @DisplayName("Copy and Update certificate") + @Nested + class TestCopyAndUpdateCertificate { + + private static final String CERTIFICATE_NAME = "dummySecretName"; + + @Mock + private Resource<Secret> secretResource; + + @DisplayName("process flow") + @Nested + class TestProcessFlow { + + @Mock + private OzgCloudElasticsearchServerProperties serverProperties; + + @BeforeEach + void mock() { + when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource); + when(properties.getCertificateSecretName()).thenReturn(CERTIFICATE_NAME); + } + + @Test + void shouldGetCertificateSecret() { + doNothing().when(service).createOrReplaceCredentialSecret(any(), any()); + + service.copyAndUpdateElasticCertificate(NAMESPACE); + + verify(kubernetesService).getSecretResource(NAMESPACE, CERTIFICATE_NAME); + } + + @Test + void shouldCreateOrUpdate() { + doNothing().when(service).createOrReplaceCredentialSecret(any(), any()); + + service.copyAndUpdateElasticCertificate(NAMESPACE); + + verify(service).createOrReplaceCredentialSecret(NAMESPACE, secretResource); + } + } + + @DisplayName("create or replace credential secret") + @Nested + class TestCreateOrReplaceCredentialSecret { + + private static final String SERVER_CERTIFICATE_SECRET_NAME = LoremIpsum.getInstance().getWords(1); + private static final String SERVER_CERTIFICATE_SECRET_DATA_KEY = LoremIpsum.getInstance().getWords(1); + private static final String SERVER_CERTIFICATE_SECRET_DATA = LoremIpsum.getInstance().getWords(1); + private static final String SERVER_CERTIFICATE_NAMESPACE = LoremIpsum.getInstance().getWords(1); + private static final Secret SERVER_CERTIFICATE_SECRET = SecretTestFactory.createBuilder() + .addToData(SERVER_CERTIFICATE_SECRET_DATA_KEY, SERVER_CERTIFICATE_SECRET_DATA) + .build(); + private static final Secret CREDENTIAL_SECRET = SecretTestFactory.create(); + + @Mock + private ResourceAdapter<Secret> resourceAdapter; + + @BeforeEach + void mock() { + when(properties.getServer()).thenReturn(serverProperties); + when(serverProperties.getCertificateSecretName()).thenReturn(SERVER_CERTIFICATE_SECRET_NAME); + when(serverProperties.getCertificateSecretDataKey()).thenReturn(SERVER_CERTIFICATE_SECRET_DATA_KEY); + when(serverProperties.getCertificateNamespace()).thenReturn(SERVER_CERTIFICATE_NAMESPACE); + when(kubernetesService.getSecretResource(any(), any())).thenReturn(secretResource); + when(secretResource.get()).thenReturn(SERVER_CERTIFICATE_SECRET); + doReturn(resourceAdapter).when(service).createAdapter(any()); + when(secretHelper.buildCertificateSecret(any(), any())).thenReturn(CREDENTIAL_SECRET); + } + + @Test + void shouldGetCertificateSecret() { + service.createOrReplaceCredentialSecret(NAMESPACE, secretResource); + + verify(kubernetesService).getSecretResource(SERVER_CERTIFICATE_NAMESPACE, SERVER_CERTIFICATE_SECRET_NAME); + } + + @Test + void shouldBuildSecret() { + service.createOrReplaceCredentialSecret(NAMESPACE, secretResource); + + verify(secretHelper).buildCertificateSecret(NAMESPACE, SERVER_CERTIFICATE_SECRET_DATA); + } + + @Test + void shouldCreateOrReplace() { + service.createOrReplaceCredentialSecret(NAMESPACE, secretResource); + + verify(resourceAdapter).createOrReplace(CREDENTIAL_SECRET); + } + } + } } \ No newline at end of file -- GitLab