Skip to content

Commit d2bc7fd

Browse files
committed
Simplify test
1 parent e5ceaac commit d2bc7fd

File tree

1 file changed

+68
-30
lines changed

1 file changed

+68
-30
lines changed

server/src/test/java/org/elasticsearch/action/admin/cluster/settings/SettingsUpdaterTests.java

+68-30
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@
2828
import org.elasticsearch.common.settings.Settings;
2929
import org.elasticsearch.test.ESTestCase;
3030

31+
import java.util.ArrayList;
32+
import java.util.List;
3133
import java.util.Set;
3234
import java.util.concurrent.atomic.AtomicReference;
3335
import java.util.function.BiFunction;
@@ -170,55 +172,91 @@ public void testDeprecationLogging() {
170172
}
171173

172174
public void testUpdateWithUnknownAndSettings() {
173-
runUpdateWithUnknownAndInvalidSettingTest(MetaData.Builder::persistentSettings, MetaData::persistentSettings, false);
174-
runUpdateWithUnknownAndInvalidSettingTest(MetaData.Builder::transientSettings, MetaData::transientSettings, true);
175-
}
175+
final int numberOfDynamicSettings = randomIntBetween(2, 8);
176+
final List<Setting<String>> dynamicSettings = new ArrayList<>();
177+
for (int i = 0; i < numberOfDynamicSettings; i++) {
178+
final Setting<String> dynamicSetting = Setting.simpleString("dynamic.setting" + i, Property.Dynamic, Property.NodeScope);
179+
dynamicSettings.add(dynamicSetting);
180+
}
176181

