From d61a6527a8a5ede96ba2adef3ffd239520cc1707 Mon Sep 17 00:00:00 2001 From: Jeromy Cannon Date: Mon, 2 Oct 2023 16:53:14 +0100 Subject: [PATCH] test coverage Signed-off-by: Jeromy Cannon --- .../client/model/test/TestChartOptions.java | 2 - .../src/main/java/module-info.java | 1 + .../helm/client/test/HelmClientTest.java | 15 ++++++ .../model/TestChartOptionsBuilderTest.java | 51 +++++++++++++++++++ .../request/chart/ChartTestRequestTest.java | 46 +++++++++++++++++ 5 files changed, 113 insertions(+), 2 deletions(-) create mode 100644 fullstack-helm-client/src/test/java/com/hedera/fullstack/helm/client/test/model/TestChartOptionsBuilderTest.java create mode 100644 fullstack-helm-client/src/test/java/com/hedera/fullstack/helm/client/test/proxy/request/chart/ChartTestRequestTest.java diff --git a/fullstack-helm-client/src/main/java/com/hedera/fullstack/helm/client/model/test/TestChartOptions.java b/fullstack-helm-client/src/main/java/com/hedera/fullstack/helm/client/model/test/TestChartOptions.java index 79fdf9acc..184440e70 100644 --- a/fullstack-helm-client/src/main/java/com/hedera/fullstack/helm/client/model/test/TestChartOptions.java +++ b/fullstack-helm-client/src/main/java/com/hedera/fullstack/helm/client/model/test/TestChartOptions.java @@ -47,8 +47,6 @@ public static TestChartOptions defaults() { @Override public void apply(final HelmExecutionBuilder builder) { - builder.argument("output", "json"); - if (filter() != null) { builder.argument("filter", filter()); } diff --git a/fullstack-helm-client/src/main/java/module-info.java b/fullstack-helm-client/src/main/java/module-info.java index 51d202231..6e97afa97 100644 --- a/fullstack-helm-client/src/main/java/module-info.java +++ b/fullstack-helm-client/src/main/java/module-info.java @@ -3,6 +3,7 @@ exports com.hedera.fullstack.helm.client.model; exports com.hedera.fullstack.helm.client.model.chart; exports com.hedera.fullstack.helm.client.model.install; + exports com.hedera.fullstack.helm.client.model.test; exports com.hedera.fullstack.helm.client.execution; exports com.hedera.fullstack.helm.client.proxy.request.chart to com.hedera.fullstack.helm.client.test; diff --git a/fullstack-helm-client/src/test/java/com/hedera/fullstack/helm/client/test/HelmClientTest.java b/fullstack-helm-client/src/test/java/com/hedera/fullstack/helm/client/test/HelmClientTest.java index 475baa18e..b0023216e 100644 --- a/fullstack-helm-client/src/test/java/com/hedera/fullstack/helm/client/test/HelmClientTest.java +++ b/fullstack-helm-client/src/test/java/com/hedera/fullstack/helm/client/test/HelmClientTest.java @@ -26,6 +26,7 @@ import com.hedera.fullstack.helm.client.model.Repository; import com.hedera.fullstack.helm.client.model.chart.Release; import com.hedera.fullstack.helm.client.model.install.InstallChartOptions; +import com.hedera.fullstack.helm.client.model.test.TestChartOptions; import com.jcovalent.junit.logging.JCovalentLoggingSupport; import com.jcovalent.junit.logging.LogEntry; import com.jcovalent.junit.logging.LogEntryBuilder; @@ -344,4 +345,18 @@ void testInstallChartWithProvenanceValidation(final LoggingOutput loggingOutput) testChartInstallWithCleanup(options, EXPECTED_LOG_ENTRIES, loggingOutput); } + + @Test + @DisplayName("Helm Test subcommand with options") + void testTestChartWithOptions() { + addRepoIfMissing(helmClient, HAPROXYTECH_REPOSITORY); + final TestChartOptions options = + TestChartOptions.builder().timeout("60s").filter("haproxy").build(); + suppressExceptions(() -> helmClient.installChart(HAPROXY_RELEASE_NAME, HAPROXY_CHART)); + try { + helmClient.testChart(HAPROXY_RELEASE_NAME, options); + } finally { + suppressExceptions(() -> helmClient.uninstallChart(HAPROXY_RELEASE_NAME)); + } + } } diff --git a/fullstack-helm-client/src/test/java/com/hedera/fullstack/helm/client/test/model/TestChartOptionsBuilderTest.java b/fullstack-helm-client/src/test/java/com/hedera/fullstack/helm/client/test/model/TestChartOptionsBuilderTest.java new file mode 100644 index 000000000..c6b60b9fa --- /dev/null +++ b/fullstack-helm-client/src/test/java/com/hedera/fullstack/helm/client/test/model/TestChartOptionsBuilderTest.java @@ -0,0 +1,51 @@ +/* + * Copyright (C) 2023 Hedera Hashgraph, LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.hedera.fullstack.helm.client.test.model; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; + +import com.hedera.fullstack.helm.client.execution.HelmExecutionBuilder; +import com.hedera.fullstack.helm.client.model.test.TestChartOptions; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; + +@ExtendWith(MockitoExtension.class) +class TestChartOptionsBuilderTest { + @Mock + private HelmExecutionBuilder builderMock; + + @Test + @DisplayName("Test InstallChartOptionsBuilder") + void testInstallChartOptionsBuilder() { + TestChartOptions options = + TestChartOptions.builder().filter("filter").timeout("timeout").build(); + assertNotNull(options); + assertEquals("timeout", options.timeout()); + assertEquals("filter", options.filter()); + + options.apply(builderMock); + + verify(builderMock, times(3)).argument(anyString(), anyString()); + } +} diff --git a/fullstack-helm-client/src/test/java/com/hedera/fullstack/helm/client/test/proxy/request/chart/ChartTestRequestTest.java b/fullstack-helm-client/src/test/java/com/hedera/fullstack/helm/client/test/proxy/request/chart/ChartTestRequestTest.java new file mode 100644 index 000000000..ff17dbb6c --- /dev/null +++ b/fullstack-helm-client/src/test/java/com/hedera/fullstack/helm/client/test/proxy/request/chart/ChartTestRequestTest.java @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2023 Hedera Hashgraph, LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.hedera.fullstack.helm.client.test.proxy.request.chart; + +import static org.assertj.core.api.Assertions.assertThat; + +import com.hedera.fullstack.helm.client.model.test.TestChartOptions; +import com.hedera.fullstack.helm.client.proxy.request.chart.ChartTestRequest; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.junit.jupiter.MockitoExtension; + +@ExtendWith(MockitoExtension.class) +class ChartTestRequestTest { + @Test + @DisplayName("Test ChartTestRequest Chart constructor") + void testChartTestRequestChartConstructor() { + final ChartTestRequest chartTestRequest = new ChartTestRequest("apache"); + assertThat(chartTestRequest.options()).isNotNull().isEqualTo(TestChartOptions.defaults()); + assertThat(chartTestRequest.releaseName()).isEqualTo("apache"); + + final TestChartOptions opts = + TestChartOptions.builder().timeout("9m0s").filter("filter").build(); + final ChartTestRequest nonDefaultOptRequest = new ChartTestRequest("apache", opts); + + assertThat(nonDefaultOptRequest.options()) + .isNotNull() + .isEqualTo(opts) + .isNotEqualTo(TestChartOptions.defaults()); + } +}