package com.silverforge.elasticsearchrawclient.elasticFacade;
import com.silverforge.elasticsearchrawclient.BuildConfig;
import com.silverforge.elasticsearchrawclient.exceptions.IndexCannotBeNullException;
import com.silverforge.elasticsearchrawclient.exceptions.TypeCannotBeNullException;
import com.silverforge.elasticsearchrawclient.testModel.SimpleCity;
import org.hamcrest.Matchers;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricGradleTestRunner;
import org.robolectric.annotation.Config;
import java.util.List;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.hasItem;
import static org.junit.Assert.*;
import static org.hamcrest.Matchers.*;
@RunWith(RobolectricGradleTestRunner.class)
@Config(constants = BuildConfig.class, sdk = 21)
public class ElasticClientUpdateDocumentTest extends ElasticClientBaseTest {
// region Happy path
@Test
public void updateDocumentTest() {
try {
String cityId = "karcag";
SimpleCity city = new SimpleCity("karcagTest");
client.updateDocument(cityId, city);
Thread.sleep(1000);
List<SimpleCity> cities = client.getDocument(new String[]{cityId}, SimpleCity.class);
assertThat(cities, not(nullValue()));
assertThat(cities.size(), equalTo(1));
assertThat(cities, hasItem(Matchers.<SimpleCity>hasProperty("name", equalTo("karcagTest"))));
SimpleCity retCity = new SimpleCity("Karcag");
client.updateDocument(cityId, retCity);
Thread.sleep(1000);
List<SimpleCity> retCities = client.getDocument(new String[]{cityId}, SimpleCity.class);
assertThat(retCities, not(nullValue()));
assertThat(retCities.size(), equalTo(1));
assertThat(retCities, hasItem(Matchers.<SimpleCity>hasProperty("name", equalTo("Karcag"))));
} catch (IndexCannotBeNullException | TypeCannotBeNullException e) {
e.printStackTrace();
fail(e.getMessage());
} catch (InterruptedException e) {
e.printStackTrace();
fail(e.getMessage());
}
}
@Test
public void updateDocumentIndexTest() {
try {
String cityId = "customCity";
SimpleCity city = new SimpleCity("customCityForTestingTest");
client.updateDocument("testcities", "testcity", cityId, city);
Thread.sleep(1000);
List<SimpleCity> cities = client.getDocument("testcities", "testcity", new String[]{cityId}, SimpleCity.class);
assertThat(cities, not(nullValue()));
assertThat(cities.size(), equalTo(1));
assertThat(cities, hasItem(Matchers.<SimpleCity>hasProperty("name", equalTo("customCityForTestingTest"))));
SimpleCity retCity = new SimpleCity("customCityForTesting");
client.updateDocument("testcities", "testcity", cityId, retCity);
Thread.sleep(1000);
List<SimpleCity> retCities = client.getDocument("testcities", "testcity", new String[]{cityId}, SimpleCity.class);
assertThat(retCities, not(nullValue()));
assertThat(retCities.size(), equalTo(1));
assertThat(retCities, hasItem(Matchers.<SimpleCity>hasProperty("name", equalTo("customCityForTesting"))));
} catch (InterruptedException e) {
e.printStackTrace();
fail(e.getMessage());
}
}
// endregion
}