Adds settings checking to tests

This isn’t an ideal solution so might well be temporary but at least the tests are checking the settings changes are correct now
This commit is contained in:
Colin Goodheart-Smithe 2017-11-24 10:10:46 +00:00
parent 016ba2a57d
commit 31ded906d0
2 changed files with 73 additions and 65 deletions

View File

@ -8,6 +8,7 @@ package org.elasticsearch.xpack.indexlifecycle;
import org.elasticsearch.action.ActionListener;
import org.elasticsearch.action.admin.indices.settings.put.UpdateSettingsRequest;
import org.elasticsearch.action.admin.indices.settings.put.UpdateSettingsResponse;
import org.elasticsearch.action.admin.indices.settings.put.UpdateSettingsTestHelper;
import org.elasticsearch.client.AdminClient;
import org.elasticsearch.client.Client;
import org.elasticsearch.client.IndicesAdminClient;
@ -32,8 +33,6 @@ import java.util.Arrays;
import java.util.Collections;
import java.util.List;
// NOCOMMIT this test needs some thinking about as currently it can't really test that the right thing is
// happening since we can't inspect the settings in the update request
public class LifecyclePolicyTests extends AbstractSerializingTestCase<LifecyclePolicy> {
private NamedXContentRegistry registry;
@ -142,11 +141,11 @@ public class LifecyclePolicyTests extends AbstractSerializingTestCase<LifecycleP
UpdateSettingsRequest request = (UpdateSettingsRequest) invocation.getArguments()[0];
@SuppressWarnings("unchecked")
ActionListener<UpdateSettingsResponse> listener = (ActionListener<UpdateSettingsResponse>) invocation.getArguments()[1];
assertNotNull(request);
assertEquals(1, request.indices().length);
assertEquals(indexName, request.indices()[0]);
// NOCOMMIT Need to check the settings in the request are
// correct (i.e adds the name of the first action)
Settings expectedSettings = Settings.builder()
.put(IndexLifecycle.LIFECYCLE_TIMESERIES_PHASE_SETTING.getKey(), "first_phase")
.put(IndexLifecycle.LIFECYCLE_TIMESERIES_ACTION_SETTING.getKey(), "").build();
UpdateSettingsTestHelper.assertSettingsRequest(request, expectedSettings, indexName);
listener.onResponse(UpdateSettingsTestHelper.createMockResponse(true));
return null;
}
@ -206,11 +205,10 @@ public class LifecyclePolicyTests extends AbstractSerializingTestCase<LifecycleP
UpdateSettingsRequest request = (UpdateSettingsRequest) invocation.getArguments()[0];
@SuppressWarnings("unchecked")
ActionListener<UpdateSettingsResponse> listener = (ActionListener<UpdateSettingsResponse>) invocation.getArguments()[1];
assertNotNull(request);
assertEquals(1, request.indices().length);
assertEquals(indexName, request.indices()[0]);
// NOCOMMIT Need to check the settings in the request are
// correct (i.e adds the name of the first action)
Settings expectedSettings = Settings.builder()
.put(IndexLifecycle.LIFECYCLE_TIMESERIES_ACTION_SETTING.getKey(), MockAction.NAME).build();
UpdateSettingsTestHelper.assertSettingsRequest(request, expectedSettings, indexName);
listener.onResponse(UpdateSettingsTestHelper.createMockResponse(true));
return null;
}
@ -270,11 +268,10 @@ public class LifecyclePolicyTests extends AbstractSerializingTestCase<LifecycleP
UpdateSettingsRequest request = (UpdateSettingsRequest) invocation.getArguments()[0];
@SuppressWarnings("unchecked")
ActionListener<UpdateSettingsResponse> listener = (ActionListener<UpdateSettingsResponse>) invocation.getArguments()[1];
assertNotNull(request);
assertEquals(1, request.indices().length);
assertEquals(indexName, request.indices()[0]);
// NOCOMMIT Need to check the settings in the request are
// correct (i.e adds the name of the first action)
Settings expectedSettings = Settings.builder()
.put(IndexLifecycle.LIFECYCLE_TIMESERIES_ACTION_SETTING.getKey(), MockAction.NAME).build();
UpdateSettingsTestHelper.assertSettingsRequest(request, expectedSettings, indexName);
listener.onResponse(UpdateSettingsTestHelper.createMockResponse(true));
return null;
}
@ -334,11 +331,10 @@ public class LifecyclePolicyTests extends AbstractSerializingTestCase<LifecycleP
UpdateSettingsRequest request = (UpdateSettingsRequest) invocation.getArguments()[0];
@SuppressWarnings("unchecked")
ActionListener<UpdateSettingsResponse> listener = (ActionListener<UpdateSettingsResponse>) invocation.getArguments()[1];
assertNotNull(request);
assertEquals(1, request.indices().length);
assertEquals(indexName, request.indices()[0]);
// NOCOMMIT Need to check the settings in the request are
// correct (i.e adds the name of the first action)
Settings expectedSettings = Settings.builder()
.put(IndexLifecycle.LIFECYCLE_TIMESERIES_ACTION_SETTING.getKey(), MockAction.NAME).build();
UpdateSettingsTestHelper.assertSettingsRequest(request, expectedSettings, indexName);
listener.onResponse(UpdateSettingsTestHelper.createMockResponse(true));
return null;
}
@ -391,22 +387,6 @@ public class LifecyclePolicyTests extends AbstractSerializingTestCase<LifecycleP
Mockito.when(client.admin()).thenReturn(adminClient);
Mockito.when(adminClient.indices()).thenReturn(indicesClient);
Mockito.doAnswer(new Answer<Void>() {
@Override
public Void answer(InvocationOnMock invocation) throws Throwable {
UpdateSettingsRequest request = (UpdateSettingsRequest) invocation.getArguments()[0];
@SuppressWarnings("unchecked")
ActionListener<UpdateSettingsResponse> listener = (ActionListener<UpdateSettingsResponse>) invocation.getArguments()[1];
assertNotNull(request);
assertEquals(1, request.indices().length);
assertEquals(indexName, request.indices()[0]);
// NOCOMMIT Need to check the settings in the request are
// correct (i.e adds the name of the first action)
return null;
}
}).when(indicesClient).updateSettings(Mockito.any(), Mockito.any());
IllegalStateException exception = expectThrows(IllegalStateException.class, () -> policy.execute(idxMeta, client, () -> 0L));
assertEquals(
@ -513,11 +493,11 @@ public class LifecyclePolicyTests extends AbstractSerializingTestCase<LifecycleP
UpdateSettingsRequest request = (UpdateSettingsRequest) invocation.getArguments()[0];
@SuppressWarnings("unchecked")
ActionListener<UpdateSettingsResponse> listener = (ActionListener<UpdateSettingsResponse>) invocation.getArguments()[1];
assertNotNull(request);
assertEquals(1, request.indices().length);
assertEquals(indexName, request.indices()[0]);
// NOCOMMIT Need to check the settings in the request are
// correct (i.e adds the name of the first action)
Settings expectedSettings = Settings.builder()
.put(IndexLifecycle.LIFECYCLE_TIMESERIES_PHASE_SETTING.getKey(), "second_phase")
.put(IndexLifecycle.LIFECYCLE_TIMESERIES_ACTION_SETTING.getKey(), "").build();
UpdateSettingsTestHelper.assertSettingsRequest(request, expectedSettings, indexName);
listener.onResponse(UpdateSettingsTestHelper.createMockResponse(true));
return null;
}
@ -627,11 +607,11 @@ public class LifecyclePolicyTests extends AbstractSerializingTestCase<LifecycleP
UpdateSettingsRequest request = (UpdateSettingsRequest) invocation.getArguments()[0];
@SuppressWarnings("unchecked")
ActionListener<UpdateSettingsResponse> listener = (ActionListener<UpdateSettingsResponse>) invocation.getArguments()[1];
assertNotNull(request);
assertEquals(1, request.indices().length);
assertEquals(indexName, request.indices()[0]);
// NOCOMMIT Need to check the settings in the request are
// correct (i.e adds the name of the first action)
Settings expectedSettings = Settings.builder()
.put(IndexLifecycle.LIFECYCLE_TIMESERIES_PHASE_SETTING.getKey(), "third_phase")
.put(IndexLifecycle.LIFECYCLE_TIMESERIES_ACTION_SETTING.getKey(), "").build();
UpdateSettingsTestHelper.assertSettingsRequest(request, expectedSettings, indexName);
listener.onResponse(UpdateSettingsTestHelper.createMockResponse(true));
return null;
}

