[TEST] Beef up SearchStatsTests

This commit is contained in:
Simon Willnauer 2014-03-11 11:29:04 +01:00
parent bb83c823b6
commit 7e0beead9d
2 changed files with 23 additions and 7 deletions

View File

@ -38,6 +38,8 @@ import java.util.HashSet;
import java.util.Set; import java.util.Set;
import static org.elasticsearch.index.query.QueryBuilders.matchAllQuery; import static org.elasticsearch.index.query.QueryBuilders.matchAllQuery;
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAllSuccessful;
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertHitCount;
import static org.hamcrest.Matchers.*; import static org.hamcrest.Matchers.*;
/** /**
@ -54,26 +56,32 @@ public class SearchStatsTests extends ElasticsearchIntegrationTest {
// clear all stats first // clear all stats first
client().admin().indices().prepareStats().clear().execute().actionGet(); client().admin().indices().prepareStats().clear().execute().actionGet();
createIndex("test1"); createIndex("test1");
for (int i = 0; i < 500; i++) { int docsTest1 = atLeast(20);
for (int i = 0; i < docsTest1; i++) {
client().prepareIndex("test1", "type", Integer.toString(i)).setSource("field", "value").execute().actionGet(); client().prepareIndex("test1", "type", Integer.toString(i)).setSource("field", "value").execute().actionGet();
if (i == 10) { if (rarely()) {
refresh(); refresh();
} }
} }
createIndex("test2"); createIndex("test2");
for (int i = 0; i < 500; i++) { int docsTest2 = atLeast(20);
for (int i = 0; i < docsTest2; i++) {
client().prepareIndex("test2", "type", Integer.toString(i)).setSource("field", "value").execute().actionGet(); client().prepareIndex("test2", "type", Integer.toString(i)).setSource("field", "value").execute().actionGet();
if (i == 10) { if (rarely()) {
refresh(); refresh();
} }
} }
refresh();
cluster().ensureAtMostNumNodes(numAssignedShards("test1", "test2")); cluster().ensureAtMostNumNodes(numAssignedShards("test1", "test2"));
assertThat(cluster().size(), greaterThanOrEqualTo(2)); assertThat(cluster().size(), greaterThanOrEqualTo(2));
assertThat(numAssignedShards("test1", "test2"), greaterThanOrEqualTo(2)); assertThat(numAssignedShards("test1", "test2"), greaterThanOrEqualTo(2));
// THERE WILL BE AT LEAST 2 NODES HERE SO WE CAN WAIT FOR GREEN // THERE WILL BE AT LEAST 2 NODES HERE SO WE CAN WAIT FOR GREEN
ensureGreen(); ensureGreen();
for (int i = 0; i < 200; i++) { int iters = atLeast(20);
client().prepareSearch().setQuery(QueryBuilders.termQuery("field", "value")).setStats("group1", "group2").execute().actionGet(); for (int i = 0; i < iters; i++) {
SearchResponse searchResponse = client().prepareSearch().setQuery(QueryBuilders.termQuery("field", "value")).setStats("group1", "group2").execute().actionGet();
assertHitCount(searchResponse, docsTest1 + docsTest2);
assertAllSuccessful(searchResponse);
} }
IndicesStatsResponse indicesStats = client().admin().indices().prepareStats().execute().actionGet(); IndicesStatsResponse indicesStats = client().admin().indices().prepareStats().execute().actionGet();
@ -127,7 +135,8 @@ public class SearchStatsTests extends ElasticsearchIntegrationTest {
@Test @Test
public void testOpenContexts() { public void testOpenContexts() {
createIndex("test1"); createIndex("test1");
for (int i = 0; i < 50; i++) { final int docs = atLeast(20);
for (int i = 0; i < docs; i++) {
client().prepareIndex("test1", "type", Integer.toString(i)).setSource("field", "value").execute().actionGet(); client().prepareIndex("test1", "type", Integer.toString(i)).setSource("field", "value").execute().actionGet();
} }
IndicesStatsResponse indicesStats = client().admin().indices().prepareStats().execute().actionGet(); IndicesStatsResponse indicesStats = client().admin().indices().prepareStats().execute().actionGet();

View File

@ -225,6 +225,13 @@ public class ElasticsearchAssertions {
assertVersionSerializable(response); assertVersionSerializable(response);
} }
public static void assertAllSuccessful(SearchResponse response) {
assertNoFailures(response);
assertThat("Expected all shards successful but got successful [" + response.getSuccessfulShards() + "] total [" + response.getTotalShards() + "]",
response.getTotalShards(), equalTo(response.getSuccessfulShards()));
assertVersionSerializable(response);
}
public static void assertSearchHit(SearchHit searchHit, Matcher<SearchHit> matcher) { public static void assertSearchHit(SearchHit searchHit, Matcher<SearchHit> matcher) {
assertThat(searchHit, matcher); assertThat(searchHit, matcher);
assertVersionSerializable(searchHit); assertVersionSerializable(searchHit);