You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
if (!defaults.stream().allMatch(Objects::isNull) && !defaults.stream().allMatch(Objects::nonNull)) {
108
+
thrownewIllegalStateException(String.format("Configuration error: error in parameters of spec '%s', error: not every parameter has a default value. Either define no defaults, or defaults for all parameters.", spec.getId()));
109
+
}
110
+
111
+
// Check that every default value exists
112
+
if (spec.getParameters().getDefinitions().get(0).getDefaultValue() != null) {
113
+
for (ParameterDefinitiondefinition : spec.getParameters().getDefinitions()) {
114
+
booleandefaultValueExists = false;
115
+
for (Parameters.ValueSetvalueSet : spec.getParameters().getValueSets()) {
116
+
if (valueSet.getParameterValues(definition.getId()).contains(definition.getDefaultValue())) {
117
+
defaultValueExists = true;
118
+
break;
119
+
}
120
+
}
121
+
if (!defaultValueExists) {
122
+
thrownewIllegalStateException(String.format("Configuration error: error in parameters of spec '%s', error: default value for parameter with id '%s' is not defined in a value-set", spec.getId(), definition.getId()));
123
+
}
124
+
}
125
+
}
126
+
105
127
// Validate Parameter Value Sets
106
128
intvalueSetIdx = 0;
107
129
for (Parameters.ValueSetvalueSet : spec.getParameters().getValueSets()) {
Copy file name to clipboardExpand all lines: src/test/java/eu/openanalytics/containerproxy/test/unit/TestParameterValidationService.java
+6Lines changed: 6 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -70,6 +70,12 @@ public void testValueSetErrors() {
70
70
test("classpath:application-parameters-validation-7.yaml", "Configuration error: error in parameters of spec 'big-parameters', error: value set 0 contains values for more parameters than there are defined");
71
71
}
72
72
73
+
@Test
74
+
publicvoidtestDefaultValueErrors() {
75
+
test("classpath:application-parameters-validation-9.yaml", "Configuration error: error in parameters of spec 'big-parameters', error: not every parameter has a default value. Either define no defaults, or defaults for all parameters");
76
+
test("classpath:application-parameters-validation-10.yaml", "Configuration error: error in parameters of spec 'big-parameters', error: default value for parameter with id 'parameter2' is not defined in a value-set");
0 commit comments