View File

@ -8,6 +8,7 @@ package org.elasticsearch.xpack.indexlifecycle;
import org.elasticsearch.action.ActionListener;
import org.elasticsearch.action.admin.indices.settings.put.UpdateSettingsRequest;
import org.elasticsearch.action.admin.indices.settings.put.UpdateSettingsResponse;
import org.elasticsearch.action.admin.indices.settings.put.UpdateSettingsTestHelper;
import org.elasticsearch.client.AdminClient;
import org.elasticsearch.client.Client;
import org.elasticsearch.client.IndicesAdminClient;
@ -144,11 +145,26 @@ public class PhaseTests extends AbstractSerializingTestCase<Phase> {
String phaseName = randomAlphaOfLengthBetween(1, 20);
TimeValue after = TimeValue.timeValueSeconds(randomIntBetween(10, 100));
List<LifecycleAction> actions = new ArrayList<>();
MockAction firstAction = new MockAction();
MockAction firstAction = new MockAction() {
@Override
public String getWriteableName() {
return "first_action";
}
};
actions.add(firstAction);
MockAction secondAction = new MockAction();
MockAction secondAction = new MockAction() {
@Override
public String getWriteableName() {
return "second_action";
}
};
actions.add(secondAction);
MockAction thirdAction = new MockAction();
MockAction thirdAction = new MockAction() {
@Override
public String getWriteableName() {
return "third_action";
}
};
actions.add(thirdAction);
Phase phase = new Phase(phaseName, after, actions);
@ -168,11 +184,10 @@ public class PhaseTests extends AbstractSerializingTestCase<Phase> {
UpdateSettingsRequest request = (UpdateSettingsRequest) invocation.getArguments()[0];
@SuppressWarnings("unchecked")
ActionListener<UpdateSettingsResponse> listener = (ActionListener<UpdateSettingsResponse>) invocation.getArguments()[1];
assertNotNull(request);
assertEquals(1, request.indices().length);
assertEquals(indexName, request.indices()[0]);
// NOCOMMIT Need to check the settings in the request are
// correct (i.e adds the name of the first action)
Settings expectedSettings = Settings.builder()
.put(IndexLifecycle.LIFECYCLE_TIMESERIES_ACTION_SETTING.getKey(), "first_action").build();
UpdateSettingsTestHelper.assertSettingsRequest(request, expectedSettings, indexName);
listener.onResponse(UpdateSettingsTestHelper.createMockResponse(true));
return null;
}
@ -211,11 +226,10 @@ public class PhaseTests extends AbstractSerializingTestCase<Phase> {
UpdateSettingsRequest request = (UpdateSettingsRequest) invocation.getArguments()[0];
@SuppressWarnings("unchecked")
ActionListener<UpdateSettingsResponse> listener = (ActionListener<UpdateSettingsResponse>) invocation.getArguments()[1];
assertNotNull(request);
assertEquals(1, request.indices().length);
assertEquals(indexName, request.indices()[0]);
// NOCOMMIT Need to check the settings in the request are
// correct (i.e. sets the action to `ACTIONS COMPLETED`)
Settings expectedSettings = Settings.builder()
.put(IndexLifecycle.LIFECYCLE_TIMESERIES_ACTION_SETTING.getKey(), Phase.PHASE_COMPLETED).build();
UpdateSettingsTestHelper.assertSettingsRequest(request, expectedSettings, indexName);
listener.onResponse(UpdateSettingsTestHelper.createMockResponse(true));
return null;
}
@ -233,12 +247,26 @@ public class PhaseTests extends AbstractSerializingTestCase<Phase> {
String phaseName = randomAlphaOfLengthBetween(1, 20);
TimeValue after = TimeValue.timeValueSeconds(randomIntBetween(10, 100));
List<LifecycleAction> actions = new ArrayList<>();
MockAction firstAction = new MockAction();
MockAction firstAction = new MockAction() {
@Override
public String getWriteableName() {
return "first_action";
}
};
actions.add(firstAction);
MockAction secondAction = new MockAction();
MockAction secondAction = new MockAction() {
@Override
public String getWriteableName() {
return "second_action";
}
};
actions.add(secondAction);
MockAction thirdAction = new MockAction();
actions.add(thirdAction);
MockAction thirdAction = new MockAction() {
@Override
public String getWriteableName() {
return "third_action";
}
};
Phase phase = new Phase(phaseName, after, Collections.emptyList());
IndexMetaData idxMeta = IndexMetaData.builder(indexName)