177-
private void runUpdateWithUnknownAndInvalidSettingTest(
178-
final BiFunction<MetaData.Builder, Settings, MetaData.Builder> metaDataSettingsBuilder,
179-
final Function<MetaData, Settings> settingsToTest,
180-
final boolean applyTransient) {
181-
final Setting<String> dynamicSetting = Setting.simpleString("dynamic.setting", Property.Dynamic, Property.NodeScope);
182182
final Setting<String> invalidSetting = Setting.simpleString(
183183
"invalid.setting",
184184
(value, settings) -> {
185185
throw new IllegalArgumentException("invalid");
186186
},
187187
Property.NodeScope);
188-
final Settings settings = Settings.builder().put("invalid.setting", "value").put("unknown.setting", "value").build();
188+
189+
final Settings.Builder existingPersistentSettings = Settings.builder();
190+
final Settings.Builder existingTransientSettings = Settings.builder();
191+
192+
if (randomBoolean()) {
193+
existingPersistentSettings.put("invalid.setting", "value");
194+
} else {
195+
existingTransientSettings.put("invalid.setting", "value");
196+
}
197+
198+
if (randomBoolean()) {
199+
existingPersistentSettings.put("unknown.setting", "value");
200+
} else {
201+
existingTransientSettings.put("unknown.setting", "value");
202+
}
189203

190204
final Set<Setting<?>> knownSettings =
191205
Stream.concat(
192206
ClusterSettings.BUILT_IN_CLUSTER_SETTINGS.stream(),
193-
Stream.of(dynamicSetting, invalidSetting))
207+
Stream.concat(dynamicSettings.stream(), Stream.of(invalidSetting)))
194208
.collect(Collectors.toSet());
195-
final ClusterSettings clusterSettings = new ClusterSettings(settings, knownSettings);
196-
clusterSettings.addSettingsUpdateConsumer(dynamicSetting, s -> {});
209+
final ClusterSettings clusterSettings = new ClusterSettings(Settings.EMPTY, knownSettings);
210+
for (final Setting<String> dynamicSetting : dynamicSettings) {
211+
clusterSettings.addSettingsUpdateConsumer(dynamicSetting, s -> {});
212+
}
197213
final SettingsUpdater settingsUpdater = new SettingsUpdater(clusterSettings);
198-
final ClusterState clusterState =
199-
ClusterState
200-
.builder(new ClusterName("cluster"))
201-
.metaData(metaDataSettingsBuilder.apply(MetaData.builder(), settings).build())
202-
.build();
203-
final Settings toApply = Settings.builder().put("dynamic.setting", "value").build();
214+
final MetaData.Builder metaDataBuilder =
215+
MetaData.builder()
216+
.persistentSettings(existingPersistentSettings.build())
217+
.transientSettings(existingTransientSettings.build());
218+
final ClusterState clusterState = ClusterState.builder(new ClusterName("cluster")).metaData(metaDataBuilder).build();
219+
final Settings.Builder persistentToApply = Settings.builder();
220+
final Settings.Builder transientToApply = Settings.builder();
221+
for (final Setting<String> dynamicSetting : dynamicSettings) {
222+
if (randomBoolean()) {
223+
persistentToApply.put(dynamicSetting.getKey(), "value");
224+
} else {
225+
transientToApply.put(dynamicSetting.getKey(), "value");
226+
}
227+
}
204228
final ClusterState clusterStateAfterUpdate;
205-
if (applyTransient) {
206-
clusterStateAfterUpdate = settingsUpdater.updateSettings(clusterState, toApply, Settings.EMPTY, logger);
229+
clusterStateAfterUpdate =
230+
settingsUpdater.updateSettings(clusterState, transientToApply.build(), persistentToApply.build(), logger);
231+
232+
if (existingPersistentSettings.keys().contains("invalid.setting")) {
233+
assertThat(
234+
clusterStateAfterUpdate.metaData().persistentSettings().keySet(),
235+
hasItem(ARCHIVED_SETTINGS_PREFIX + "invalid.setting"));
207236
} else {
208-
clusterStateAfterUpdate = settingsUpdater.updateSettings(clusterState, Settings.EMPTY, toApply, logger);
237+
assertThat(
238+
clusterStateAfterUpdate.metaData().transientSettings().keySet(),
239+
hasItem(ARCHIVED_SETTINGS_PREFIX + "invalid.setting"));
209240
}
210241

211-
assertThat(
212-
settingsToTest.apply(clusterStateAfterUpdate.metaData()).keySet(), hasItem(ARCHIVED_SETTINGS_PREFIX + "invalid.setting"));
213-
assertThat(
214-
settingsToTest.apply(clusterStateAfterUpdate.metaData()).keySet(), hasItem(ARCHIVED_SETTINGS_PREFIX + "unknown.setting"));
215-
if (applyTransient) {
216-
assertThat(clusterStateAfterUpdate.metaData().transientSettings().keySet(), hasItem("dynamic.setting"));
217-
assertThat(clusterStateAfterUpdate.metaData().transientSettings().get("dynamic.setting"), equalTo("value"));
242+
if (existingPersistentSettings.keys().contains("unknown.setting")) {
243+
assertThat(
244+
clusterStateAfterUpdate.metaData().persistentSettings().keySet(),
245+
hasItem(ARCHIVED_SETTINGS_PREFIX + "unknown.setting"));
218246
} else {
219-
assertThat(clusterStateAfterUpdate.metaData().persistentSettings().keySet(), hasItem("dynamic.setting"));
220-
assertThat(clusterStateAfterUpdate.metaData().persistentSettings().get("dynamic.setting"), equalTo("value"));
247+
assertThat(
248+
clusterStateAfterUpdate.metaData().transientSettings().keySet(),
249+
hasItem(ARCHIVED_SETTINGS_PREFIX + "unknown.setting"));
250+
}
251+
252+
for (final Setting<String> dynamicSetting : dynamicSettings) {
253+
if (persistentToApply.keys().contains(dynamicSetting.getKey())) {
254+
assertThat(clusterStateAfterUpdate.metaData().persistentSettings().keySet(), hasItem(dynamicSetting.getKey()));
255+
} else {
256+
assertThat(clusterStateAfterUpdate.metaData().transientSettings().keySet(), hasItem(dynamicSetting.getKey()));
257+
}
221258
}
259+
222260
}
223261

224262
}

0 commit comments

Comments
 (0)