package uk.ac.ox.zoo.seeg.abraid.mp.dataacquisition.service;
import org.junit.Before;
import org.junit.Test;
import uk.ac.ox.zoo.seeg.abraid.mp.common.domain.DiseaseGroup;
import uk.ac.ox.zoo.seeg.abraid.mp.dataacquisition.acquirers.csv.CsvDataAcquirer;
import uk.ac.ox.zoo.seeg.abraid.mp.dataacquisition.acquirers.healthmap.HealthMapDataAcquirer;
import static org.mockito.Mockito.*;
/**
* Tests the DataAcquisitionService class.
* Copyright (c) 2014 University of Oxford
*/
public class DataAcquisitionServiceTest {
private DataAcquisitionService service;
private HealthMapDataAcquirer healthMapDataAcquirer;
private CsvDataAcquirer csvDataAcquirer;
@Before
public void setUp() {
healthMapDataAcquirer = mock(HealthMapDataAcquirer.class);
csvDataAcquirer = mock(CsvDataAcquirer.class);
service = new DataAcquisitionServiceImpl(healthMapDataAcquirer, csvDataAcquirer);
}
@Test
public void acquireHealthMapDataFromWebService() {
service.acquireHealthMapDataFromWebService();
verify(healthMapDataAcquirer).acquireDataFromWebService();
}
@Test
public void acquireHealthMapDataFromFile() {
String fileName = "test.json";
service.acquireHealthMapDataFromFile(fileName);
verify(healthMapDataAcquirer).acquireDataFromFile(eq(fileName));
}
@Test
public void acquireCsvData() {
byte[] csv = "1, 2, 3".getBytes();
service.acquireCsvData(csv, false, true, null);
verify(csvDataAcquirer).acquireDataFromCsv(eq(csv), eq(false), eq(true), (DiseaseGroup) isNull());
}
@Test
public void acquireCsvBiasData() {
byte[] csv = "1, 2, 3".getBytes();
DiseaseGroup disease = mock(DiseaseGroup.class);
service.acquireCsvData(csv, true, false, disease);
verify(csvDataAcquirer).acquireDataFromCsv(eq(csv), eq(true), eq(false), eq(disease));
}
}