package org.molgenis.data.elasticsearch.util;
import org.elasticsearch.common.collect.Lists;
import org.molgenis.data.Entity;
import org.molgenis.data.meta.model.Attribute;
import org.molgenis.data.meta.model.EntityType;
import org.testng.annotations.Test;
import java.util.Arrays;
import java.util.stream.Stream;
import static java.util.stream.Collectors.toList;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import static org.testng.Assert.assertEquals;
public class ElasticsearchEntityUtilsTest
{
@Test
public void toElasticsearchIdObject()
{
String id = "id";
assertEquals(id, ElasticsearchEntityUtils.toElasticsearchId(id));
}
@Test
public void toElasticsearchIds()
{
String id0 = "id0";
String id1 = "id1";
assertEquals(ElasticsearchEntityUtils.toElasticsearchIds(Stream.of(id0, id1)).collect(toList()),
Arrays.<String>asList(id0, id1));
}
@Test
public void toEntityId()
{
String id = "id0";
assertEquals(id, ElasticsearchEntityUtils.toEntityId(id));
}
@Test
public void toEntityIds()
{
String id0 = "id0";
String id1 = "id1";
assertEquals(Arrays.<Object>asList(id0, id1),
Lists.newArrayList(ElasticsearchEntityUtils.toEntityIds(Arrays.<String>asList(id0, id1))));
}
@Test
public void toElasticsearchIdEntityEntityType()
{
String id = "id0";
String idAttributeName = "id";
Entity entity = mock(Entity.class);
when(entity.get(idAttributeName)).thenReturn(id);
EntityType entityType = mock(EntityType.class);
Attribute idAttribute = mock(Attribute.class);
when(idAttribute.getName()).thenReturn(idAttributeName);
when(entityType.getIdAttribute()).thenReturn(idAttribute);
assertEquals(id, ElasticsearchEntityUtils.toElasticsearchId(entity, entityType));
}
}