package io.searchbox.core; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; import java.util.Arrays; import org.json.JSONException; import org.junit.Test; import org.skyscreamer.jsonassert.JSONAssert; import com.google.gson.Gson; /** * @author Dogukan Sonmez */ public class MultiGetTest { Doc doc1 = new Doc("twitter", "tweet", "1"); Doc doc2 = new Doc("twitter", "tweet", "2"); Doc doc3 = new Doc("twitter", "tweet", "3"); @Test public void getMultipleDocs() throws JSONException { MultiGet get = new MultiGet.Builder.ByDoc(Arrays.asList(doc1, doc2, doc3)).build(); assertEquals("POST", get.getRestMethodName()); assertEquals("/_mget", get.getURI()); JSONAssert.assertEquals("{\"docs\":[" + "{\"_index\":\"twitter\",\"_type\":\"tweet\",\"_id\":\"1\"}," + "{\"_index\":\"twitter\",\"_type\":\"tweet\",\"_id\":\"2\"}," + "{\"_index\":\"twitter\",\"_type\":\"tweet\",\"_id\":\"3\"}]}", get.getData(new Gson()), false); } @Test public void equalsReturnsTrueForSameDocs() { MultiGet multiGet1 = new MultiGet.Builder.ByDoc(Arrays.asList(doc1, doc2, doc3)).build(); MultiGet multiGet1Duplicate = new MultiGet.Builder.ByDoc(Arrays.asList(doc1, doc2, doc3)).build(); assertEquals(multiGet1, multiGet1Duplicate); } @Test public void equalsReturnsFalseForDiffererntDocs() { MultiGet multiGet1 = new MultiGet.Builder.ByDoc(Arrays.asList(doc1, doc3)).build(); MultiGet multiGet2 = new MultiGet.Builder.ByDoc(Arrays.asList(doc2, doc3)).build(); assertNotEquals(multiGet1, multiGet2); } @Test public void getDocumentWithMultipleIds() throws JSONException { MultiGet get = new MultiGet.Builder.ById("twitter", "tweet").addId(Arrays.asList("1", "2", "3")).build(); assertEquals("POST", get.getRestMethodName()); assertEquals("twitter/tweet/_mget", get.getURI()); JSONAssert.assertEquals("{\"ids\":[\"1\",\"2\",\"3\"]}", get.getData(new Gson()), false); } @Test public void equalsReturnsTrueForSameIds() { MultiGet multiGet1 = new MultiGet.Builder.ById("twitter", "tweet").addId(Arrays.asList("1", "2", "3")).build(); MultiGet multiGet1Dupliacte = new MultiGet.Builder.ById("twitter", "tweet").addId(Arrays.asList("1", "2", "3")).build(); assertEquals(multiGet1, multiGet1Dupliacte); } @Test public void equalsReturnsFalseForDifferentIds() { MultiGet multiGet1 = new MultiGet.Builder.ById("twitter", "tweet").addId(Arrays.asList("1", "2", "3")).build(); MultiGet multiGet2 = new MultiGet.Builder.ById("twitter", "tweet").addId(Arrays.asList("1", "9", "3")).build(); assertNotEquals(multiGet1, multiGet2); } }