package uk.ac.ox.zoo.seeg.abraid.mp.publicsite.web.admin.covariates; import uk.ac.ox.zoo.seeg.abraid.mp.common.domain.CovariateFile; import uk.ac.ox.zoo.seeg.abraid.mp.common.domain.CovariateSubFile; import uk.ac.ox.zoo.seeg.abraid.mp.common.domain.DiseaseGroup; import uk.ac.ox.zoo.seeg.abraid.mp.common.dto.json.JsonCovariateConfiguration; import uk.ac.ox.zoo.seeg.abraid.mp.common.dto.json.JsonCovariateFile; import uk.ac.ox.zoo.seeg.abraid.mp.common.dto.json.JsonCovariateSubFile; import uk.ac.ox.zoo.seeg.abraid.mp.common.service.core.CovariateService; import uk.ac.ox.zoo.seeg.abraid.mp.common.service.core.DiseaseService; import java.io.File; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; /** * Test utils for covariate controller tests. * Copyright (c) 2014 University of Oxford */ public class BaseCovariatesControllerTests { protected JsonCovariateConfiguration createValidMockConfig() { JsonCovariateConfiguration mock = mock(JsonCovariateConfiguration.class); List<JsonCovariateFile> jsonCovariateFiles = new ArrayList<>(); jsonCovariateFiles.add(createMockJsonCovariateFile(1, "1", false, new ArrayList<>(Arrays.asList(22)), new ArrayList<>(Arrays.asList( createMockJsonCovariateSubFile(1, "access.tif", "foo"), createMockJsonCovariateSubFile(2, "2.tif", null))))); jsonCovariateFiles.add(createMockJsonCovariateFile(2, "2", false, new ArrayList<Integer>(), new ArrayList<JsonCovariateSubFile>())); jsonCovariateFiles.add(createMockJsonCovariateFile(3, "3", false, new ArrayList<Integer>(), new ArrayList<JsonCovariateSubFile>())); jsonCovariateFiles.add(createMockJsonCovariateFile(4, "4", false, new ArrayList<Integer>(), new ArrayList<JsonCovariateSubFile>())); when(mock.getFiles()).thenReturn(jsonCovariateFiles); return mock; } protected CovariateService createMockCovariateService(File covariatesDir) { CovariateService mock = mock(CovariateService.class); List<CovariateFile> covariateFiles = new ArrayList<>(); covariateFiles.add(createMockCovariateFile(1, "1", false, new ArrayList<>(Arrays.asList(createMockDiseaseGroup(22))), new ArrayList<>(Arrays.asList( createMockCovariateSubFile(1, "access.tif", "foo"), createMockCovariateSubFile(2, "2.tif", null))))); covariateFiles.add(createMockCovariateFile(2, "2", false, new ArrayList<DiseaseGroup>(), new ArrayList<CovariateSubFile>())); covariateFiles.add(createMockCovariateFile(3, "3", false, new ArrayList<DiseaseGroup>(), new ArrayList<CovariateSubFile>())); covariateFiles.add(createMockCovariateFile(4, "4", false, new ArrayList<DiseaseGroup>(), new ArrayList<CovariateSubFile>())); when(mock.getAllCovariateFiles()).thenReturn(covariateFiles); when(mock.getCovariateDirectory()).thenReturn(covariatesDir.getAbsolutePath()); return mock; } protected DiseaseService createMockDiseaseService() { DiseaseService mock = mock(DiseaseService.class); List<DiseaseGroup> diseases = new ArrayList<>(); diseases.add(createMockDiseaseGroup(22)); diseases.add(createMockDiseaseGroup(60)); when(mock.getAllDiseaseGroups()).thenReturn(diseases); return mock; } protected JsonCovariateFile createMockJsonCovariateFile(int id, String name, boolean hide, List<Integer> enabled, List<JsonCovariateSubFile> subFiles) { JsonCovariateFile mock = mock(JsonCovariateFile.class); when(mock.getId()).thenReturn(id); when(mock.getName()).thenReturn(name); when(mock.getHide()).thenReturn(hide); when(mock.getEnabled()).thenReturn(enabled); when(mock.getSubFiles()).thenReturn(subFiles); return mock; } protected JsonCovariateSubFile createMockJsonCovariateSubFile(int id, String path, String qualifier) { JsonCovariateSubFile mock = mock(JsonCovariateSubFile.class); when(mock.getId()).thenReturn(id); when(mock.getPath()).thenReturn(path); when(mock.getQualifier()).thenReturn(qualifier); return mock; } protected CovariateFile createMockCovariateFile(int id, String name, boolean hide, List<DiseaseGroup> enabled, List<CovariateSubFile> subFiles) { CovariateFile mock = mock(CovariateFile.class); when(mock.getId()).thenReturn(id); when(mock.getName()).thenReturn(name); when(mock.getHide()).thenReturn(hide); when(mock.getEnabledDiseaseGroups()).thenReturn(enabled); when(mock.getFiles()).thenReturn(subFiles); return mock; } protected CovariateSubFile createMockCovariateSubFile(int id, String path, String qualifier) { CovariateSubFile mock = mock(CovariateSubFile.class); when(mock.getId()).thenReturn(id); when(mock.getFile()).thenReturn(path); when(mock.getQualifier()).thenReturn(qualifier); return mock; } private DiseaseGroup createMockDiseaseGroup(Integer id) { DiseaseGroup mock = mock(DiseaseGroup.class); when(mock.getId()).thenReturn(id); return mock; } }