package uk.ac.ox.zoo.seeg.abraid.mp.common.service.core;
import org.junit.Test;
import uk.ac.ox.zoo.seeg.abraid.mp.common.dao.CovariateFileDao;
import uk.ac.ox.zoo.seeg.abraid.mp.common.domain.CovariateFile;
import uk.ac.ox.zoo.seeg.abraid.mp.common.domain.DiseaseGroup;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
/**
* Tests for the CovariateService class.
* Copyright (c) 2015 University of Oxford
*/
public class CovariateServiceTest {
@Test
public void getCovariateDirectoryReturnsTheConstructorArgument() {
// Arrange
String covariateDirectory = "abc";
CovariateService target = new CovariateServiceImpl(covariateDirectory, mock(CovariateFileDao.class));
// Act
String result = target.getCovariateDirectory();
// Assert
assertThat(result).isSameAs(covariateDirectory);
}
@Test
public void getAllCovariateFilesCallsDao() {
// Arrange
CovariateFileDao covariateFileDao = mock(CovariateFileDao.class);
List<CovariateFile> expectation = Arrays.asList(mock(CovariateFile.class));
when(covariateFileDao.getAll()).thenReturn(expectation);
CovariateService target = new CovariateServiceImpl("covariateDirectory", covariateFileDao);
// Act
Collection<CovariateFile> result = target.getAllCovariateFiles();
// Assert
assertThat(result).isSameAs(expectation);
verify(covariateFileDao).getAll();
}
@Test
public void getCovariateFilesByDiseaseGroupCallsDao() {
// Arrange
CovariateFileDao covariateFileDao = mock(CovariateFileDao.class);
List<CovariateFile> expectation = Arrays.asList(mock(CovariateFile.class));
DiseaseGroup diseaseGroup = mock(DiseaseGroup.class);
when(covariateFileDao.getCovariateFilesByDiseaseGroup(diseaseGroup)).thenReturn(expectation);
CovariateService target = new CovariateServiceImpl("covariateDirectory", covariateFileDao);
// Act
Collection<CovariateFile> result = target.getCovariateFilesByDiseaseGroup(diseaseGroup);
// Assert
assertThat(result).isSameAs(expectation);
verify(covariateFileDao).getCovariateFilesByDiseaseGroup(diseaseGroup);
}
@Test
public void getCovariateFileByIdCallsDao() {
// Arrange
CovariateFileDao covariateFileDao = mock(CovariateFileDao.class);
CovariateFile expectation = mock(CovariateFile.class);
int id = 1;
when(covariateFileDao.getById(id)).thenReturn(expectation);
CovariateService target = new CovariateServiceImpl("covariateDirectory", covariateFileDao);
// Act
CovariateFile result = target.getCovariateFileById(id);
// Assert
assertThat(result).isSameAs(expectation);
verify(covariateFileDao).getById(id);
}
@Test
public void saveCovariateFileCallsDao() {
// Arrange
CovariateFileDao covariateFileDao = mock(CovariateFileDao.class);
CovariateFile expectation = mock(CovariateFile.class);
CovariateService target = new CovariateServiceImpl("covariateDirectory", covariateFileDao);
// Act
target.saveCovariateFile(expectation);
// Assert
verify(covariateFileDao).save(expectation);
}
}