package pl.edu.icm.saos.search.analysis.solr.result;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import java.util.List;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.assertj.core.util.Lists;
import org.junit.Before;
import org.junit.Test;
import pl.edu.icm.saos.common.chart.Series;
import pl.edu.icm.saos.search.analysis.request.XField;
import pl.edu.icm.saos.search.analysis.request.XSettings;
/**
* @author madryk
*/
public class SeriesResultConverterTest {
private SeriesResultConverter seriesResultsConverter = new SeriesResultConverter();
private XFieldFacetExtractor xFieldFacetExtractor = mock(XFieldFacetExtractor.class);
private FacetToSeriesConverter facetToSeriesConverter = mock(FacetToSeriesConverter.class);
@Before
public void setUp() {
seriesResultsConverter.setxFieldFacetExtractor(xFieldFacetExtractor);
seriesResultsConverter.setFacetToSeriesConverter(facetToSeriesConverter);
}
//------------------------ TESTS --------------------------
@Test
public void convertToSeries() {
// given
QueryResponse response = new QueryResponse();
List<FacetCount> facetCounts = Lists.newArrayList(new FacetCount("facetValue1", 3), new FacetCount("facetValue2", 4));
Series<Object, Integer> series = new Series<Object, Integer>();
XSettings xsettings = mock(XSettings.class);
when(xsettings.getField()).thenReturn(XField.JUDGMENT_DATE);
doReturn(facetCounts).when(xFieldFacetExtractor).extractFacetCounts(response, XField.JUDGMENT_DATE);
doReturn(series).when(facetToSeriesConverter).convert(facetCounts, xsettings);
// execute
Series<Object, Integer> retSeries = seriesResultsConverter.convert(response, xsettings);
// assert
assertTrue(retSeries == series);
verify(xFieldFacetExtractor).extractFacetCounts(response, XField.JUDGMENT_DATE);
verify(facetToSeriesConverter).convert(facetCounts, xsettings);
}
@Test(expected = NullPointerException.class)
public void convertToSeries_NULL_RESPONSE() {
// expected
seriesResultsConverter.convert(null, mock(XSettings.class));
}
@Test(expected = NullPointerException.class)
public void convertToSeries_NULL_XSETTINGS() {
// expected
seriesResultsConverter.convert(new QueryResponse(), null);
}
}