package org.springframework.data.simpledb.query; import org.junit.Test; import org.springframework.data.mapping.model.MappingException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Set; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; public class SimpleDbResultConverterTest { public static final int SAMPLE_INT_VALUE = 5; @Test public void filterNamedAttributesAsList_should_return_list_of_named_attributes() throws Exception { List<SampleEntity> entities = new ArrayList<SampleEntity>(); SampleEntity entity = new SampleEntity(); entity.setSampleAttribute(SAMPLE_INT_VALUE); entities.add(entity); List<Object> filteredAttributes = SimpleDbResultConverter.filterNamedAttributesAsList(entities, "sampleAttribute"); assertEquals(1, filteredAttributes.size()); Object firstElement = filteredAttributes.get(0); assertEquals(SAMPLE_INT_VALUE, firstElement); } @Test public void filterNamedAttributesAsList_should_work_for_list_attributes() throws Exception { List<SampleEntity> entities = new ArrayList<SampleEntity>(); SampleEntity entity = new SampleEntity(); entity.setSampleList(new ArrayList<Integer>()); entities.add(entity); List<Object> filteredAttributes = SimpleDbResultConverter.filterNamedAttributesAsList(entities, "sampleList"); assertEquals(1, filteredAttributes.size()); Object firstElement = filteredAttributes.get(0); assertTrue(firstElement instanceof List); } @Test(expected = MappingException.class) public void filterNamedAttributesAsList_should_not_return_list_of_named_attributes_for_wrong_att() throws Exception { List<SampleEntity> entities = new ArrayList<SampleEntity>(); SampleEntity entity = new SampleEntity(); entities.add(entity); SimpleDbResultConverter.filterNamedAttributesAsList(entities, "wrongAttribute"); } @Test public void filterNamedAttributesAsSet_should_return_Set_of_named_attributes() throws Exception { List<SampleEntity> entities = new ArrayList<SampleEntity>(); SampleEntity entity = new SampleEntity(); entity.setSampleAttribute(SAMPLE_INT_VALUE); entities.add(entity); Set<Object> filteredAttributes = SimpleDbResultConverter .filterNamedAttributesAsSet(entities, "sampleAttribute"); assertEquals(1, filteredAttributes.size()); Object firstElement = filteredAttributes.iterator().next(); assertEquals(SAMPLE_INT_VALUE, firstElement); } @Test public void toListOfListOfObject_should_return_List_of_Lists_containing_requested_attributes() { List<SampleEntity> entities = new ArrayList<SampleEntity>(); SampleEntity entity = new SampleEntity(); entity.setSampleAttribute(SAMPLE_INT_VALUE); entity.setSampleList(new ArrayList<Integer>()); entities.add(entity); List<String> attributes = Arrays.asList("sampleAttribute", "sampleList"); List<List<Object>> filteredAttributes = SimpleDbResultConverter.toListOfListOfObject(entities, attributes); // one row assertEquals(1, filteredAttributes.size()); // two columns List<Object> columns = filteredAttributes.get(0); assertEquals(2, columns.size()); assertEquals(SAMPLE_INT_VALUE, columns.get(0)); } }