Skip to content

Commit 0f39e38

Browse files
committed
Switch test to use value overrides
1 parent a0f25ba commit 0f39e38

File tree

5 files changed

+35
-42
lines changed

5 files changed

+35
-42
lines changed

kubernetes/pom.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,12 @@
8181
<version>1.19</version>
8282
<scope>test</scope>
8383
</dependency>
84+
<dependency>
85+
<groupId>com.google.guava</groupId>
86+
<artifactId>guava</artifactId>
87+
<version>22.0</version>
88+
<scope>test</scope>
89+
</dependency>
8490
</dependencies>
8591

8692
<profiles>

kubernetes/src/test/java/oracle/kubernetes/operator/helm/ChartITBase.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,26 @@
55
package oracle.kubernetes.operator.helm;
66

77
import java.util.ArrayList;
8+
import java.util.Collections;
89
import java.util.List;
10+
import java.util.Map;
911

1012
@SuppressWarnings("SameParameterValue")
1113
class ChartITBase {
1214
private static List<ProcessedChart> charts = new ArrayList<>();
1315

14-
ProcessedChart getChart(String chartName, UpdateValues updater) {
16+
ProcessedChart getChart(String chartName) {
17+
return getChart(chartName, Collections.emptyMap());
18+
}
19+
20+
ProcessedChart getChart(String chartName, Map<String, Object> valueOverrides) {
1521
for (ProcessedChart chart : charts) {
16-
if (chart.matches(chartName, updater)) {
22+
if (chart.matches(chartName, valueOverrides)) {
1723
return chart;
1824
}
1925
}
2026

21-
ProcessedChart chart = new ProcessedChart(chartName, updater);
27+
ProcessedChart chart = new ProcessedChart(chartName, valueOverrides);
2228
charts.add(chart);
2329
return chart;
2430
}

kubernetes/src/test/java/oracle/kubernetes/operator/helm/OperatorChartIT.java

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -9,47 +9,39 @@
99
import static org.hamcrest.Matchers.emptyOrNullString;
1010
import static org.hamcrest.Matchers.hasSize;
1111

12+
import com.google.common.collect.ImmutableMap;
1213
import java.util.Map;
1314
import org.junit.Test;
1415

1516
@SuppressWarnings("SameParameterValue")
1617
public class OperatorChartIT extends ChartITBase {
1718

18-
private static final NullUpdate NULL_UPDATE = new NullUpdate();
19-
private static final AddCertificates ADD_CERTIFICATES = new AddCertificates();
2019
private static final String OPERATOR_CHART = "weblogic-operator";
20+
private static final Map<String, Object> CERTIFICATES =
21+
ImmutableMap.<String, Object>builder()
22+
.put("internalOperatorCert", "dummy.cert")
23+
.put("internalOperatorKey", "dummy.key")
24+
.build();
2125

2226
@Test
2327
public void whenNoCertificateSpecified_helmReportsFailure() throws Exception {
24-
ProcessedChart chart = getChart(OPERATOR_CHART, NULL_UPDATE);
28+
ProcessedChart chart = getChart(OPERATOR_CHART);
2529

2630
assertThat(chart.getError(), containsString("property internalOperatorCert must be specified"));
2731
}
2832

2933
@Test
3034
public void whenCertificateSpecified_noErrorOccurs() throws Exception {
31-
ProcessedChart chart = getChart(OPERATOR_CHART, ADD_CERTIFICATES);
35+
ProcessedChart chart = getChart(OPERATOR_CHART, CERTIFICATES);
3236

3337
assertThat(chart.getError(), emptyOrNullString());
3438
}
3539

3640
@Test
3741
public void whenChartsGenerated_haveOneRoleBinding() throws Exception {
38-
ProcessedChart chart = getChart(OPERATOR_CHART, ADD_CERTIFICATES);
42+
ProcessedChart chart = getChart(OPERATOR_CHART, CERTIFICATES);
3943

4044
assertThat(chart.getDocuments("RoleBinding"), hasSize(1));
4145
}
4246

43-
private static class NullUpdate implements UpdateValues {
44-
@Override
45-
public void update(Map<String, String> values) {}
46-
}
47-
48-
private static class AddCertificates implements UpdateValues {
49-
@Override
50-
public void update(Map<String, String> values) {
51-
values.put("internalOperatorCert", "dummy.cert");
52-
values.put("internalOperatorKey", "dummy.key");
53-
}
54-
}
5547
}

kubernetes/src/test/java/oracle/kubernetes/operator/helm/ProcessedChart.java

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import java.io.BufferedReader;
88
import java.io.BufferedWriter;
99
import java.io.File;
10-
import java.io.FileReader;
1110
import java.io.IOException;
1211
import java.io.InputStream;
1312
import java.io.InputStreamReader;
@@ -20,6 +19,7 @@
2019
import java.util.ArrayList;
2120
import java.util.List;
2221
import java.util.Map;
22+
import java.util.Objects;
2323
import org.yaml.snakeyaml.Yaml;
2424

2525
/**
@@ -28,18 +28,18 @@
2828
@SuppressWarnings({"unchecked", "SameParameterValue"})
2929
class ProcessedChart {
3030
private final String chartName;
31-
private final UpdateValues updateValues;
31+
private Map<String, Object> valueOverrides;
3232
private String error;
3333
private List<Map<String, String>> documents;
3434
private Process process;
3535

36-
ProcessedChart(String chartName, UpdateValues updateValues) {
36+
ProcessedChart(String chartName, Map<String, Object> valueOverrides) {
3737
this.chartName = chartName;
38-
this.updateValues = updateValues;
38+
this.valueOverrides = valueOverrides;
3939
}
4040

41-
boolean matches(String chartName, UpdateValues updater) {
42-
return this.chartName.equals(chartName) && this.updateValues == updater;
41+
boolean matches(String chartName, Map<String, Object> valueOverrides) {
42+
return this.chartName.equals(chartName) && Objects.equals(valueOverrides, this.valueOverrides);
4343
}
4444

4545
/**
@@ -104,17 +104,16 @@ private List<Map<String, String>> getDocuments() throws Exception {
104104

105105
private Process getProcess() throws Exception {
106106
if (process == null) {
107-
process = processChart(chartName, updateValues);
107+
process = processChart(chartName, valueOverrides);
108108
}
109109
return process;
110110
}
111111

112-
private Process processChart(String chartName, UpdateValues updateValues) throws Exception {
112+
private Process processChart(String chartName, Map<String, Object> valueOverrides)
113+
throws Exception {
113114
File chartsDir = getChartDir(chartName);
114-
File baseValuesFile = new File(chartsDir, "values.yaml");
115-
Map<String, String> values = new Yaml().load(new FileReader(baseValuesFile));
116115

117-
Path valuesFile = createUpdatedValuesFile(updateValues, values);
116+
Path valuesFile = writeValuesOverride(valueOverrides);
118117

119118
ProcessBuilder pb = new ProcessBuilder(createCommandLine(chartsDir, valuesFile));
120119
return pb.start();
@@ -124,9 +123,7 @@ private String[] createCommandLine(File chart, Path valuesPath) {
124123
return new String[] {"helm", "template", chart.getAbsolutePath(), "-f", valuesPath.toString()};
125124
}
126125

127-
private Path createUpdatedValuesFile(UpdateValues updateValues, Map<String, String> values)
128-
throws IOException {
129-
updateValues.update(values);
126+
private Path writeValuesOverride(Map<String, Object> values) throws IOException {
130127
Path valuesFile = Files.createTempFile("Value", ".yaml");
131128
try (BufferedWriter writer = Files.newBufferedWriter(valuesFile, Charset.forName("UTF-8"))) {
132129
new Yaml().dump(values, writer);

kubernetes/src/test/java/oracle/kubernetes/operator/helm/UpdateValues.java

Lines changed: 0 additions & 8 deletions
This file was deleted.

0 commit comments

Comments
 (0)