package uk.ac.ox.zoo.seeg.abraid.mp.common.dto.json;
import org.joda.time.DateTime;
import org.junit.Test;
import uk.ac.ox.zoo.seeg.abraid.mp.common.domain.CovariateFile;
import uk.ac.ox.zoo.seeg.abraid.mp.common.domain.CovariateInfluence;
import uk.ac.ox.zoo.seeg.abraid.mp.common.domain.ModelRun;
import uk.ac.ox.zoo.seeg.abraid.mp.common.domain.SubmodelStatistic;
import java.util.Arrays;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
/**
* Tests for JsonModelRunLayer.
* Copyright (c) 2014 University of Oxford
*/
public class JsonModelRunLayerTest {
@Test
public void constructorBindsFieldsCorrectly() {
// Arrange
ModelRun modelRun = mock(ModelRun.class);
CovariateFile covariateFile = mock(CovariateFile.class);
double meanInfluence = 20.2;
CovariateInfluence covariateInfluence = new CovariateInfluence(covariateFile, meanInfluence);
boolean automaticRun = true;
SubmodelStatistic submodelStatistic = mock(SubmodelStatistic.class);
when(modelRun.getName()).thenReturn("expectedName");
when(modelRun.getRequestDate()).thenReturn(new DateTime(1413210069L * 1000));
when(modelRun.getOccurrenceDataRangeStartDate()).thenReturn(new DateTime(1213210069L * 1000));
when(modelRun.getOccurrenceDataRangeEndDate()).thenReturn(new DateTime(1313210069L * 1000));
when(modelRun.getRequestDate()).thenReturn(new DateTime(1413210069L * 1000));
when(modelRun.getCovariateInfluences()).thenReturn(Arrays.asList(covariateInfluence));
when(modelRun.getSubmodelStatistics()).thenReturn(Arrays.asList(submodelStatistic));
// Act
JsonModelRunLayer result = new JsonModelRunLayer(modelRun, automaticRun);
// Assert
assertThat(result.getId()).isEqualTo("expectedName");
assertThat(result.getDate()).isEqualTo("2014-10-13");
assertThat(result.getRangeStart()).isEqualTo("2008-06-11");
assertThat(result.getRangeEnd()).isEqualTo("2011-08-13");
assertThat(result.isAutomatic()).isEqualTo(automaticRun);
}
}