Skip to content

Commit 2c20228

Browse files
committed
Move validation
1 parent 6c0a153 commit 2c20228

File tree

2 files changed

+18
-20
lines changed

2 files changed

+18
-20
lines changed

server/src/main/java/org/elasticsearch/action/admin/indices/shrink/ResizeRequest.java

+4-3
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,7 @@ public ActionRequestValidationException validate() {
8080
if (type == ResizeType.SPLIT && IndexMetaData.INDEX_NUMBER_OF_SHARDS_SETTING.exists(targetIndexRequest.settings()) == false) {
8181
validationException = addValidationError("index.number_of_shards is required for split operations", validationException);
8282
}
83-
if (copySettings != null && copySettings == false) {
84-
validationException = addValidationError("[copySettings] can not be explicitly set to [false]", validationException);
85-
}
83+
assert copySettings == null || copySettings;
8684
return validationException;
8785
}
8886

@@ -197,6 +195,9 @@ public ResizeType getResizeType() {
197195
}
198196

199197
public void setCopySettings(final Boolean copySettings) {
198+
if (copySettings != null && copySettings == false) {
199+
throw new IllegalArgumentException("[copySettings] can not be explicitly set to [false]");
200+
}
200201
this.copySettings = copySettings;
201202
}
202203

server/src/test/java/org/elasticsearch/action/admin/indices/shrink/ResizeRequestTests.java

+14-17
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919

2020
package org.elasticsearch.action.admin.indices.shrink;
2121

22-
import org.elasticsearch.action.ActionRequestValidationException;
2322
import org.elasticsearch.action.admin.indices.alias.Alias;
2423
import org.elasticsearch.action.admin.indices.create.CreateIndexRequest;
2524
import org.elasticsearch.action.admin.indices.create.CreateIndexRequestTests;
@@ -30,36 +29,34 @@
3029
import org.elasticsearch.index.RandomCreateIndexGenerator;
3130
import org.elasticsearch.test.ESTestCase;
3231
import org.elasticsearch.test.hamcrest.ElasticsearchAssertions;
33-
import org.junit.Assert;
3432

3533
import java.io.IOException;
3634
import java.util.function.Consumer;
35+
import java.util.function.Supplier;
3736

3837
import static org.elasticsearch.cluster.metadata.IndexMetaData.SETTING_NUMBER_OF_SHARDS;
3938
import static org.elasticsearch.common.xcontent.ToXContent.EMPTY_PARAMS;
40-
import static org.hamcrest.Matchers.equalTo;
41-
import static org.hamcrest.Matchers.hasSize;
39+
import static org.hamcrest.Matchers.containsString;
40+
import static org.hamcrest.Matchers.hasToString;
4241

4342
public class ResizeRequestTests extends ESTestCase {
4443

4544
public void testCopySettingsValidation() {
46-
runTestCopySettingsValidation(false, e -> {
47-
assertNotNull(e);
48-
assertThat(e.validationErrors(), hasSize(1));
49-
assertThat(e.validationErrors().get(0), equalTo("[copySettings] can not be explicitly set to [false]"));
45+
runTestCopySettingsValidation(false, r -> {
46+
final IllegalArgumentException e = expectThrows(IllegalArgumentException.class, r::get);
47+
assertThat(e, hasToString(containsString("[copySettings] can not be explicitly set to [false]")));
5048
});
5149

52-
runTestCopySettingsValidation(null, Assert::assertNull);
53-
runTestCopySettingsValidation(true, Assert::assertNull);
50+
runTestCopySettingsValidation(null, r -> assertNull(r.get().getCopySettings()));
51+
runTestCopySettingsValidation(true, r -> assertTrue(r.get().getCopySettings()));
5452
}
5553

56-
private void runTestCopySettingsValidation(final Boolean copySettings, final Consumer<ActionRequestValidationException> consumer) {
57-
final ResizeRequest request = new ResizeRequest();
58-
request.setSourceIndex("source");
59-
request.setTargetIndex(new CreateIndexRequest("target"));
60-
request.setCopySettings(copySettings);
61-
final ActionRequestValidationException e = request.validate();
62-
consumer.accept(e);
54+
private void runTestCopySettingsValidation(final Boolean copySettings, final Consumer<Supplier<ResizeRequest>> consumer) {
55+
consumer.accept(() -> {
56+
final ResizeRequest request = new ResizeRequest();
57+
request.setCopySettings(copySettings);
58+
return request;
59+
});
6360
}
6461

6562
public void testToXContent() throws IOException {

0 commit comments

Comments
 (0)